set use_net 0 set use_ps2 [have_spec ps2] set use_usb 0 set use_serial 1 set use_vbox4 0 set use_vbox5 [expr !$use_vbox4] # use_gui starts two VMs set use_gui 0 # need a nic bridge for 2 VMs set use_bridge [expr $use_net && $use_gui] set build_components { core init timer drivers/framebuffer } if {$use_vbox4} { append build_components virtualbox set virtualbox_binary "virtualbox-rem" if {[have_spec muen]} { set virtualbox_binary "virtualbox-muen" } if {[have_spec nova]} { set virtualbox_binary "virtualbox-nova" } } else { append build_components virtualbox5 set virtualbox_binary "virtualbox5-rem" if {[have_spec nova]} { set virtualbox_binary "virtualbox5-nova" } } source ${genode_dir}/repos/base/run/platform_drv.inc # override defaults of platform_drv.inc proc platform_drv_priority {} { return { priority="-1"} } lappend_if [expr $use_ps2] build_components drivers/input lappend_if [expr $use_usb] build_components drivers/usb lappend_if [expr $use_serial] build_components server/log_terminal lappend_if [have_spec x86] build_components drivers/rtc lappend_if [expr $use_net] build_components drivers/nic lappend_if [expr $use_bridge] build_components server/nic_bridge lappend_if [expr $use_gui] build_components server/report_rom lappend_if [expr $use_gui] build_components server/nitpicker lappend_if [expr $use_gui] build_components server/nit_fb lappend_if [expr $use_gui] build_components app/pointer append_platform_drv_build_components build $build_components create_boot_directory set config { } append_if [have_spec muen] config { } append config { } append_platform_drv_config append_if [expr $use_ps2] config { } append_if [expr $use_usb] config { } append_if [expr $use_usb && ![have_spec muen]] config { } append_if [expr $use_usb && [have_spec muen]] config { } append_if [expr $use_usb] config { } append_if [have_spec framebuffer] config { } append_if [have_spec sdl] config { } append_if [have_spec x86] config { } append_if [expr $use_net] config { } append_if [expr $use_serial] config { } append_if [expr $use_bridge] config { } append_if [expr $use_gui] config { } append_if [expr ($use_gui && $use_ps2)] config { } append_if [expr ($use_gui && $use_usb)] config { } append_if [expr $use_gui] config { } append_if [expr $use_gui] config " " append_if [expr $use_gui] config { } append config { } append config " " append config { } append_if [expr $use_serial] config { } append config { } append_if [expr $use_bridge] config { } append_if [expr $use_gui] config { } append config { } install_config $config exec cp ${genode_dir}/repos/ports/run/test.vbox bin/. set boot_modules { core ld.lib.so init timer test.iso test.vbox } append boot_modules $virtualbox_binary # platform-specific modules lappend_if [expr $use_usb] boot_modules usb_drv lappend_if [expr $use_ps2] boot_modules ps2_drv lappend_if [have_spec framebuffer] boot_modules fb_drv lappend_if [have_spec linux] boot_modules fb_sdl lappend_if [have_spec x86] boot_modules rtc_drv lappend_if [expr $use_gui] boot_modules report_rom lappend_if [expr $use_gui] boot_modules nitpicker lappend_if [expr $use_gui] boot_modules nit_fb lappend_if [expr $use_gui] boot_modules pointer append boot_modules { ld.lib.so libc.lib.so vfs.lib.so libm.lib.so libc_pipe.lib.so libc_terminal.lib.so libiconv.lib.so stdcxx.lib.so qemu-usb.lib.so } append_if [expr $use_net] boot_modules { nic_drv } append_if [expr $use_bridge] boot_modules { nic_bridge } append_if [expr $use_serial] boot_modules { log_terminal } append_platform_drv_boot_modules build_boot_image $boot_modules if {[have_include "power_on/qemu"]} { if {[expr $use_gui]} { append qemu_args " -m 2048 " } else { append qemu_args " -m 768 " } append qemu_args " -cpu phenom " if {[expr $use_usb]} { append qemu_args " -usbdevice mouse -usbdevice keyboard" } } run_genode_until forever