genode/repos/ports/run/genode_org.run
Piotr Tworek fe0ad0addb tool: Consolidate qemu nic setup.
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
2020-10-09 13:35:57 +02:00

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