# # \brief Example for using Vancouver on Genode # \author Norman Feske # \author Markus Partheymueller # \date 2011-11-21 # # This run script starts the Vancouver VMM booting the multiboot modules # listed in the 'multiboot' config node. It assumes that the module files # are present at '/bin/' (see the 'boot_modules' variable). # # # Build # if {![have_spec nova]} { puts "\nVancouver is only supported on NOVA\n" exit 0 } set build_components { core init drivers/timer drivers/rtc vancouver drivers/framebuffer server/nitpicker server/liquid_framebuffer drivers/nic server/nic_bridge drivers/pci drivers/input app/launchpad server/nitlog } lappend_if [have_spec acpi] build_components drivers/acpi lappend_if [have_spec pci] build_components drivers/pci/device_pd build $build_components # write vancouver vm config file set vm_cfg_fd [open "bin/vm_linux.cfg" w] puts $vm_cfg_fd { } close $vm_cfg_fd # write launchpad config file set launchpad_cfg_fd [open "bin/launchpad-config" w] puts $launchpad_cfg_fd { 128Minit } close $launchpad_cfg_fd create_boot_directory # # Generate config # append config { } append_if [have_spec acpi] config { } append_if [expr ![have_spec acpi] && [have_spec pci]] config { } append config { } install_config $config # # Boot modules # # generic modules set boot_modules { core init fb_drv nitpicker liquid_fb ps2_drv pci_drv nic_drv nic_bridge timer rtc_drv vancouver launchpad launchpad-config nitlog vm_linux.cfg } lappend_if [have_spec acpi] boot_modules acpi_drv lappend_if [have_spec nova] boot_modules pci_device_pd set guest_os_binaries { munich bzImage ramdisk } set guest_os_binary_missing 0 foreach binary $guest_os_binaries { if {![file exists bin/$binary]} { puts stderr "Error: guest OS binary \"bin/$binary\" does not exist" set guest_os_binary_missing 1 } } if {$guest_os_binary_missing} { exit 1 } append boot_modules $guest_os_binaries build_boot_image $boot_modules append qemu_args " -m 256 " append qemu_args " -cpu phenom " run_genode_until forever