mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-19 21:57:55 +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
128 lines
3.5 KiB
PHP
128 lines
3.5 KiB
PHP
#
|
|
# \brief Test of fetchurl
|
|
# \author Emery Hemingway
|
|
# \date 2016-06-05
|
|
#
|
|
|
|
if {[have_spec rpi3] ||
|
|
[expr [have_spec imx53] && [have_spec trustzone]]} {
|
|
puts "Run script does not support this platform."
|
|
exit 0
|
|
}
|
|
|
|
if {[get_cmd_switch --autopilot] && [have_spec linux]} {
|
|
puts "Autopilot mode is not supported on this platform."
|
|
exit 0
|
|
}
|
|
|
|
#
|
|
# This run script works on Linux with NAT setup from tap0 to uplink
|
|
# device uplink0 like follows.
|
|
#
|
|
# iptables -t nat -A POSTROUTING -o uplink0 -j MASQUERADE
|
|
# iptables -A FORWARD -i tap0 -o uplink0 -j ACCEPT
|
|
# iptables -A FORWARD -i uplink0 -o tap0 -m state --state RELATED,ESTABLISHED -j ACCEPT
|
|
# echo 1 > /proc/sys/net/ipv4/ip_forward
|
|
#
|
|
|
|
proc socket_fs_plugin { } {
|
|
set result "<[ip_stack]"
|
|
|
|
if {[have_spec linux]} {
|
|
append result { ip_addr="10.0.2.55" netmask="255.255.255.0"}
|
|
append result { gateway="10.0.2.1" nameserver="1.1.1.1"}
|
|
} else {
|
|
append result { dhcp="yes"}
|
|
}
|
|
|
|
append result {/>}
|
|
return $result
|
|
}
|
|
|
|
create_boot_directory
|
|
|
|
import_from_depot [depot_user]/src/[base_src] \
|
|
[depot_user]/pkg/[drivers_nic_pkg] \
|
|
[depot_user]/src/curl \
|
|
[depot_user]/src/fetchurl \
|
|
[depot_user]/src/init \
|
|
[depot_user]/src/libc \
|
|
[depot_user]/src/libcrypto \
|
|
[depot_user]/src/libssh \
|
|
[depot_user]/src/libssl \
|
|
[depot_user]/src/report_rom \
|
|
[depot_user]/src/vfs \
|
|
[depot_user]/src/vfs_[ip_stack] \
|
|
[depot_user]/src/zlib
|
|
|
|
install_config {
|
|
<config>
|
|
<parent-provides>
|
|
<service name="CPU"/>
|
|
<service name="IO_MEM"/>
|
|
<service name="IO_PORT"/>
|
|
<service name="IRQ"/>
|
|
<service name="LOG"/>
|
|
<service name="PD"/>
|
|
<service name="RAM"/>
|
|
<service name="RM"/>
|
|
<service name="ROM"/>
|
|
</parent-provides>
|
|
<default caps="100"/>
|
|
<default-route>
|
|
<service name="Report"> <child name="report_rom"/> </service>
|
|
<any-service> <parent/> <any-child/> </any-service>
|
|
</default-route>
|
|
|
|
<start name="timer">
|
|
<resource name="RAM" quantum="1M"/>
|
|
<provides> <service name="Timer"/> </provides>
|
|
</start>
|
|
|
|
<start name="drivers" 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="report_rom">
|
|
<resource name="RAM" quantum="4M"/>
|
|
<provides> <service name="ROM"/> <service name="Report"/> </provides>
|
|
<config verbose="yes"/>
|
|
</start>
|
|
|
|
<start name="fetchurl" caps="500">
|
|
<resource name="RAM" quantum="32M"/>
|
|
<config>
|
|
<report progress="yes"/>
|
|
<vfs>
|
|
<dir name="dev">
|
|
<log/> <null/> <inline name="rtc">2000-01-01 00:00</inline>
|
|
<inline name="random">01234567890123456789</inline>
|
|
</dir>
|
|
<dir name="socket"> } [socket_fs_plugin] { </dir>
|
|
</vfs>
|
|
<libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"
|
|
rng="/dev/random" socket="/socket"/>
|
|
<fetch url="https://genode.org/about/LICENSE" path="/dev/log" retry="3"/>
|
|
</config>
|
|
</start>
|
|
</config>
|
|
}
|
|
|
|
#build { }
|
|
build_boot_image { }
|
|
|
|
append qemu_args " -nographic "
|
|
append_qemu_nic_args
|
|
|
|
## Uncomment to dump network traffic to file
|
|
# append qemu_args " -object filter-dump,id=net0,netdev=net0,file=[run_dir].pcap"
|
|
|
|
run_genode_until {child "fetchurl" exited with exit value 0} 120
|