mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-22 15:02:25 +00:00
fe0ad0addb
Right now the same code dealing with nic setup on qemu is duplicated in many different run scripts. It makes it unnecesarily complex to change the existing config or add support for new nic types. Lets move all this common code to qemu.inc. Ref #3825
127 lines
3.8 KiB
Plaintext
127 lines
3.8 KiB
Plaintext
#
|
|
# \brief Example for hosting the genode.org website on Genode
|
|
# \author Norman Feske
|
|
# \date 2012-08-16
|
|
#
|
|
# This run script uses the lighttpd web server to host the genode.org website.
|
|
# When executed the first time, the genode.org website is downloaded to
|
|
# 'bin/genode_org/website'. When the web server is up, you may point your web
|
|
# browser to http://localhost:5555
|
|
#
|
|
|
|
create_boot_directory
|
|
import_from_depot [depot_user]/src/[base_src] \
|
|
[depot_user]/pkg/[drivers_nic_pkg] \
|
|
[depot_user]/src/init \
|
|
[depot_user]/src/libc \
|
|
[depot_user]/src/libcrypto \
|
|
[depot_user]/src/libssh \
|
|
[depot_user]/src/libssl \
|
|
[depot_user]/src/lighttpd \
|
|
[depot_user]/src/posix \
|
|
[depot_user]/src/vfs \
|
|
[depot_user]/src/vfs_lwip \
|
|
[depot_user]/src/zlib
|
|
|
|
install_config {
|
|
<config>
|
|
<parent-provides>
|
|
<service name="ROM"/>
|
|
<service name="LOG"/>
|
|
<service name="RM"/>
|
|
<service name="CPU"/>
|
|
<service name="PD"/>
|
|
<service name="IRQ"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="IO_MEM"/>
|
|
</parent-provides>
|
|
<default-route>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
<default caps="100"/>
|
|
|
|
<start name="timer">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides><service name="Timer"/></provides>
|
|
</start>
|
|
|
|
<start name="nic_drv" caps="1000" managing_system="yes">
|
|
<resource name="RAM" quantum="32M"/>
|
|
<binary name="init"/>
|
|
<route>
|
|
<service name="ROM" label="config"> <parent label="drivers.config"/> </service>
|
|
<service name="Timer"> <child name="timer"/> </service>
|
|
<any-service> <parent/> </any-service>
|
|
</route>
|
|
<provides> <service name="Nic"/> </provides>
|
|
</start>
|
|
|
|
<start name="lighttpd" caps="1000">
|
|
<resource name="RAM" quantum="1G" />
|
|
<config>
|
|
<arg value="lighttpd" />
|
|
<arg value="-f" />
|
|
<arg value="/etc/lighttpd/lighttpd.conf" />
|
|
<arg value="-D" />
|
|
<vfs>
|
|
<dir name="dev">
|
|
<log/>
|
|
<null/>
|
|
</dir>
|
|
<dir name="socket">
|
|
<lwip dhcp="yes"/> </dir>
|
|
<tar name="genode_org.tar"/>
|
|
</vfs>
|
|
<libc stdin="/dev/null" stdout="/dev/log" stderr="/dev/log"
|
|
socket="/socket" />
|
|
</config>
|
|
</start>
|
|
</config>}
|
|
|
|
#
|
|
# Create TAR archive containting the web-server configuration and the
|
|
# website content.
|
|
#
|
|
|
|
# lighttpd configuration
|
|
exec mkdir -p bin/genode_org/etc/lighttpd
|
|
set fd [open "bin/genode_org/etc/lighttpd/lighttpd.conf" w]
|
|
puts $fd {
|
|
server.port = 80
|
|
server.document-root = "/website"
|
|
server.event-handler = "select"
|
|
server.network-backend = "write"
|
|
server.max-keep-alive-requests = 0
|
|
index-file.names = ( "index", "index.html", "index.htm" )
|
|
mimetype.assign = (
|
|
".png" => "image/png",
|
|
".jpg" => "image/jpeg",
|
|
".jpeg" => "image/jpeg",
|
|
".gif" => "image/gif",
|
|
".css" => "text/css",
|
|
".html" => "text/html",
|
|
".htm" => "text/html",
|
|
"" => "text/html",
|
|
) }
|
|
close $fd
|
|
|
|
# mirror of genode.org website
|
|
if {![file exists bin/genode_org/website/index]} {
|
|
puts "mirroring genode.org website to bin/genode_org/website..."
|
|
exec mkdir -p bin/genode_org/website
|
|
|
|
# ignore wget errors
|
|
catch {
|
|
exec wget -nH -Lrc -P bin/genode_org/website https://genode.org
|
|
}
|
|
}
|
|
|
|
exec tar cfv bin/genode_org.tar -h -C bin/genode_org .
|
|
|
|
build_boot_image { genode_org.tar }
|
|
|
|
append qemu_args " -nographic "
|
|
append_qemu_nic_args "hostfwd=tcp::5555-:80"
|
|
|
|
run_genode_until forever
|