# # \brief Seoul on Genode - build Linux kernel inside VM # \author Alexander Boettcher # \date 2013-06-11 # # This run script starts the Seoul VMM booting from a multiboot image. # It assumes that the module files are present at '/bin/' # assert_spec x86 if {[have_include power_on/qemu]} { puts "\nAuto test running on Qemu is not recommended.\n" exit } set use_multiboot 1 set use_genode_iso 0 set use_model_ahci 0 set use_model_ide 0 set use_block_vdi 0 set use_block_ram 0 set use_block_sata 0 set use_part_block 0 set use_nic_session 0 set use_nic_bridge 0 set use_usb 0 set use_framebuffer 1 set use_fancy_stuff 0 set use_top 0 set memory_vmm_vm "950M" # adjust also '-j option' accordingly - see benchmark_cmd set vcpus_to_be_used 1 set multiboot_files { } set guest_os_binaries { munich bzImage-3.1 kernelbuild-e2fs.bz2 } set sha1_os_binaries { 7ecb4ba634a0ecfa6429418ea73490d6f65afead 6b2ef2c5bf16db3ebcbe33ce134e4e0a96944f82 978b2a297c7ff8e53191321d300e70baa1036519 } # # Download demo kernel, image and # munich (part of Oslo framework http://os.inf.tu-dresden.de/~kauer/oslo) # set guest_uri { "http://genode.org/files/seoul" "http://genode.org/files/seoul" "http://os.inf.tu-dresden.de/~nils/imgs" } set binary_counter 0 foreach binary $guest_os_binaries { if {![file exists bin/$binary]} { set uri [lindex $guest_uri $binary_counter] exec mkdir -p bin puts "Download file bin/$binary from $uri" exec >& /dev/null wget -c -O bin/$binary $uri/$binary } incr binary_counter 1 } source ${genode_dir}/repos/ports/run/seoul.inc append qemu_args " -m 1536 " append qemu_args " -cpu phenom " append qemu_args " -nographic " run_genode_until {\[init -\> seoul\] VM is starting with } 400 set serial_id [output_spawn_id] set time_start [ clock seconds ] run_genode_until {\[init -\> seoul\] VMM: # ! PERF: kbuild [ 0-9]+ s ok} 2000 $serial_id set time_end [ clock seconds ] puts "\n! PERF: runtime [expr $time_end - $time_start ] seconds ok" puts "Test succeeded"