I am still attempting to make a VM work from an external .vdi disk image using the model of your testing platforms. I still haven't been able to get the testing platform running properly either but using the configuration as a template, I have adapted my own run recipe to make one VM using a TinyCore VM booting from the ISO (as in the Virtualbox demo) and one VM booting from the VDI. The hardware I am running has been tested and works fine with up to 3 VMs running the TinyCore demo flawlessly.
Here is the findings from my configuration and testing of the build I am attempting: - vbox2 loads perfectly fine, TinyCore works flawlessly. - vbox1 fails to load the main executable /virtualbox - If I remove the one line from the configuration of vbox1 *<dir name="ram"> <fs label="from_ram_fs" /> </dir>* vbox1 loads (but obviously has nothing to boot from) - I have also attempted to boot from the vdi file using *<block name="sda3" label="raw" block_buffer_count="128" />* in the <vfs> tags and adding the service *<service name="Block"><child name="part_blk"/></service>* but this also fails to load the main executable - serial data has an error *[init -> platform_drv] Error: ahci_drv -> : assignment of PCI device 0:11.0 failed phys=0xe0088000 virt=0x1000* however further down, the AHCI controller is read and detects the hard drive on port 0 just fine, so this is seemingly working
Any assistance in getting this to work would be greatly appreciated.
*Hardware configuration:* 4 GB RAM 4 core CPU 1 serial port (for output data) PS2 controller USB controller with 6 ports A single SATA hard drive on port 0 with 4 partitions. Partition 3 and 4 are ext2 formatted The .vdi file I have been trying to load is on both partitions 3 and 4 with the overlay file in the /ram directory also on each partition The BIOS has the SATA controller set to AHCI mode (as opposed to IDE or RAID)
*Filenames:* vbox1 config file: ubuntu16.vbox vbox2 config file: test.vbox vbox2 vdi file: ubuntu_16_04_64.vdi vbox2 overlay file /ram/overlay_ubuntu_16_04_64.vdi
*Run recipe:*
set use_net 1 set use_ps2 [have_spec ps2] set use_usb 1 set use_serial 1
set use_vbox4 1 set use_vbox5 [expr !$use_vbox4]
# use_gui starts two VMs set use_gui 1 # need a nic bridge for 2 VMs set use_bridge [expr $use_net && $use_gui]
set build_components { core init drivers/framebuffer drivers/timer drivers/ahci server/part_blk server/fs_rom server/rump_fs server/ram_fs }
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/vbox_pointer
append_platform_drv_build_components
build $build_components
create_boot_directory
set config { <config prio_levels="4"> <parent-provides> <service name="ROM"/> <service name="IRQ"/> <service name="IO_MEM"/> <service name="IO_PORT"/> <service name="PD"/> <service name="RM"/> <service name="CPU"/> <service name="LOG"/>}
append_if [have_spec muen] config { <service name="VM"/>}
append config { </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="ahci_drv" priority="-1" caps="500"> <resource name="RAM" quantum="10M"/> <provides><service name="Block"/></provides> <config> <policy label_prefix="part_blk" device="0" writeable="yes"/> </config> </start>
<start name="part_blk" priority="-1"> <resource name="RAM" quantum="15M" caps="500"/> <provides><service name="Block"/></provides> <route> <any-service><child name="ahci_drv"/> <parent/><any-child/></any-service> </route> <config> <policy label_prefix="rump_fs" partition="3" writeable="yes"/> </config> </start>
<start name="rump_fs" priority="-1" caps="1500"> <resource name="RAM" quantum="20M"/> <provides><service name="File_system"/></provides> <config ld_verbose="yes" fs="ext2fs"> <policy label_prefix="overlay_from_disk" root="/ram" writeable="yes"/> <default-policy root="/" writeable="yes"/> </config> <route> <any-service><child name="part_blk"/> <parent/><any-child/></any-service> </route> </start> <start name="ram_fs" priority="-1" caps="2800"> <resource name="RAM" quantum="512M"/> <provides><service name="File_system"/></provides> <config> <content> <dir name="ram"> <rom name="overlay_ubuntu_16_04_64.vdi"/> </dir> </content> <!-- constrain sessions according to their labels --> <policy label_prefix="vbox1 -> from_ram_fs" root="/ram" writeable="yes"/> </config> <route> <service name="ROM" label="overlay_ubuntu_16_04_64.vdi"> <child name="overlay_from_disk"/></service> <any-service> <parent/> <any-child/></any-service> </route> </start> <start name="overlay_from_disk" priority="-1"> <binary name="fs_rom"/> <resource name="RAM" quantum="32M"/> <provides><service name="ROM"/></provides> <route> <service name="File_system"><child name="rump_fs"/></service> <any-service><parent/><any-child/></any-service> </route> </start>}
append_platform_drv_config
append_if [expr $use_ps2] config { <start name="ps2_drv" priority="-1"> <resource name="RAM" quantum="1M"/> <provides><service name="Input"/></provides> </start>}
append_if [expr $use_usb] config { <start name="usb_drv" priority="-1" caps="120"> <resource name="RAM" quantum="8M"/> <provides><service name="Input"/></provides>}
append_if [expr $use_usb && ![have_spec muen]] config { <config uhci="yes" ehci="yes" xhci="yes">}
append_if [expr $use_usb && [have_spec muen]] config { <config uhci="no" ehci="no" xhci="yes">}
append_if [expr $use_usb] config { <hid/> </config> </start>}
append_if [have_spec framebuffer] config { <start name="fb_drv" priority="-1" caps="150"> <resource name="RAM" quantum="4M"/> <provides><service name="Framebuffer"/></provides> </start>}
append_if [have_spec sdl] config { <start name="fb_sdl" priority="-1"> <resource name="RAM" quantum="4M"/> <provides> <service name="Input"/> <service name="Framebuffer"/> </provides> </start>}
append_if [have_spec x86] config { <start name="rtc_drv" priority="-1"> <resource name="RAM" quantum="1M"/> <provides> <service name="Rtc"/> </provides> </start>}
append_if [expr $use_net] config { <start name="nic_drv" priority="-1"> <resource name="RAM" quantum="4M"/> <provides><service name="Nic"/></provides> </start>}
append_if [expr $use_serial] config { <start name="log_terminal" priority="-1"> <resource name="RAM" quantum="2M"/> <provides> <service name="Terminal"/> </provides> </start>}
append_if [expr $use_bridge] config { <start name="nic_bridge" priority="-1"> <resource name="RAM" quantum="6M"/> <provides><service name="Nic"/></provides> <config/> <route> <service name="Nic"><child name="nic_drv"/></service> <any-service><parent/></any-service> </route> </start>}
append_if [expr $use_gui] config { <start name="report_rom" priority="-1"> <resource name="RAM" quantum="2M"/> <provides> <service name="Report"/> <service name="ROM"/> </provides> <config> <policy label="vbox_pointer -> hover" report="nitpicker -> hover"/> <policy label="vbox_pointer -> xray" report="nitpicker -> xray"/> <policy label="vbox_pointer -> shape1" report="vbox1 -> shape"/> <policy label="vbox_pointer -> shape2" report="vbox2 -> shape"/> </config> </start>
<start name="nitpicker" priority="-1"> <resource name="RAM" quantum="4M"/> <provides><service name="Nitpicker"/></provides> <route> <service name="Framebuffer"> <child name="fb_drv" /> </service> <service name="Report"> <child name="report_rom" /> </service>}
append_if [expr ($use_gui && $use_ps2)] config { <service name="Input"> <child name="ps2_drv"/> </service>} append_if [expr ($use_gui && $use_usb)] config { <service name="Input"> <child name="usb_drv"/> </service>}
append_if [expr $use_gui] config { <any-service> <parent/> <any-child /> </any-service> </route> <config> <report focus="yes" hover="yes" xray="yes" />
<domain name="pointer" layer="1" content="client" label="no" origin="pointer" /> <domain name="" layer="2" content="client" focus="click" hover="always" />
<policy label_prefix="vbox_pointer" domain="pointer"/> <default-policy domain=""/> </config> </start>
<start name="vbox_pointer" priority="-1"> <resource name="RAM" quantum="4M"/> <config> <policy label="nit_fb1" rom="shape1"/> <policy label="nit_fb2" rom="shape2"/> </config> <route> <service name="Nitpicker"> <child name="nitpicker"/> </service> <service name="ROM" label="shape1"> <child name="report_rom"/> </service> <service name="ROM" label="shape2"> <child name="report_rom"/> </service> <service name="ROM" label="hover"> <child name="report_rom"/> </service> <service name="ROM" label="xray"> <child name="report_rom"/> </service> <any-service> <parent/> </any-service> </route> </start>
<start name="nit_fb1" priority="-1"> <binary name="nit_fb"/> <resource name="RAM" quantum="8M" /> <provides> <service name="Framebuffer" /> <service name="Input" /> </provides>
<config xpos="10" ypos="10" width="1024" height="768"/>
<route> <service name="Nitpicker"> <child name="nitpicker"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start>
<start name="nit_fb2" priority="-1"> <binary name="nit_fb"/> <resource name="RAM" quantum="8M" /> <provides> <service name="Framebuffer" /> <service name="Input" /> </provides> <config xpos="890" ypos="310" width="1024" height="768"/> <route> <service name="Nitpicker"> <child name="nitpicker"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start>
<start name="vbox2" priority="-2" caps="500">}
append_if [expr $use_gui] config " <binary name="$virtualbox_binary"/>" append_if [expr $use_gui] config { <resource name="RAM" quantum="448M"/> <config ld_verbose="yes" vbox_file="test.vbox" vm_name="TestVM"> <libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/> <vfs> <dir name="dev"> <log/> <rtc/> </dir> <rom name="test.vbox" /> <rom name="test.iso" /> </vfs> </config> <route> <service name="Nic"> <child name="nic_bridge"/> </service> <service name="Report"> <child name="report_rom"/> </service> <service name="Framebuffer"> <child name="nit_fb2" /> </service> <service name="Input"> <child name="nit_fb2" /> </service> <any-service> <parent /> <any-child /> </any-service> </route> </start>}
append config { <start name="vbox1" priority="-2" caps="1500">} append config " <binary name="$virtualbox_binary"/>"
append config { <resource name="RAM" quantum="448M"/> <config ld_verbose="yes" vbox_file="ubuntu16.vbox" vm_name="ubuntu_16_04_64"> <libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/> <vfs> <dir name="dev"><log/> <rtc/></dir>}
append_if [expr $use_serial] config { <dir name="dev"> <terminal/> </dir>}
append config { <dir name="ram"> <fs label="from_ram_fs" /> </dir> <rom name="ubuntu16.vbox" /> <rom name="overlay_ubuntu_16_04_64.vdi" /> <fs /> </vfs> </config> <route>}
append_if [expr $use_bridge] config { <service name="Nic"> <child name="nic_bridge"/> </service>}
append_if [expr $use_gui] config { <service name="File_system" label="from_ram_fs"> <child name="ram_fs"/> </service> <service name="File_system"> <child name="rump_fs"/> </service> <service name="Framebuffer"> <child name="nit_fb1" /> </service> <service name="Input"> <child name="nit_fb1" /> </service> <service name="Report"><child name="report_rom" /></service> <any-service> <parent/> <any-child /> </any-service> </route> </start> </config> }
install_config $config
exec cp ${genode_dir}/repos/ports/run/test.vbox bin/. exec cp ${genode_dir}/repos/ports/run/ubuntu16.vbox bin/.
set boot_modules { core ld.lib.so init timer test.iso test.vbox ubuntu16.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 vbox_pointer
append boot_modules { ld.lib.so libc.lib.so libm.lib.so pthread.lib.so libc_pipe.lib.so libc_terminal.lib.so libiconv.lib.so stdcxx.lib.so ahci_drv rump_fs ram_fs part_blk fs_rom report_rom rump_fs.lib.so rump.lib.so qemu-usb.lib.so virtualbox-rem }
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 core2duo " if {[expr $use_usb]} { append qemu_args " -usbdevice mouse -usbdevice keyboard" } }
run_genode_until forever
*Serial output data:*
NOVA Microhypervisor v7-190605f (x86_64): Oct 24 2017 12:24:04 [gcc 6.3.0] [MBI]
[ 0] TSC:3593299 kHz BUS:99813 kHz (measured) [ 0] CORE:0:0:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G [ 1] CORE:0:1:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G [ 3] CORE:0:3:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G [ 2] CORE:0:2:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G Hypervisor features SVM Hypervisor reports 4x1 CPUs CPU ID (genode->kernel:package:core:thread) remapping remap (0->0:0:0:0) boot cpu remap (1->1:0:1:0) remap (2->2:0:2:0) remap (3->3:0:3:0) Hypervisor info page contains 27 memory descriptors: core image [0000000000100000,00000000034b0000) binaries region [0000000000275000,00000000034b0000) free for reuse detected physical memory: 0x0000000000000000 - size: 0x000000000009e800 use physical memory: 0x0000000000000000 - size: 0x000000000009e000 detected physical memory: 0x0000000000100000 - size: 0x00000000ac722000 use physical memory: 0x0000000000100000 - size: 0x00000000ac722000 detected physical memory: 0x00000000adb93000 - size: 0x0000000000001000 use physical memory: 0x00000000adb93000 - size: 0x0000000000001000 detected physical memory: 0x00000000add9a000 - size: 0x0000000000156000 use physical memory: 0x00000000add9a000 - size: 0x0000000000156000 detected physical memory: 0x00000000ae825000 - size: 0x000000000004b000 use physical memory: 0x00000000ae825000 - size: 0x000000000004b000 detected physical memory: 0x00000000aeff1000 - size: 0x000000000000f000 use physical memory: 0x00000000aeff1000 - size: 0x000000000000f000 detected physical memory: 0x0000000100000000 - size: 0x0000000040000000 use physical memory: 0x0000000100000000 - size: 0x0000000040000000 :virt_alloc: Allocator 0x230d70 dump: Block: [0000000000002000,0000000000003000) size=4K avail=0 max_avail=0 Block: [0000000000003000,0000000000004000) size=4K avail=0 max_avail=0 Block: [0000000000004000,0000000000005000) size=4K avail=0 max_avail=0 Block: [0000000000005000,0000000000006000) size=4K avail=0 max_avail=0 Block: [0000000000006000,0000000000007000) size=4K avail=0 max_avail=0 Block: [0000000000007000,0000000000008000) size=4K avail=0 max_avail=0 Block: [0000000000008000,0000000000009000) size=4K avail=0 max_avail=0 Block: [0000000000009000,000000000000a000) size=4K avail=0 max_avail=0 Block: [000000000000a000,000000000000b000) size=4K avail=0 max_avail=0 Block: [000000000000b000,000000000000c000) size=4K avail=0 max_avail=0 Block: [000000000000c000,000000000000d000) size=4K avail=0 max_avail=0 Block: [000000000000d000,000000000000e000) size=4K avail=0 max_avail=0 Block: [000000000000e000,000000000000f000) size=4K avail=0 max_avail=0 Block: [000000000000f000,0000000000010000) size=4K avail=0 max_avail=0 Block: [0000000000010000,0000000000011000) size=4K avail=0 max_avail=0 Block: [0000000000011000,0000000000012000) size=4K avail=0 max_avail=0 Block: [0000000000012000,0000000000013000) size=4K avail=0 max_avail=0 Block: [0000000000013000,0000000000014000) size=4K avail=0 max_avail=137434760164K Block: [0000000000014000,0000000000015000) size=4K avail=0 max_avail=0 Block: [0000000000015000,0000000000016000) size=4K avail=0 max_avail=0 Block: [0000000000016000,0000000000017000) size=4K avail=0 max_avail=0 Block: [0000000000017000,0000000000018000) size=4K avail=0 max_avail=0 Block: [0000000000018000,0000000000019000) size=4K avail=0 max_avail=0 Block: [0000000000019000,000000000001a000) size=4K avail=0 max_avail=0 Block: [000000000001a000,000000000001b000) size=4K avail=0 max_avail=0 Block: [000000000001b000,000000000001c000) size=4K avail=0 max_avail=0 Block: [000000000001c000,000000000001d000) size=4K avail=0 max_avail=137434760164K Block: [000000000001d000,000000000001e000) size=4K avail=0 max_avail=0 Block: [000000000001e000,000000000001f000) size=4K avail=0 max_avail=0 Block: [000000000001f000,0000000000020000) size=4K avail=0 max_avail=0 Block: [0000000000020000,0000000000021000) size=4K avail=0 max_avail=0 Block: [0000000000021000,0000000000022000) size=4K avail=0 max_avail=0 Block: [0000000000022000,0000000000023000) size=4K avail=0 max_avail=868K Block: [0000000000023000,0000000000024000) size=4K avail=0 max_avail=0 Block: [0000000000024000,0000000000025000) size=4K avail=0 max_avail=0 Block: [0000000000025000,0000000000026000) size=4K avail=0 max_avail=868K Block: [0000000000026000,0000000000027000) size=4K avail=0 max_avail=0 Block: [0000000000027000,0000000000100000) size=868K avail=868K max_avail=868K Block: [0000000000275000,0000000000276000) size=4K avail=0 max_avail=0 Block: [0000000000276000,0000000000277000) size=4K avail=0 max_avail=137434760164K Block: [0000000000277000,0000000000278000) size=4K avail=0 max_avail=0 Block: [0000000000278000,00000000a0000000) size=2618912K avail=2618912K max_avail=2618912K Block: [00000000b0000000,00000000bfeff000) size=261116K avail=261116K max_avail=137434760164K Block: [00000000bff04000,00007fffbfffd000) size=137434760164K avail=137434760164K max_avail=137434760164K => mem_size=140736144609280 (134216446 MB) / mem_avail=140736144445440 (134216446 MB)
:phys_alloc: Allocator 0x22fca0 dump: Block: [0000000000001000,0000000000010000) size=60K avail=60K max_avail=60K Block: [0000000000012000,000000000009e000) size=560K avail=560K max_avail=560K Block: [0000000000100000,0000000001000000) size=15M avail=15M max_avail=2720188K Block: [00000000067b2000,00000000067b3000) size=4K avail=0 max_avail=0 Block: [00000000067b3000,00000000ac822000) size=2720188K avail=2720188K max_avail=2720188K Block: [00000000adb93000,00000000adb94000) size=4K avail=0 max_avail=2720188K Block: [00000000add9a000,00000000add9b000) size=4K avail=0 max_avail=0 Block: [00000000add9b000,00000000add9c000) size=4K avail=0 max_avail=0 Block: [00000000add9c000,00000000add9d000) size=4K avail=0 max_avail=0 Block: [00000000add9d000,00000000add9e000) size=4K avail=0 max_avail=0 Block: [00000000add9e000,00000000add9f000) size=4K avail=0 max_avail=0 Block: [00000000add9f000,00000000adda0000) size=4K avail=0 max_avail=2720188K Block: [00000000adda0000,00000000adda1000) size=4K avail=0 max_avail=0 Block: [00000000adda1000,00000000adda2000) size=4K avail=0 max_avail=0 Block: [00000000adda2000,00000000adda3000) size=4K avail=0 max_avail=0 Block: [00000000adda3000,00000000adda4000) size=4K avail=0 max_avail=0 Block: [00000000adda4000,00000000adda5000) size=4K avail=0 max_avail=0 Block: [00000000adda5000,00000000adda6000) size=4K avail=0 max_avail=0 Block: [00000000adda6000,00000000adda7000) size=4K avail=0 max_avail=0 Block: [00000000adda7000,00000000adda8000) size=4K avail=0 max_avail=0 Block: [00000000adda8000,00000000adda9000) size=4K avail=0 max_avail=0 Block: [00000000adda9000,00000000addaa000) size=4K avail=0 max_avail=0 Block: [00000000addaa000,00000000addab000) size=4K avail=0 max_avail=0 Block: [00000000addab000,00000000addac000) size=4K avail=0 max_avail=2720188K Block: [00000000addac000,00000000addad000) size=4K avail=0 max_avail=0 Block: [00000000addad000,00000000addae000) size=4K avail=0 max_avail=0 Block: [00000000addae000,00000000addaf000) size=4K avail=0 max_avail=0 Block: [00000000addaf000,00000000addb0000) size=4K avail=0 max_avail=0 Block: [00000000addb0000,00000000addb1000) size=4K avail=0 max_avail=0 Block: [00000000addb1000,00000000addb2000) size=4K avail=0 max_avail=0 Block: [00000000addb2000,00000000addb3000) size=4K avail=0 max_avail=0 Block: [00000000addb3000,00000000addb4000) size=4K avail=0 max_avail=0 Block: [00000000addb4000,00000000addb5000) size=4K avail=0 max_avail=0 Block: [00000000addb5000,00000000addb6000) size=4K avail=0 max_avail=0 Block: [00000000addb6000,00000000addb7000) size=4K avail=0 max_avail=0 Block: [00000000addb7000,00000000addb8000) size=4K avail=0 max_avail=1G Block: [00000000addb8000,00000000addb9000) size=4K avail=0 max_avail=0 Block: [00000000addb9000,00000000addba000) size=4K avail=0 max_avail=0 Block: [00000000addba000,00000000addbb000) size=4K avail=0 max_avail=0 Block: [00000000addbb000,00000000addbc000) size=4K avail=0 max_avail=0 Block: [00000000addbc000,00000000addbd000) size=4K avail=0 max_avail=0 Block: [00000000addbd000,00000000addbe000) size=4K avail=0 max_avail=1G Block: [00000000addbe000,00000000addbf000) size=4K avail=0 max_avail=0 Block: [00000000addbf000,00000000addc0000) size=4K avail=0 max_avail=1212K Block: [00000000addc0000,00000000addc1000) size=4K avail=0 max_avail=0 Block: [00000000addc1000,00000000adef0000) size=1212K avail=1212K max_avail=1212K Block: [00000000ae825000,00000000ae826000) size=4K avail=0 max_avail=1G Block: [00000000ae826000,00000000ae870000) size=296K avail=296K max_avail=296K Block: [00000000aeff1000,00000000af000000) size=60K avail=60K max_avail=1G Block: [0000000100000000,0000000140000000) size=1G avail=1G max_avail=1G => mem_size=3877355520 (3697 MB) / mem_avail=3877183488 (3697 MB)
:io_mem_alloc: Allocator 0x231e58 dump: Block: [0000000000000000,0000000000001000) size=4K avail=4K max_avail=4K Block: [000000000009e000,0000000000100000) size=392K avail=392K max_avail=392K Block: [00000000ac822000,00000000adb93000) size=19908K avail=19908K max_avail=19908K Block: [00000000adb94000,00000000add9a000) size=2072K avail=2072K max_avail=2072K Block: [00000000adef0000,00000000ae825000) size=9428K avail=9428K max_avail=18014398504239100K Block: [00000000ae870000,00000000aeff1000) size=7684K avail=7684K max_avail=7684K Block: [00000000af000000,0000000100000000) size=1296M avail=1296M max_avail=18014398504239100K Block: [0000000140000000,fffffffffffff000) size=18014398504239100K avail=18014398504239100K max_avail=18014398504239100K => mem_size=18446744069740228608 (17592186040630 MB) / mem_avail=18446744069740228608 (17592186040630 MB)
:rom_fs: ROM modules: ROM: [000000000466a000,0000000004687cb8) acpi_drv ROM: [00000000065ac000,00000000065efae8) ahci_drv ROM: [00000000063e3000,00000000063e580b) config ROM: [00000000063e6000,00000000064406d0) fb_drv ROM: [000000000516f000,000000000518f078) fs_rom ROM: [00000000addbf000,00000000addc0000) hypervisor_info_page ROM: [0000000006750000,000000000679fea0) init ROM: [0000000006233000,000000000630bfe8) ld.lib.so ROM: [0000000003fb7000,000000000415a950) libc.lib.so ROM: [0000000006747000,000000000674f290) libc_pipe.lib.so ROM: [00000000067a0000,00000000067b1000) libc_terminal.lib.so ROM: [000000000415b000,0000000004244408) libiconv.lib.so ROM: [0000000006205000,0000000006232fa8) libm.lib.so ROM: [0000000004688000,000000000469a750) log_terminal ROM: [0000000005109000,000000000513e268) nic_bridge ROM: [0000000006190000,00000000061e4370) nic_drv ROM: [00000000061e5000,0000000006204280) nit_fb ROM: [000000000630c000,000000000635a300) nitpicker ROM: [00000000065f0000,000000000661b608) part_blk ROM: [000000000638c000,00000000063e2ac8) platform_drv ROM: [00000000addbc000,00000000addbd000) platform_info ROM: [0000000004426000,00000000044475d8) ps2_drv ROM: [000000000441a000,0000000004425b20) pthread.lib.so ROM: [000000000513f000,000000000516ea70) qemu-usb.lib.so ROM: [0000000006582000,00000000065ab010) ram_fs ROM: [0000000004448000,0000000004466f90) report_rom ROM: [0000000006377000,000000000638bf30) rtc_drv ROM: [0000000004467000,0000000004639918) rump.lib.so ROM: [000000000463a000,0000000004669f30) rump_fs ROM: [000000000661c000,0000000006745d18) rump_fs.lib.so ROM: [0000000004245000,00000000043f8b40) stdcxx.lib.so ROM: [0000000005190000,0000000006190000) test.iso ROM: [0000000006746000,0000000006746fb1) test.vbox ROM: [000000000635c000,0000000006376db8) timer ROM: [000000000635b000,000000000635bf53) ubuntu16.vbox ROM: [0000000006441000,0000000006581550) usb_drv ROM: [00000000043f9000,0000000004419800) vbox_pointer ROM: [000000000469b000,0000000005108298) virtualbox-nova ROM: [0000000003576000,0000000003fb6278) virtualbox-rem
Genode 17.08-112-gee4ee6a <local changes> 3697 MiB RAM and 63254 caps assigned to init [init] child "timer" announces service "Timer" [init] child "report_rom" announces service "Report" [init] child "report_rom" announces service "ROM" [init] child "log_terminal" announces service "Terminal" [init -> nic_drv] --- iPXE NIC driver started --- [init] child "acpi_report_rom" announces service "Report" [init -> rump_fs] 0xa0000000 .. 0xafffffff: stack area [init -> ahci_drv] --- Starting AHCI driver --- [init -> nic_drv] -- init iPXE NIC [init] child "acpi_report_rom" announces service "ROM" [init -> rump_fs] 0x30000 .. 0x13bfff: ld.lib.so [init -> rump_fs] 0x1033000 .. 0x1202fff: rump.lib.so [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> rump_fs] 0x1203000 .. 0x1329fff: rump_fs.lib.so [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xe0000000 seg 0x0 bus 0x0-0xff [init] child "platform_drv" announces service "Platform" Warning: PD (init -> usb_drv) RAM limit (used=4884K, limit=6005765) exceeded during transfer_quota(2M) [init] Warning: usb_drv: RAM upgrade of Platform failed [init -> ps2_drv] Using keyboard with scan code set 1 (xlate) [init -> usb_drv] resource_request: ram_quota=2M, cap_quota=0 [init] child "usb_drv" requests resources: ram_quota=2M, cap_quota=0 [init -> ps2_drv] Warning: could not reset mouse (missing ack) [init -> fb_drv] Found PCI VGA at 00:01.0 [init -> fb_drv] fb mapped to 0x1000 [init] child "fb_drv" announces service "Framebuffer" [init -> nic_drv] Found: 03:00.0 10ec:8168 (rev 0e) IRQ 0b [init -> nic_drv] using driver rtl8168 [init -> nic_drv] PCI BIOS has not enabled device 03:00.0! Updating PCI command 0003->0007 [init -> nic_drv] [ 0] sys_assign_pci: Invalid Hint (0x300) [init -> platform_drv] Error: nic_drv -> : assignment of PCI device 3:0.0 failed phys=0xe0300000 virt=0x1000 [init -> ps2_drv] Error: failed to read from port [init -> nic_drv] PCI device 03:00.0 latency timer is unreasonably low at 0. Setting to 32. [init -> ahci_drv] AHCI found (vendor: 4130 device: 30721 class: 67073) [init -> ps2_drv] Warning: could not reset mouse (unexpected response) [init -> nic_drv] [init -> nic_drv] bus_addr = fea18000 len = 100 [ 0] sys_assign_pci: Invalid Hint (0x88) [init -> platform_drv] Error: ahci_drv -> : assignment of PCI device 0:11.0 failed phys=0xe0088000 virt=0x1000 [init -> platform_drv] 0:11.0 adjust IRQ as reported by ACPI: 10 -> 19 [init -> platform_drv] 0:11.0 uses MSI 64bit, vector 0x9f, address 0xfee10000, non-maskable [init -> ahci_drv] version: major=0x1 minor=0x300 [init -> nic_drv] snprintf not implemented [init -> platform_drv] 3:0.0 adjust IRQ as reported by ACPI: 11 -> 18 [init -> ahci_drv] command slots: 32 [init -> ahci_drv] native command queuing: yes [init -> platform_drv] 3:0.0 uses MSI 64bit, vector 0x9e, address 0xfee10000, non-maskable [init -> ahci_drv] 64-bit support: yes [init -> ahci_drv] number of ports: 6 pi: 0x3f [init] child "nic_drv" announces service "Nic" [init -> ps2_drv] Error: failed to read from port [init -> nic_drv] MAC address f4:4d:30:b9:16:f5 [init -> nic_bridge] --- NIC bridge started (mac=f4:4d:30:b9:16:f5) --- [init] child "nic_bridge" announces service "Nic" [init -> ps2_drv] Warning: could not enable stream [init -> fb_drv] Found: VESA BIOS version 3.0 [init -> ahci_drv] #0: ATA [init -> ahci_drv] #1: off (unknown device signature) [init -> fb_drv] OEM: AMD ATOMBIOS [init -> ahci_drv] #2: off (unknown device signature) [init -> ahci_drv] #3: off (unknown device signature) [init -> ahci_drv] #4: off (unknown device signature) [init -> ahci_drv] #5: off (unknown device signature) [init -> platform_drv] PS2 uses IRQ, vector 0x1 [init -> platform_drv] PS2 uses IRQ, vector 0xc [init] child "ps2_drv" announces service "Input" [init -> fb_drv] Found: physical frame buffer at 0xc0000000 size: 16777216 [init -> fb_drv] fb mapped to 0xb000000 [init -> fb_drv] using video mode: 1920x1080@...64... [init] child "nitpicker" announces service "Nitpicker" [init] child "nit_fb1" announces service "Framebuffer" [init] child "nit_fb2" announces service "Framebuffer" [init] child "nit_fb1" announces service "Input" [init -> nit_fb1] using xywh=(10,10,1024,768) [init] child "nit_fb2" announces service "Input" [init -> nit_fb2] using xywh=(890,890,1024,768) [init] child "rtc_drv" announces service "Rtc" [init -> vbox1] 0xa0000000 .. 0xafffffff: stack area [init -> vbox1] 0x30000 .. 0x13bfff: ld.lib.so [init -> vbox1] 0x1ae4000 .. 0x1c96fff: libc.lib.so [init -> vbox2] 0xa0000000 .. 0xafffffff: stack area [init -> vbox1] 0x1c97000 .. 0x1c9ffff: libc_pipe.lib.so [init -> vbox1] 0x1ca0000 .. 0x1caffff: libc_terminal.lib.so [init -> vbox2] 0x30000 .. 0x13bfff: ld.lib.so [init -> vbox2] 0x1ae4000 .. 0x1c96fff: libc.lib.so [init -> vbox1] 0x1cb0000 .. 0x1d97fff: libiconv.lib.so [init -> vbox2] 0x1c97000 .. 0x1c9ffff: libc_pipe.lib.so [init -> vbox2] 0x1ca0000 .. 0x1caffff: libc_terminal.lib.so [init -> vbox1] 0x1d98000 .. 0x1dc1fff: libm.lib.so [init -> vbox1] 0x1dc2000 .. 0x1dcdfff: pthread.lib.so [init -> vbox2] 0x1cb0000 .. 0x1d97fff: libiconv.lib.so [init -> vbox1] 0x1dce000 .. 0x1e10fff: qemu-usb.lib.so [init -> vbox1] 0x1e11000 .. 0x1fc6fff: stdcxx.lib.so [init -> vbox2] 0x1d98000 .. 0x1dc1fff: libm.lib.so [init -> vbox2] 0x1dc2000 .. 0x1dcdfff: pthread.lib.so [init -> vbox2] 0x1dce000 .. 0x1e10fff: qemu-usb.lib.so [init -> vbox2] 0x1e11000 .. 0x1fc6fff: stdcxx.lib.so [init -> vbox2] using the pipe libc plugin [init -> vbox2] Warning: issetugid called, not yet implemented, returning 1 [init -> vbox2] Warning: issetugid called, not yet implemented, returning 1 [init -> vbox2] Error: fcntl(): command 2 not supported [init -> vbox2] Log created: 2017-10-26T20:29:00.000000000Z [init -> vbox2] main Executable: /virtualbox [init -> vbox2] Error: SystemProperties : Cannot determine default Guest Additions ISO location. Most likely they are not available [init -> vbox2] Warning: _fpathconf: _fpathconf not implemented [init -> vbox2] Warning: statfs provides bogus values for '//test.iso' (probably a shared folder) [init -> vbox2] Warning: fcntl(): command 4 args 4 not supported - terminal [init -> vbox2] Warning: _sigaction: _sigaction not implemented [init -> vbox2] Using SVM virtualization extension. [init -> vbox2] Error: fireRuntimeErrorEvent : 0 DrvHostSerialFail Ioctl failed for serial host device '/dev/terminal' (VERR_NOT_SUPPORTED). The device will not work properly [init -> vbox2] fb resize : 1024x768@...64... -> 720x400@...361... [init -> vbox2] fb resize : 720x400@...64... -> 640x480@...362... [init -> vbox2] fb resize : 640x480@...64... -> 720x400@...361... [init -> vbox2] fb resize : 720x400@...64... -> 1024x768@...362...
Hello,
first - great detailed report !
After looking through the serial output, the ahci driver does not announce its service. So the line
[init] child "ahci_drv" announces service "Block"
is missing. Because of that part_blk waits for ahci_drv, rump_fs is waiting for part_blk and vbox2 waits for rump_fs.
I would suggest first to make sure that the ahci_drv is working on your machine by using some simpler run script like ahci_bench.run.
If it does not work for you, you will have to instrument the ahci driver to see where it gets stuck.
Cheers,
Alex.
On 26.10.2017 23:21, Chris Rothrock wrote:
I am still attempting to make a VM work from an external .vdi disk image using the model of your testing platforms. I still haven't been able to get the testing platform running properly either but using the configuration as a template, I have adapted my own run recipe to make one VM using a TinyCore VM booting from the ISO (as in the Virtualbox demo) and one VM booting from the VDI. The hardware I am running has been tested and works fine with up to 3 VMs running the TinyCore demo flawlessly.
Here is the findings from my configuration and testing of the build I am attempting:
- vbox2 loads perfectly fine, TinyCore works flawlessly.
- vbox1 fails to load the main executable /virtualbox
- If I remove the one line from the configuration of vbox1 *<dir
name="ram"> <fs label="from_ram_fs" /> </dir>* vbox1 loads (but obviously has nothing to boot from)
- I have also attempted to boot from the vdi file using *<block name="sda3"
label="raw" block_buffer_count="128" />* in the <vfs> tags and adding the service *<service name="Block"><child name="part_blk"/></service>* but this also fails to load the main executable
- serial data has an error *[init -> platform_drv] Error: ahci_drv -> :
assignment of PCI device 0:11.0 failed phys=0xe0088000 virt=0x1000* however further down, the AHCI controller is read and detects the hard drive on port 0 just fine, so this is seemingly working
Any assistance in getting this to work would be greatly appreciated.
*Hardware configuration:* 4 GB RAM 4 core CPU 1 serial port (for output data) PS2 controller USB controller with 6 ports A single SATA hard drive on port 0 with 4 partitions. Partition 3 and 4 are ext2 formatted The .vdi file I have been trying to load is on both partitions 3 and 4 with the overlay file in the /ram directory also on each partition The BIOS has the SATA controller set to AHCI mode (as opposed to IDE or RAID)
*Filenames:* vbox1 config file: ubuntu16.vbox vbox2 config file: test.vbox vbox2 vdi file: ubuntu_16_04_64.vdi vbox2 overlay file /ram/overlay_ubuntu_16_04_64.vdi
*Run recipe:*
set use_net 1 set use_ps2 [have_spec ps2] set use_usb 1 set use_serial 1
set use_vbox4 1 set use_vbox5 [expr !$use_vbox4]
# use_gui starts two VMs set use_gui 1 # need a nic bridge for 2 VMs set use_bridge [expr $use_net && $use_gui]
set build_components { core init drivers/framebuffer drivers/timer drivers/ahci server/part_blk server/fs_rom server/rump_fs server/ram_fs }
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/vbox_pointer
append_platform_drv_build_components
build $build_components
create_boot_directory
set config {
<config prio_levels="4"> <parent-provides> <service name="ROM"/> <service name="IRQ"/> <service name="IO_MEM"/> <service name="IO_PORT"/> <service name="PD"/> <service name="RM"/> <service name="CPU"/> <service name="LOG"/>}
append_if [have_spec muen] config { <service name="VM"/>}
append config {
</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="ahci_drv" priority="-1" caps="500"> <resource name="RAM" quantum="10M"/> <provides><service name="Block"/></provides> <config> <policy label_prefix="part_blk" device="0" writeable="yes"/> </config> </start>
<start name="part_blk" priority="-1"> <resource name="RAM" quantum="15M" caps="500"/> <provides><service name="Block"/></provides> <route> <any-service><child name="ahci_drv"/> <parent/><any-child/></any-service> </route> <config> <policy label_prefix="rump_fs" partition="3" writeable="yes"/> </config> </start>
<start name="rump_fs" priority="-1" caps="1500"> <resource name="RAM" quantum="20M"/> <provides><service name="File_system"/></provides> <config ld_verbose="yes" fs="ext2fs"> <policy label_prefix="overlay_from_disk" root="/ram" writeable="yes"/> <default-policy root="/" writeable="yes"/> </config> <route> <any-service><child name="part_blk"/> <parent/><any-child/></any-service> </route> </start> <start name="ram_fs" priority="-1" caps="2800"> <resource name="RAM" quantum="512M"/> <provides><service name="File_system"/></provides> <config> <content> <dir name="ram"> <rom name="overlay_ubuntu_16_04_64.vdi"/> </dir> </content> <!-- constrain sessions according to their labels --> <policy label_prefix="vbox1 -> from_ram_fs" root="/ram" writeable="yes"/> </config> <route> <service name="ROM" label="overlay_ubuntu_16_04_64.vdi"> <child name="overlay_from_disk"/></service> <any-service> <parent/> <any-child/></any-service> </route> </start> <start name="overlay_from_disk" priority="-1"> <binary name="fs_rom"/> <resource name="RAM" quantum="32M"/> <provides><service name="ROM"/></provides> <route> <service name="File_system"><child name="rump_fs"/></service> <any-service><parent/><any-child/></any-service> </route> </start>}
append_platform_drv_config
append_if [expr $use_ps2] config {
<start name="ps2_drv" priority="-1"> <resource name="RAM" quantum="1M"/> <provides><service name="Input"/></provides> </start>}
append_if [expr $use_usb] config {
<start name="usb_drv" priority="-1" caps="120"> <resource name="RAM" quantum="8M"/> <provides><service name="Input"/></provides>}
append_if [expr $use_usb && ![have_spec muen]] config { <config uhci="yes" ehci="yes" xhci="yes">}
append_if [expr $use_usb && [have_spec muen]] config { <config uhci="no" ehci="no" xhci="yes">}
append_if [expr $use_usb] config {
<hid/> </config> </start>}
append_if [have_spec framebuffer] config {
<start name="fb_drv" priority="-1" caps="150"> <resource name="RAM" quantum="4M"/> <provides><service name="Framebuffer"/></provides> </start>}
append_if [have_spec sdl] config {
<start name="fb_sdl" priority="-1"> <resource name="RAM" quantum="4M"/> <provides> <service name="Input"/> <service name="Framebuffer"/> </provides> </start>}
append_if [have_spec x86] config {
<start name="rtc_drv" priority="-1"> <resource name="RAM" quantum="1M"/> <provides> <service name="Rtc"/> </provides> </start>}
append_if [expr $use_net] config {
<start name="nic_drv" priority="-1"> <resource name="RAM" quantum="4M"/> <provides><service name="Nic"/></provides> </start>}
append_if [expr $use_serial] config {
<start name="log_terminal" priority="-1"> <resource name="RAM" quantum="2M"/> <provides> <service name="Terminal"/> </provides> </start>}
append_if [expr $use_bridge] config {
<start name="nic_bridge" priority="-1"> <resource name="RAM" quantum="6M"/> <provides><service name="Nic"/></provides> <config/> <route> <service name="Nic"><child name="nic_drv"/></service> <any-service><parent/></any-service> </route> </start>}
append_if [expr $use_gui] config {
<start name="report_rom" priority="-1"> <resource name="RAM" quantum="2M"/> <provides> <service name="Report"/> <service name="ROM"/> </provides> <config> <policy label="vbox_pointer -> hover" report="nitpicker -> hover"/> <policy label="vbox_pointer -> xray" report="nitpicker -> xray"/> <policy label="vbox_pointer -> shape1" report="vbox1 -> shape"/> <policy label="vbox_pointer -> shape2" report="vbox2 -> shape"/> </config> </start>
<start name="nitpicker" priority="-1"> <resource name="RAM" quantum="4M"/> <provides><service name="Nitpicker"/></provides> <route> <service name="Framebuffer"> <child name="fb_drv" /> </service> <service name="Report"> <child name="report_rom" /> </service>}
append_if [expr ($use_gui && $use_ps2)] config { <service name="Input"> <child name="ps2_drv"/> </service>} append_if [expr ($use_gui && $use_usb)] config { <service name="Input"> <child name="usb_drv"/> </service>}
append_if [expr $use_gui] config { <any-service> <parent/> <any-child /> </any-service>
</route> <config> <report focus="yes" hover="yes" xray="yes" />
<domain name="pointer" layer="1" content="client" label="no" origin="pointer" /> <domain name="" layer="2" content="client" focus="click" hover="always" />
<policy label_prefix="vbox_pointer" domain="pointer"/> <default-policy domain=""/> </config> </start>
<start name="vbox_pointer" priority="-1"> <resource name="RAM" quantum="4M"/> <config> <policy label="nit_fb1" rom="shape1"/> <policy label="nit_fb2" rom="shape2"/> </config> <route> <service name="Nitpicker"> <child name="nitpicker"/> </service> <service name="ROM" label="shape1"> <child name="report_rom"/> </service> <service name="ROM" label="shape2"> <child name="report_rom"/> </service> <service name="ROM" label="hover"> <child name="report_rom"/> </service> <service name="ROM" label="xray"> <child name="report_rom"/> </service> <any-service> <parent/> </any-service> </route> </start>
<start name="nit_fb1" priority="-1"> <binary name="nit_fb"/> <resource name="RAM" quantum="8M" /> <provides> <service name="Framebuffer" /> <service name="Input" /> </provides>
<config xpos="10" ypos="10" width="1024" height="768"/>
<route> <service name="Nitpicker"> <child name="nitpicker"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start>
<start name="nit_fb2" priority="-1"> <binary name="nit_fb"/> <resource name="RAM" quantum="8M" /> <provides> <service name="Framebuffer" /> <service name="Input" /> </provides> <config xpos="890" ypos="310" width="1024" height="768"/> <route> <service name="Nitpicker"> <child name="nitpicker"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start>
<start name="vbox2" priority="-2" caps="500">}
append_if [expr $use_gui] config " <binary name="$virtualbox_binary"/>" append_if [expr $use_gui] config {
<resource name="RAM" quantum="448M"/> <config ld_verbose="yes" vbox_file="test.vbox" vm_name="TestVM"> <libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/> <vfs> <dir name="dev"> <log/> <rtc/> </dir> <rom name="test.vbox" /> <rom name="test.iso" /> </vfs> </config> <route> <service name="Nic"> <child name="nic_bridge"/> </service> <service name="Report"> <child name="report_rom"/> </service> <service name="Framebuffer"> <child name="nit_fb2" /> </service> <service name="Input"> <child name="nit_fb2" /> </service> <any-service> <parent /> <any-child /> </any-service> </route> </start>}
append config { <start name="vbox1" priority="-2" caps="1500">} append config " <binary name="$virtualbox_binary"/>"
append config {
<resource name="RAM" quantum="448M"/> <config ld_verbose="yes" vbox_file="ubuntu16.vbox" vm_name="ubuntu_16_04_64"> <libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/> <vfs> <dir name="dev"><log/> <rtc/></dir>}
append_if [expr $use_serial] config {
<dir name="dev"> <terminal/> </dir>}
append config {
<dir name="ram"> <fs label="from_ram_fs" /> </dir> <rom name="ubuntu16.vbox" /> <rom name="overlay_ubuntu_16_04_64.vdi" /> <fs /> </vfs> </config> <route>}
append_if [expr $use_bridge] config { <service name="Nic"> <child name="nic_bridge"/> </service>}
append_if [expr $use_gui] config { <service name="File_system" label="from_ram_fs"> <child name="ram_fs"/>
</service> <service name="File_system"> <child name="rump_fs"/> </service> <service name="Framebuffer"> <child name="nit_fb1" /> </service> <service name="Input"> <child name="nit_fb1" /> </service> <service name="Report"><child name="report_rom" /></service> <any-service> <parent/> <any-child /> </any-service> </route> </start> </config> }
install_config $config
exec cp ${genode_dir}/repos/ports/run/test.vbox bin/. exec cp ${genode_dir}/repos/ports/run/ubuntu16.vbox bin/.
set boot_modules { core ld.lib.so init timer test.iso test.vbox ubuntu16.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 vbox_pointer
append boot_modules { ld.lib.so libc.lib.so libm.lib.so pthread.lib.so libc_pipe.lib.so libc_terminal.lib.so libiconv.lib.so stdcxx.lib.so ahci_drv rump_fs ram_fs part_blk fs_rom report_rom rump_fs.lib.so rump.lib.so qemu-usb.lib.so virtualbox-rem }
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 core2duo " if {[expr $use_usb]} { append qemu_args " -usbdevice mouse -usbdevice keyboard" } }
run_genode_until forever
*Serial output data:*
NOVA Microhypervisor v7-190605f (x86_64): Oct 24 2017 12:24:04 [gcc 6.3.0] [MBI]
[ 0] TSC:3593299 kHz BUS:99813 kHz (measured) [ 0] CORE:0:0:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G [ 1] CORE:0:1:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G [ 3] CORE:0:3:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G [ 2] CORE:0:2:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G Hypervisor features SVM Hypervisor reports 4x1 CPUs CPU ID (genode->kernel:package:core:thread) remapping remap (0->0:0:0:0) boot cpu remap (1->1:0:1:0) remap (2->2:0:2:0) remap (3->3:0:3:0) Hypervisor info page contains 27 memory descriptors: core image [0000000000100000,00000000034b0000) binaries region [0000000000275000,00000000034b0000) free for reuse detected physical memory: 0x0000000000000000 - size: 0x000000000009e800 use physical memory: 0x0000000000000000 - size: 0x000000000009e000 detected physical memory: 0x0000000000100000 - size: 0x00000000ac722000 use physical memory: 0x0000000000100000 - size: 0x00000000ac722000 detected physical memory: 0x00000000adb93000 - size: 0x0000000000001000 use physical memory: 0x00000000adb93000 - size: 0x0000000000001000 detected physical memory: 0x00000000add9a000 - size: 0x0000000000156000 use physical memory: 0x00000000add9a000 - size: 0x0000000000156000 detected physical memory: 0x00000000ae825000 - size: 0x000000000004b000 use physical memory: 0x00000000ae825000 - size: 0x000000000004b000 detected physical memory: 0x00000000aeff1000 - size: 0x000000000000f000 use physical memory: 0x00000000aeff1000 - size: 0x000000000000f000 detected physical memory: 0x0000000100000000 - size: 0x0000000040000000 use physical memory: 0x0000000100000000 - size: 0x0000000040000000 :virt_alloc: Allocator 0x230d70 dump: Block: [0000000000002000,0000000000003000) size=4K avail=0 max_avail=0 Block: [0000000000003000,0000000000004000) size=4K avail=0 max_avail=0 Block: [0000000000004000,0000000000005000) size=4K avail=0 max_avail=0 Block: [0000000000005000,0000000000006000) size=4K avail=0 max_avail=0 Block: [0000000000006000,0000000000007000) size=4K avail=0 max_avail=0 Block: [0000000000007000,0000000000008000) size=4K avail=0 max_avail=0 Block: [0000000000008000,0000000000009000) size=4K avail=0 max_avail=0 Block: [0000000000009000,000000000000a000) size=4K avail=0 max_avail=0 Block: [000000000000a000,000000000000b000) size=4K avail=0 max_avail=0 Block: [000000000000b000,000000000000c000) size=4K avail=0 max_avail=0 Block: [000000000000c000,000000000000d000) size=4K avail=0 max_avail=0 Block: [000000000000d000,000000000000e000) size=4K avail=0 max_avail=0 Block: [000000000000e000,000000000000f000) size=4K avail=0 max_avail=0 Block: [000000000000f000,0000000000010000) size=4K avail=0 max_avail=0 Block: [0000000000010000,0000000000011000) size=4K avail=0 max_avail=0 Block: [0000000000011000,0000000000012000) size=4K avail=0 max_avail=0 Block: [0000000000012000,0000000000013000) size=4K avail=0 max_avail=0 Block: [0000000000013000,0000000000014000) size=4K avail=0 max_avail=137434760164K Block: [0000000000014000,0000000000015000) size=4K avail=0 max_avail=0 Block: [0000000000015000,0000000000016000) size=4K avail=0 max_avail=0 Block: [0000000000016000,0000000000017000) size=4K avail=0 max_avail=0 Block: [0000000000017000,0000000000018000) size=4K avail=0 max_avail=0 Block: [0000000000018000,0000000000019000) size=4K avail=0 max_avail=0 Block: [0000000000019000,000000000001a000) size=4K avail=0 max_avail=0 Block: [000000000001a000,000000000001b000) size=4K avail=0 max_avail=0 Block: [000000000001b000,000000000001c000) size=4K avail=0 max_avail=0 Block: [000000000001c000,000000000001d000) size=4K avail=0 max_avail=137434760164K Block: [000000000001d000,000000000001e000) size=4K avail=0 max_avail=0 Block: [000000000001e000,000000000001f000) size=4K avail=0 max_avail=0 Block: [000000000001f000,0000000000020000) size=4K avail=0 max_avail=0 Block: [0000000000020000,0000000000021000) size=4K avail=0 max_avail=0 Block: [0000000000021000,0000000000022000) size=4K avail=0 max_avail=0 Block: [0000000000022000,0000000000023000) size=4K avail=0 max_avail=868K Block: [0000000000023000,0000000000024000) size=4K avail=0 max_avail=0 Block: [0000000000024000,0000000000025000) size=4K avail=0 max_avail=0 Block: [0000000000025000,0000000000026000) size=4K avail=0 max_avail=868K Block: [0000000000026000,0000000000027000) size=4K avail=0 max_avail=0 Block: [0000000000027000,0000000000100000) size=868K avail=868K max_avail=868K Block: [0000000000275000,0000000000276000) size=4K avail=0 max_avail=0 Block: [0000000000276000,0000000000277000) size=4K avail=0 max_avail=137434760164K Block: [0000000000277000,0000000000278000) size=4K avail=0 max_avail=0 Block: [0000000000278000,00000000a0000000) size=2618912K avail=2618912K max_avail=2618912K Block: [00000000b0000000,00000000bfeff000) size=261116K avail=261116K max_avail=137434760164K Block: [00000000bff04000,00007fffbfffd000) size=137434760164K avail=137434760164K max_avail=137434760164K => mem_size=140736144609280 (134216446 MB) / mem_avail=140736144445440 (134216446 MB)
:phys_alloc: Allocator 0x22fca0 dump: Block: [0000000000001000,0000000000010000) size=60K avail=60K max_avail=60K Block: [0000000000012000,000000000009e000) size=560K avail=560K max_avail=560K Block: [0000000000100000,0000000001000000) size=15M avail=15M max_avail=2720188K Block: [00000000067b2000,00000000067b3000) size=4K avail=0 max_avail=0 Block: [00000000067b3000,00000000ac822000) size=2720188K avail=2720188K max_avail=2720188K Block: [00000000adb93000,00000000adb94000) size=4K avail=0 max_avail=2720188K Block: [00000000add9a000,00000000add9b000) size=4K avail=0 max_avail=0 Block: [00000000add9b000,00000000add9c000) size=4K avail=0 max_avail=0 Block: [00000000add9c000,00000000add9d000) size=4K avail=0 max_avail=0 Block: [00000000add9d000,00000000add9e000) size=4K avail=0 max_avail=0 Block: [00000000add9e000,00000000add9f000) size=4K avail=0 max_avail=0 Block: [00000000add9f000,00000000adda0000) size=4K avail=0 max_avail=2720188K Block: [00000000adda0000,00000000adda1000) size=4K avail=0 max_avail=0 Block: [00000000adda1000,00000000adda2000) size=4K avail=0 max_avail=0 Block: [00000000adda2000,00000000adda3000) size=4K avail=0 max_avail=0 Block: [00000000adda3000,00000000adda4000) size=4K avail=0 max_avail=0 Block: [00000000adda4000,00000000adda5000) size=4K avail=0 max_avail=0 Block: [00000000adda5000,00000000adda6000) size=4K avail=0 max_avail=0 Block: [00000000adda6000,00000000adda7000) size=4K avail=0 max_avail=0 Block: [00000000adda7000,00000000adda8000) size=4K avail=0 max_avail=0 Block: [00000000adda8000,00000000adda9000) size=4K avail=0 max_avail=0 Block: [00000000adda9000,00000000addaa000) size=4K avail=0 max_avail=0 Block: [00000000addaa000,00000000addab000) size=4K avail=0 max_avail=0 Block: [00000000addab000,00000000addac000) size=4K avail=0 max_avail=2720188K Block: [00000000addac000,00000000addad000) size=4K avail=0 max_avail=0 Block: [00000000addad000,00000000addae000) size=4K avail=0 max_avail=0 Block: [00000000addae000,00000000addaf000) size=4K avail=0 max_avail=0 Block: [00000000addaf000,00000000addb0000) size=4K avail=0 max_avail=0 Block: [00000000addb0000,00000000addb1000) size=4K avail=0 max_avail=0 Block: [00000000addb1000,00000000addb2000) size=4K avail=0 max_avail=0 Block: [00000000addb2000,00000000addb3000) size=4K avail=0 max_avail=0 Block: [00000000addb3000,00000000addb4000) size=4K avail=0 max_avail=0 Block: [00000000addb4000,00000000addb5000) size=4K avail=0 max_avail=0 Block: [00000000addb5000,00000000addb6000) size=4K avail=0 max_avail=0 Block: [00000000addb6000,00000000addb7000) size=4K avail=0 max_avail=0 Block: [00000000addb7000,00000000addb8000) size=4K avail=0 max_avail=1G Block: [00000000addb8000,00000000addb9000) size=4K avail=0 max_avail=0 Block: [00000000addb9000,00000000addba000) size=4K avail=0 max_avail=0 Block: [00000000addba000,00000000addbb000) size=4K avail=0 max_avail=0 Block: [00000000addbb000,00000000addbc000) size=4K avail=0 max_avail=0 Block: [00000000addbc000,00000000addbd000) size=4K avail=0 max_avail=0 Block: [00000000addbd000,00000000addbe000) size=4K avail=0 max_avail=1G Block: [00000000addbe000,00000000addbf000) size=4K avail=0 max_avail=0 Block: [00000000addbf000,00000000addc0000) size=4K avail=0 max_avail=1212K Block: [00000000addc0000,00000000addc1000) size=4K avail=0 max_avail=0 Block: [00000000addc1000,00000000adef0000) size=1212K avail=1212K max_avail=1212K Block: [00000000ae825000,00000000ae826000) size=4K avail=0 max_avail=1G Block: [00000000ae826000,00000000ae870000) size=296K avail=296K max_avail=296K Block: [00000000aeff1000,00000000af000000) size=60K avail=60K max_avail=1G Block: [0000000100000000,0000000140000000) size=1G avail=1G max_avail=1G => mem_size=3877355520 (3697 MB) / mem_avail=3877183488 (3697 MB)
:io_mem_alloc: Allocator 0x231e58 dump: Block: [0000000000000000,0000000000001000) size=4K avail=4K max_avail=4K Block: [000000000009e000,0000000000100000) size=392K avail=392K max_avail=392K Block: [00000000ac822000,00000000adb93000) size=19908K avail=19908K max_avail=19908K Block: [00000000adb94000,00000000add9a000) size=2072K avail=2072K max_avail=2072K Block: [00000000adef0000,00000000ae825000) size=9428K avail=9428K max_avail=18014398504239100K Block: [00000000ae870000,00000000aeff1000) size=7684K avail=7684K max_avail=7684K Block: [00000000af000000,0000000100000000) size=1296M avail=1296M max_avail=18014398504239100K Block: [0000000140000000,fffffffffffff000) size=18014398504239100K avail=18014398504239100K max_avail=18014398504239100K => mem_size=18446744069740228608 (17592186040630 MB) / mem_avail=18446744069740228608 (17592186040630 MB)
:rom_fs: ROM modules: ROM: [000000000466a000,0000000004687cb8) acpi_drv ROM: [00000000065ac000,00000000065efae8) ahci_drv ROM: [00000000063e3000,00000000063e580b) config ROM: [00000000063e6000,00000000064406d0) fb_drv ROM: [000000000516f000,000000000518f078) fs_rom ROM: [00000000addbf000,00000000addc0000) hypervisor_info_page ROM: [0000000006750000,000000000679fea0) init ROM: [0000000006233000,000000000630bfe8) ld.lib.so ROM: [0000000003fb7000,000000000415a950) libc.lib.so ROM: [0000000006747000,000000000674f290) libc_pipe.lib.so ROM: [00000000067a0000,00000000067b1000) libc_terminal.lib.so ROM: [000000000415b000,0000000004244408) libiconv.lib.so ROM: [0000000006205000,0000000006232fa8) libm.lib.so ROM: [0000000004688000,000000000469a750) log_terminal ROM: [0000000005109000,000000000513e268) nic_bridge ROM: [0000000006190000,00000000061e4370) nic_drv ROM: [00000000061e5000,0000000006204280) nit_fb ROM: [000000000630c000,000000000635a300) nitpicker ROM: [00000000065f0000,000000000661b608) part_blk ROM: [000000000638c000,00000000063e2ac8) platform_drv ROM: [00000000addbc000,00000000addbd000) platform_info ROM: [0000000004426000,00000000044475d8) ps2_drv ROM: [000000000441a000,0000000004425b20) pthread.lib.so ROM: [000000000513f000,000000000516ea70) qemu-usb.lib.so ROM: [0000000006582000,00000000065ab010) ram_fs ROM: [0000000004448000,0000000004466f90) report_rom ROM: [0000000006377000,000000000638bf30) rtc_drv ROM: [0000000004467000,0000000004639918) rump.lib.so ROM: [000000000463a000,0000000004669f30) rump_fs ROM: [000000000661c000,0000000006745d18) rump_fs.lib.so ROM: [0000000004245000,00000000043f8b40) stdcxx.lib.so ROM: [0000000005190000,0000000006190000) test.iso ROM: [0000000006746000,0000000006746fb1) test.vbox ROM: [000000000635c000,0000000006376db8) timer ROM: [000000000635b000,000000000635bf53) ubuntu16.vbox ROM: [0000000006441000,0000000006581550) usb_drv ROM: [00000000043f9000,0000000004419800) vbox_pointer ROM: [000000000469b000,0000000005108298) virtualbox-nova ROM: [0000000003576000,0000000003fb6278) virtualbox-rem
Genode 17.08-112-gee4ee6a <local changes> 3697 MiB RAM and 63254 caps assigned to init [init] child "timer" announces service "Timer" [init] child "report_rom" announces service "Report" [init] child "report_rom" announces service "ROM" [init] child "log_terminal" announces service "Terminal" [init -> nic_drv] --- iPXE NIC driver started --- [init] child "acpi_report_rom" announces service "Report" [init -> rump_fs] 0xa0000000 .. 0xafffffff: stack area [init -> ahci_drv] --- Starting AHCI driver --- [init -> nic_drv] -- init iPXE NIC [init] child "acpi_report_rom" announces service "ROM" [init -> rump_fs] 0x30000 .. 0x13bfff: ld.lib.so [init -> rump_fs] 0x1033000 .. 0x1202fff: rump.lib.so [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> rump_fs] 0x1203000 .. 0x1329fff: rump_fs.lib.so [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xe0000000 seg 0x0 bus 0x0-0xff [init] child "platform_drv" announces service "Platform" Warning: PD (init -> usb_drv) RAM limit (used=4884K, limit=6005765) exceeded during transfer_quota(2M) [init] Warning: usb_drv: RAM upgrade of Platform failed [init -> ps2_drv] Using keyboard with scan code set 1 (xlate) [init -> usb_drv] resource_request: ram_quota=2M, cap_quota=0 [init] child "usb_drv" requests resources: ram_quota=2M, cap_quota=0 [init -> ps2_drv] Warning: could not reset mouse (missing ack) [init -> fb_drv] Found PCI VGA at 00:01.0 [init -> fb_drv] fb mapped to 0x1000 [init] child "fb_drv" announces service "Framebuffer" [init -> nic_drv] Found: 03:00.0 10ec:8168 (rev 0e) IRQ 0b [init -> nic_drv] using driver rtl8168 [init -> nic_drv] PCI BIOS has not enabled device 03:00.0! Updating PCI command 0003->0007 [init -> nic_drv] [ 0] sys_assign_pci: Invalid Hint (0x300) [init -> platform_drv] Error: nic_drv -> : assignment of PCI device 3:0.0 failed phys=0xe0300000 virt=0x1000 [init -> ps2_drv] Error: failed to read from port [init -> nic_drv] PCI device 03:00.0 latency timer is unreasonably low at 0. Setting to 32. [init -> ahci_drv] AHCI found (vendor: 4130 device: 30721 class: 67073) [init -> ps2_drv] Warning: could not reset mouse (unexpected response) [init -> nic_drv] [init -> nic_drv] bus_addr = fea18000 len = 100 [ 0] sys_assign_pci: Invalid Hint (0x88) [init -> platform_drv] Error: ahci_drv -> : assignment of PCI device 0:11.0 failed phys=0xe0088000 virt=0x1000 [init -> platform_drv] 0:11.0 adjust IRQ as reported by ACPI: 10 -> 19 [init -> platform_drv] 0:11.0 uses MSI 64bit, vector 0x9f, address 0xfee10000, non-maskable [init -> ahci_drv] version: major=0x1 minor=0x300 [init -> nic_drv] snprintf not implemented [init -> platform_drv] 3:0.0 adjust IRQ as reported by ACPI: 11 -> 18 [init -> ahci_drv] command slots: 32 [init -> ahci_drv] native command queuing: yes [init -> platform_drv] 3:0.0 uses MSI 64bit, vector 0x9e, address 0xfee10000, non-maskable [init -> ahci_drv] 64-bit support: yes [init -> ahci_drv] number of ports: 6 pi: 0x3f [init] child "nic_drv" announces service "Nic" [init -> ps2_drv] Error: failed to read from port [init -> nic_drv] MAC address f4:4d:30:b9:16:f5 [init -> nic_bridge] --- NIC bridge started (mac=f4:4d:30:b9:16:f5) --- [init] child "nic_bridge" announces service "Nic" [init -> ps2_drv] Warning: could not enable stream [init -> fb_drv] Found: VESA BIOS version 3.0 [init -> ahci_drv] #0: ATA [init -> ahci_drv] #1: off (unknown device signature) [init -> fb_drv] OEM: AMD ATOMBIOS [init -> ahci_drv] #2: off (unknown device signature) [init -> ahci_drv] #3: off (unknown device signature) [init -> ahci_drv] #4: off (unknown device signature) [init -> ahci_drv] #5: off (unknown device signature) [init -> platform_drv] PS2 uses IRQ, vector 0x1 [init -> platform_drv] PS2 uses IRQ, vector 0xc [init] child "ps2_drv" announces service "Input" [init -> fb_drv] Found: physical frame buffer at 0xc0000000 size: 16777216 [init -> fb_drv] fb mapped to 0xb000000 [init -> fb_drv] using video mode: 1920x1080@...64... [init] child "nitpicker" announces service "Nitpicker" [init] child "nit_fb1" announces service "Framebuffer" [init] child "nit_fb2" announces service "Framebuffer" [init] child "nit_fb1" announces service "Input" [init -> nit_fb1] using xywh=(10,10,1024,768) [init] child "nit_fb2" announces service "Input" [init -> nit_fb2] using xywh=(890,890,1024,768) [init] child "rtc_drv" announces service "Rtc" [init -> vbox1] 0xa0000000 .. 0xafffffff: stack area [init -> vbox1] 0x30000 .. 0x13bfff: ld.lib.so [init -> vbox1] 0x1ae4000 .. 0x1c96fff: libc.lib.so [init -> vbox2] 0xa0000000 .. 0xafffffff: stack area [init -> vbox1] 0x1c97000 .. 0x1c9ffff: libc_pipe.lib.so [init -> vbox1] 0x1ca0000 .. 0x1caffff: libc_terminal.lib.so [init -> vbox2] 0x30000 .. 0x13bfff: ld.lib.so [init -> vbox2] 0x1ae4000 .. 0x1c96fff: libc.lib.so [init -> vbox1] 0x1cb0000 .. 0x1d97fff: libiconv.lib.so [init -> vbox2] 0x1c97000 .. 0x1c9ffff: libc_pipe.lib.so [init -> vbox2] 0x1ca0000 .. 0x1caffff: libc_terminal.lib.so [init -> vbox1] 0x1d98000 .. 0x1dc1fff: libm.lib.so [init -> vbox1] 0x1dc2000 .. 0x1dcdfff: pthread.lib.so [init -> vbox2] 0x1cb0000 .. 0x1d97fff: libiconv.lib.so [init -> vbox1] 0x1dce000 .. 0x1e10fff: qemu-usb.lib.so [init -> vbox1] 0x1e11000 .. 0x1fc6fff: stdcxx.lib.so [init -> vbox2] 0x1d98000 .. 0x1dc1fff: libm.lib.so [init -> vbox2] 0x1dc2000 .. 0x1dcdfff: pthread.lib.so [init -> vbox2] 0x1dce000 .. 0x1e10fff: qemu-usb.lib.so [init -> vbox2] 0x1e11000 .. 0x1fc6fff: stdcxx.lib.so [init -> vbox2] using the pipe libc plugin [init -> vbox2] Warning: issetugid called, not yet implemented, returning 1 [init -> vbox2] Warning: issetugid called, not yet implemented, returning 1 [init -> vbox2] Error: fcntl(): command 2 not supported [init -> vbox2] Log created: 2017-10-26T20:29:00.000000000Z [init -> vbox2] main Executable: /virtualbox [init -> vbox2] Error: SystemProperties : Cannot determine default Guest Additions ISO location. Most likely they are not available [init -> vbox2] Warning: _fpathconf: _fpathconf not implemented [init -> vbox2] Warning: statfs provides bogus values for '//test.iso' (probably a shared folder) [init -> vbox2] Warning: fcntl(): command 4 args 4 not supported - terminal [init -> vbox2] Warning: _sigaction: _sigaction not implemented [init -> vbox2] Using SVM virtualization extension. [init -> vbox2] Error: fireRuntimeErrorEvent : 0 DrvHostSerialFail Ioctl failed for serial host device '/dev/terminal' (VERR_NOT_SUPPORTED). The device will not work properly [init -> vbox2] fb resize : 1024x768@...64... -> 720x400@...361... [init -> vbox2] fb resize : 720x400@...64... -> 640x480@...362... [init -> vbox2] fb resize : 640x480@...64... -> 720x400@...361... [init -> vbox2] fb resize : 720x400@...64... -> 1024x768@...362...
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
I know I've had problems with the ahci driver in the past on AMD hardware, so your problem may be a hardware compatibility issue. I would definitely recommend checking whether the driver works using a scenario that works in qemu.
As for ahci_bench, I have verified that it performs read-only tests by default, so it should be safe to run on real hardware.
On Fri, Oct 27, 2017 at 1:36 AM, Alexander Boettcher < alexander.boettcher@...1...> wrote:
Hello,
first - great detailed report !
After looking through the serial output, the ahci driver does not announce its service. So the line
[init] child "ahci_drv" announces service "Block"
is missing. Because of that part_blk waits for ahci_drv, rump_fs is waiting for part_blk and vbox2 waits for rump_fs.
I would suggest first to make sure that the ahci_drv is working on your machine by using some simpler run script like ahci_bench.run.
If it does not work for you, you will have to instrument the ahci driver to see where it gets stuck.
Cheers,
Alex.
On 26.10.2017 23:21, Chris Rothrock wrote:
I am still attempting to make a VM work from an external .vdi disk image using the model of your testing platforms. I still haven't been able to get the testing platform running properly either but using the configuration as a template, I have adapted my own run recipe to make one VM using a TinyCore VM booting from the ISO (as in the Virtualbox demo)
and
one VM booting from the VDI. The hardware I am running has been tested
and
works fine with up to 3 VMs running the TinyCore demo flawlessly.
Here is the findings from my configuration and testing of the build I am attempting:
- vbox2 loads perfectly fine, TinyCore works flawlessly.
- vbox1 fails to load the main executable /virtualbox
- If I remove the one line from the configuration of vbox1 *<dir
name="ram"> <fs label="from_ram_fs" /> </dir>* vbox1 loads (but
obviously
has nothing to boot from)
- I have also attempted to boot from the vdi file using *<block
name="sda3"
label="raw" block_buffer_count="128" />* in the <vfs> tags and adding the service *<service name="Block"><child name="part_blk"/></service>* but
this
also fails to load the main executable
- serial data has an error *[init -> platform_drv] Error: ahci_drv -> :
assignment of PCI device 0:11.0 failed phys=0xe0088000 virt=0x1000*
however
further down, the AHCI controller is read and detects the hard drive on port 0 just fine, so this is seemingly working
Any assistance in getting this to work would be greatly appreciated.
*Hardware configuration:* 4 GB RAM 4 core CPU 1 serial port (for output data) PS2 controller USB controller with 6 ports A single SATA hard drive on port 0 with 4 partitions. Partition 3 and 4 are ext2 formatted The .vdi file I have been trying to load is on both partitions 3 and 4
with
the overlay file in the /ram directory also on each partition The BIOS has the SATA controller set to AHCI mode (as opposed to IDE or RAID)
*Filenames:* vbox1 config file: ubuntu16.vbox vbox2 config file: test.vbox vbox2 vdi file: ubuntu_16_04_64.vdi vbox2 overlay file /ram/overlay_ubuntu_16_04_64.vdi
*Run recipe:*
set use_net 1 set use_ps2 [have_spec ps2] set use_usb 1 set use_serial 1
set use_vbox4 1 set use_vbox5 [expr !$use_vbox4]
# use_gui starts two VMs set use_gui 1 # need a nic bridge for 2 VMs set use_bridge [expr $use_net && $use_gui]
set build_components { core init drivers/framebuffer drivers/timer drivers/ahci server/part_blk server/fs_rom server/rump_fs server/ram_fs }
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/vbox_pointer
append_platform_drv_build_components
build $build_components
create_boot_directory
set config {
<config prio_levels="4"> <parent-provides> <service name="ROM"/> <service name="IRQ"/> <service name="IO_MEM"/> <service name="IO_PORT"/> <service name="PD"/> <service name="RM"/> <service name="CPU"/> <service name="LOG"/>}
append_if [have_spec muen] config { <service name="VM"/>}
append config {
</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="ahci_drv" priority="-1" caps="500"> <resource name="RAM" quantum="10M"/> <provides><service name="Block"/></provides> <config> <policy label_prefix="part_blk" device="0" writeable="yes"/> </config> </start>
<start name="part_blk" priority="-1"> <resource name="RAM" quantum="15M" caps="500"/> <provides><service name="Block"/></provides> <route> <any-service><child name="ahci_drv"/> <parent/><any-child/></any-
service>
</route> <config> <policy label_prefix="rump_fs" partition="3" writeable="yes"/> </config> </start>
<start name="rump_fs" priority="-1" caps="1500"> <resource name="RAM" quantum="20M"/> <provides><service name="File_system"/></provides> <config ld_verbose="yes" fs="ext2fs"> <policy label_prefix="overlay_from_disk" root="/ram" writeable="yes"/> <default-policy root="/" writeable="yes"/> </config> <route> <any-service><child name="part_blk"/> <parent/><any-child/></any-
service>
</route> </start> <start name="ram_fs" priority="-1" caps="2800"> <resource name="RAM" quantum="512M"/> <provides><service name="File_system"/></provides> <config> <content> <dir name="ram"> <rom name="overlay_ubuntu_16_04_64.vdi"/> </dir> </content> <!-- constrain sessions according to their labels --> <policy label_prefix="vbox1 -> from_ram_fs" root="/ram" writeable="yes"/> </config> <route> <service name="ROM" label="overlay_ubuntu_16_04_64.vdi"> <child name="overlay_from_disk"/></service> <any-service> <parent/> <any-child/></any-service> </route> </start> <start name="overlay_from_disk" priority="-1"> <binary name="fs_rom"/> <resource name="RAM" quantum="32M"/> <provides><service name="ROM"/></provides> <route> <service name="File_system"><child name="rump_fs"/></service> <any-service><parent/><any-child/></any-service> </route> </start>}
append_platform_drv_config
append_if [expr $use_ps2] config {
<start name="ps2_drv" priority="-1"> <resource name="RAM" quantum="1M"/> <provides><service name="Input"/></provides> </start>}
append_if [expr $use_usb] config {
<start name="usb_drv" priority="-1" caps="120"> <resource name="RAM" quantum="8M"/> <provides><service name="Input"/></provides>}
append_if [expr $use_usb && ![have_spec muen]] config { <config uhci="yes" ehci="yes" xhci="yes">}
append_if [expr $use_usb && [have_spec muen]] config { <config uhci="no" ehci="no" xhci="yes">}
append_if [expr $use_usb] config {
<hid/> </config> </start>}
append_if [have_spec framebuffer] config {
<start name="fb_drv" priority="-1" caps="150"> <resource name="RAM" quantum="4M"/> <provides><service name="Framebuffer"/></provides> </start>}
append_if [have_spec sdl] config {
<start name="fb_sdl" priority="-1"> <resource name="RAM" quantum="4M"/> <provides> <service name="Input"/> <service name="Framebuffer"/> </provides> </start>}
append_if [have_spec x86] config {
<start name="rtc_drv" priority="-1"> <resource name="RAM" quantum="1M"/> <provides> <service name="Rtc"/> </provides> </start>}
append_if [expr $use_net] config {
<start name="nic_drv" priority="-1"> <resource name="RAM" quantum="4M"/> <provides><service name="Nic"/></provides> </start>}
append_if [expr $use_serial] config {
<start name="log_terminal" priority="-1"> <resource name="RAM" quantum="2M"/> <provides> <service name="Terminal"/> </provides> </start>}
append_if [expr $use_bridge] config {
<start name="nic_bridge" priority="-1"> <resource name="RAM" quantum="6M"/> <provides><service name="Nic"/></provides> <config/> <route> <service name="Nic"><child name="nic_drv"/></service> <any-service><parent/></any-service> </route> </start>}
append_if [expr $use_gui] config {
<start name="report_rom" priority="-1"> <resource name="RAM" quantum="2M"/> <provides> <service name="Report"/> <service name="ROM"/> </provides> <config> <policy label="vbox_pointer -> hover" report="nitpicker -> hover"/> <policy label="vbox_pointer -> xray" report="nitpicker -> xray"/> <policy label="vbox_pointer -> shape1" report="vbox1 -> shape"/> <policy label="vbox_pointer -> shape2" report="vbox2 -> shape"/> </config> </start>
<start name="nitpicker" priority="-1"> <resource name="RAM" quantum="4M"/> <provides><service name="Nitpicker"/></provides> <route> <service name="Framebuffer"> <child name="fb_drv" /> </service> <service name="Report"> <child name="report_rom" /> </service>}
append_if [expr ($use_gui && $use_ps2)] config { <service name="Input"> <child name="ps2_drv"/> </service>} append_if [expr ($use_gui && $use_usb)] config { <service name="Input"> <child name="usb_drv"/> </service>}
append_if [expr $use_gui] config { <any-service> <parent/> <any-child /> </any-service>
</route> <config> <report focus="yes" hover="yes" xray="yes" />
<domain name="pointer" layer="1" content="client" label="no" origin="pointer" /> <domain name="" layer="2" content="client" focus="click" hover="always" />
<policy label_prefix="vbox_pointer" domain="pointer"/> <default-policy domain=""/> </config> </start>
<start name="vbox_pointer" priority="-1"> <resource name="RAM" quantum="4M"/> <config> <policy label="nit_fb1" rom="shape1"/> <policy label="nit_fb2" rom="shape2"/> </config> <route> <service name="Nitpicker"> <child name="nitpicker"/> </service> <service name="ROM" label="shape1"> <child name="report_rom"/> </service> <service name="ROM" label="shape2"> <child name="report_rom"/> </service> <service name="ROM" label="hover"> <child name="report_rom"/> </service> <service name="ROM" label="xray"> <child name="report_rom"/> </service> <any-service> <parent/> </any-service> </route> </start>
<start name="nit_fb1" priority="-1"> <binary name="nit_fb"/> <resource name="RAM" quantum="8M" /> <provides> <service name="Framebuffer" /> <service name="Input" /> </provides>
<config xpos="10" ypos="10" width="1024" height="768"/>
<route> <service name="Nitpicker"> <child name="nitpicker"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start>
<start name="nit_fb2" priority="-1"> <binary name="nit_fb"/> <resource name="RAM" quantum="8M" /> <provides> <service name="Framebuffer" /> <service name="Input" /> </provides> <config xpos="890" ypos="310" width="1024" height="768"/> <route> <service name="Nitpicker"> <child name="nitpicker"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start>
<start name="vbox2" priority="-2" caps="500">}
append_if [expr $use_gui] config " <binary name="$virtualbox_binary"/>" append_if [expr $use_gui] config {
<resource name="RAM" quantum="448M"/> <config ld_verbose="yes" vbox_file="test.vbox" vm_name="TestVM"> <libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/> <vfs> <dir name="dev"> <log/> <rtc/> </dir> <rom name="test.vbox" /> <rom name="test.iso" /> </vfs> </config> <route> <service name="Nic"> <child name="nic_bridge"/> </service> <service name="Report"> <child name="report_rom"/> </service> <service name="Framebuffer"> <child name="nit_fb2" /> </service> <service name="Input"> <child name="nit_fb2" /> </service> <any-service> <parent /> <any-child /> </any-service> </route> </start>}
append config { <start name="vbox1" priority="-2" caps="1500">} append config " <binary name="$virtualbox_binary"/>"
append config {
<resource name="RAM" quantum="448M"/> <config ld_verbose="yes" vbox_file="ubuntu16.vbox" vm_name="ubuntu_16_04_64"> <libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/> <vfs> <dir name="dev"><log/> <rtc/></dir>}
append_if [expr $use_serial] config {
<dir name="dev"> <terminal/> </dir>}
append config {
<dir name="ram"> <fs label="from_ram_fs" /> </dir> <rom name="ubuntu16.vbox" /> <rom name="overlay_ubuntu_16_04_64.vdi" /> <fs /> </vfs> </config> <route>}
append_if [expr $use_bridge] config { <service name="Nic"> <child name="nic_bridge"/> </service>}
append_if [expr $use_gui] config { <service name="File_system" label="from_ram_fs"> <child name="ram_fs"/>
</service> <service name="File_system"> <child name="rump_fs"/> </service> <service name="Framebuffer"> <child name="nit_fb1" /> </service> <service name="Input"> <child name="nit_fb1" /> </service> <service name="Report"><child name="report_rom" /></service> <any-service> <parent/> <any-child /> </any-service> </route> </start> </config> }
install_config $config
exec cp ${genode_dir}/repos/ports/run/test.vbox bin/. exec cp ${genode_dir}/repos/ports/run/ubuntu16.vbox bin/.
set boot_modules { core ld.lib.so init timer test.iso test.vbox ubuntu16.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 vbox_pointer
append boot_modules { ld.lib.so libc.lib.so libm.lib.so pthread.lib.so libc_pipe.lib.so libc_terminal.lib.so libiconv.lib.so stdcxx.lib.so ahci_drv rump_fs ram_fs part_blk fs_rom report_rom rump_fs.lib.so rump.lib.so qemu-usb.lib.so virtualbox-rem }
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 core2duo " if {[expr $use_usb]} { append qemu_args " -usbdevice mouse -usbdevice keyboard" } }
run_genode_until forever
*Serial output data:*
NOVA Microhypervisor v7-190605f (x86_64): Oct 24 2017 12:24:04 [gcc
6.3.0]
[MBI]
[ 0] TSC:3593299 kHz BUS:99813 kHz (measured) [ 0] CORE:0:0:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores
4C+8G
[ 1] CORE:0:1:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores
4C+8G
[ 3] CORE:0:3:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores
4C+8G
[ 2] CORE:0:2:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores
4C+8G
Hypervisor features SVM Hypervisor reports 4x1 CPUs CPU ID (genode->kernel:package:core:thread) remapping remap (0->0:0:0:0) boot cpu remap (1->1:0:1:0) remap (2->2:0:2:0) remap (3->3:0:3:0) Hypervisor info page contains 27 memory descriptors: core image [0000000000100000,00000000034b0000) binaries region [0000000000275000,00000000034b0000) free for reuse detected physical memory: 0x0000000000000000 - size: 0x000000000009e800 use physical memory: 0x0000000000000000 - size: 0x000000000009e000 detected physical memory: 0x0000000000100000 - size: 0x00000000ac722000 use physical memory: 0x0000000000100000 - size: 0x00000000ac722000 detected physical memory: 0x00000000adb93000 - size: 0x0000000000001000 use physical memory: 0x00000000adb93000 - size: 0x0000000000001000 detected physical memory: 0x00000000add9a000 - size: 0x0000000000156000 use physical memory: 0x00000000add9a000 - size: 0x0000000000156000 detected physical memory: 0x00000000ae825000 - size: 0x000000000004b000 use physical memory: 0x00000000ae825000 - size: 0x000000000004b000 detected physical memory: 0x00000000aeff1000 - size: 0x000000000000f000 use physical memory: 0x00000000aeff1000 - size: 0x000000000000f000 detected physical memory: 0x0000000100000000 - size: 0x0000000040000000 use physical memory: 0x0000000100000000 - size: 0x0000000040000000 :virt_alloc: Allocator 0x230d70 dump: Block: [0000000000002000,0000000000003000) size=4K avail=0 max_avail=0 Block: [0000000000003000,0000000000004000) size=4K avail=0 max_avail=0 Block: [0000000000004000,0000000000005000) size=4K avail=0 max_avail=0 Block: [0000000000005000,0000000000006000) size=4K avail=0 max_avail=0 Block: [0000000000006000,0000000000007000) size=4K avail=0 max_avail=0 Block: [0000000000007000,0000000000008000) size=4K avail=0 max_avail=0 Block: [0000000000008000,0000000000009000) size=4K avail=0 max_avail=0 Block: [0000000000009000,000000000000a000) size=4K avail=0 max_avail=0 Block: [000000000000a000,000000000000b000) size=4K avail=0 max_avail=0 Block: [000000000000b000,000000000000c000) size=4K avail=0 max_avail=0 Block: [000000000000c000,000000000000d000) size=4K avail=0 max_avail=0 Block: [000000000000d000,000000000000e000) size=4K avail=0 max_avail=0 Block: [000000000000e000,000000000000f000) size=4K avail=0 max_avail=0 Block: [000000000000f000,0000000000010000) size=4K avail=0 max_avail=0 Block: [0000000000010000,0000000000011000) size=4K avail=0 max_avail=0 Block: [0000000000011000,0000000000012000) size=4K avail=0 max_avail=0 Block: [0000000000012000,0000000000013000) size=4K avail=0 max_avail=0 Block: [0000000000013000,0000000000014000) size=4K avail=0 max_avail=137434760164K Block: [0000000000014000,0000000000015000) size=4K avail=0 max_avail=0 Block: [0000000000015000,0000000000016000) size=4K avail=0 max_avail=0 Block: [0000000000016000,0000000000017000) size=4K avail=0 max_avail=0 Block: [0000000000017000,0000000000018000) size=4K avail=0 max_avail=0 Block: [0000000000018000,0000000000019000) size=4K avail=0 max_avail=0 Block: [0000000000019000,000000000001a000) size=4K avail=0 max_avail=0 Block: [000000000001a000,000000000001b000) size=4K avail=0 max_avail=0 Block: [000000000001b000,000000000001c000) size=4K avail=0 max_avail=0 Block: [000000000001c000,000000000001d000) size=4K avail=0 max_avail=137434760164K Block: [000000000001d000,000000000001e000) size=4K avail=0 max_avail=0 Block: [000000000001e000,000000000001f000) size=4K avail=0 max_avail=0 Block: [000000000001f000,0000000000020000) size=4K avail=0 max_avail=0 Block: [0000000000020000,0000000000021000) size=4K avail=0 max_avail=0 Block: [0000000000021000,0000000000022000) size=4K avail=0 max_avail=0 Block: [0000000000022000,0000000000023000) size=4K avail=0
max_avail=868K
Block: [0000000000023000,0000000000024000) size=4K avail=0 max_avail=0 Block: [0000000000024000,0000000000025000) size=4K avail=0 max_avail=0 Block: [0000000000025000,0000000000026000) size=4K avail=0
max_avail=868K
Block: [0000000000026000,0000000000027000) size=4K avail=0 max_avail=0 Block: [0000000000027000,0000000000100000) size=868K avail=868K max_avail=868K Block: [0000000000275000,0000000000276000) size=4K avail=0 max_avail=0 Block: [0000000000276000,0000000000277000) size=4K avail=0 max_avail=137434760164K Block: [0000000000277000,0000000000278000) size=4K avail=0 max_avail=0 Block: [0000000000278000,00000000a0000000) size=2618912K avail=2618912K max_avail=2618912K Block: [00000000b0000000,00000000bfeff000) size=261116K avail=261116K max_avail=137434760164K Block: [00000000bff04000,00007fffbfffd000) size=137434760164K avail=137434760164K max_avail=137434760164K => mem_size=140736144609280 (134216446 MB) / mem_avail=140736144445440 (134216446 MB)
:phys_alloc: Allocator 0x22fca0 dump: Block: [0000000000001000,0000000000010000) size=60K avail=60K
max_avail=60K
Block: [0000000000012000,000000000009e000) size=560K avail=560K max_avail=560K Block: [0000000000100000,0000000001000000) size=15M avail=15M max_avail=2720188K Block: [00000000067b2000,00000000067b3000) size=4K avail=0 max_avail=0 Block: [00000000067b3000,00000000ac822000) size=2720188K avail=2720188K max_avail=2720188K Block: [00000000adb93000,00000000adb94000) size=4K avail=0 max_avail=2720188K Block: [00000000add9a000,00000000add9b000) size=4K avail=0 max_avail=0 Block: [00000000add9b000,00000000add9c000) size=4K avail=0 max_avail=0 Block: [00000000add9c000,00000000add9d000) size=4K avail=0 max_avail=0 Block: [00000000add9d000,00000000add9e000) size=4K avail=0 max_avail=0 Block: [00000000add9e000,00000000add9f000) size=4K avail=0 max_avail=0 Block: [00000000add9f000,00000000adda0000) size=4K avail=0 max_avail=2720188K Block: [00000000adda0000,00000000adda1000) size=4K avail=0 max_avail=0 Block: [00000000adda1000,00000000adda2000) size=4K avail=0 max_avail=0 Block: [00000000adda2000,00000000adda3000) size=4K avail=0 max_avail=0 Block: [00000000adda3000,00000000adda4000) size=4K avail=0 max_avail=0 Block: [00000000adda4000,00000000adda5000) size=4K avail=0 max_avail=0 Block: [00000000adda5000,00000000adda6000) size=4K avail=0 max_avail=0 Block: [00000000adda6000,00000000adda7000) size=4K avail=0 max_avail=0 Block: [00000000adda7000,00000000adda8000) size=4K avail=0 max_avail=0 Block: [00000000adda8000,00000000adda9000) size=4K avail=0 max_avail=0 Block: [00000000adda9000,00000000addaa000) size=4K avail=0 max_avail=0 Block: [00000000addaa000,00000000addab000) size=4K avail=0 max_avail=0 Block: [00000000addab000,00000000addac000) size=4K avail=0 max_avail=2720188K Block: [00000000addac000,00000000addad000) size=4K avail=0 max_avail=0 Block: [00000000addad000,00000000addae000) size=4K avail=0 max_avail=0 Block: [00000000addae000,00000000addaf000) size=4K avail=0 max_avail=0 Block: [00000000addaf000,00000000addb0000) size=4K avail=0 max_avail=0 Block: [00000000addb0000,00000000addb1000) size=4K avail=0 max_avail=0 Block: [00000000addb1000,00000000addb2000) size=4K avail=0 max_avail=0 Block: [00000000addb2000,00000000addb3000) size=4K avail=0 max_avail=0 Block: [00000000addb3000,00000000addb4000) size=4K avail=0 max_avail=0 Block: [00000000addb4000,00000000addb5000) size=4K avail=0 max_avail=0 Block: [00000000addb5000,00000000addb6000) size=4K avail=0 max_avail=0 Block: [00000000addb6000,00000000addb7000) size=4K avail=0 max_avail=0 Block: [00000000addb7000,00000000addb8000) size=4K avail=0 max_avail=1G Block: [00000000addb8000,00000000addb9000) size=4K avail=0 max_avail=0 Block: [00000000addb9000,00000000addba000) size=4K avail=0 max_avail=0 Block: [00000000addba000,00000000addbb000) size=4K avail=0 max_avail=0 Block: [00000000addbb000,00000000addbc000) size=4K avail=0 max_avail=0 Block: [00000000addbc000,00000000addbd000) size=4K avail=0 max_avail=0 Block: [00000000addbd000,00000000addbe000) size=4K avail=0 max_avail=1G Block: [00000000addbe000,00000000addbf000) size=4K avail=0 max_avail=0 Block: [00000000addbf000,00000000addc0000) size=4K avail=0
max_avail=1212K
Block: [00000000addc0000,00000000addc1000) size=4K avail=0 max_avail=0 Block: [00000000addc1000,00000000adef0000) size=1212K avail=1212K max_avail=1212K Block: [00000000ae825000,00000000ae826000) size=4K avail=0 max_avail=1G Block: [00000000ae826000,00000000ae870000) size=296K avail=296K max_avail=296K Block: [00000000aeff1000,00000000af000000) size=60K avail=60K
max_avail=1G
Block: [0000000100000000,0000000140000000) size=1G avail=1G
max_avail=1G
=> mem_size=3877355520 (3697 MB) / mem_avail=3877183488 (3697 MB)
:io_mem_alloc: Allocator 0x231e58 dump: Block: [0000000000000000,0000000000001000) size=4K avail=4K
max_avail=4K
Block: [000000000009e000,0000000000100000) size=392K avail=392K max_avail=392K Block: [00000000ac822000,00000000adb93000) size=19908K avail=19908K max_avail=19908K Block: [00000000adb94000,00000000add9a000) size=2072K avail=2072K max_avail=2072K Block: [00000000adef0000,00000000ae825000) size=9428K avail=9428K max_avail=18014398504239100K Block: [00000000ae870000,00000000aeff1000) size=7684K avail=7684K max_avail=7684K Block: [00000000af000000,0000000100000000) size=1296M avail=1296M max_avail=18014398504239100K Block: [0000000140000000,fffffffffffff000) size=18014398504239100K avail=18014398504239100K max_avail=18014398504239100K => mem_size=18446744069740228608 (17592186040630 MB) / mem_avail=18446744069740228608 (17592186040630 MB)
:rom_fs: ROM modules: ROM: [000000000466a000,0000000004687cb8) acpi_drv ROM: [00000000065ac000,00000000065efae8) ahci_drv ROM: [00000000063e3000,00000000063e580b) config ROM: [00000000063e6000,00000000064406d0) fb_drv ROM: [000000000516f000,000000000518f078) fs_rom ROM: [00000000addbf000,00000000addc0000) hypervisor_info_page ROM: [0000000006750000,000000000679fea0) init ROM: [0000000006233000,000000000630bfe8) ld.lib.so ROM: [0000000003fb7000,000000000415a950) libc.lib.so ROM: [0000000006747000,000000000674f290) libc_pipe.lib.so ROM: [00000000067a0000,00000000067b1000) libc_terminal.lib.so ROM: [000000000415b000,0000000004244408) libiconv.lib.so ROM: [0000000006205000,0000000006232fa8) libm.lib.so ROM: [0000000004688000,000000000469a750) log_terminal ROM: [0000000005109000,000000000513e268) nic_bridge ROM: [0000000006190000,00000000061e4370) nic_drv ROM: [00000000061e5000,0000000006204280) nit_fb ROM: [000000000630c000,000000000635a300) nitpicker ROM: [00000000065f0000,000000000661b608) part_blk ROM: [000000000638c000,00000000063e2ac8) platform_drv ROM: [00000000addbc000,00000000addbd000) platform_info ROM: [0000000004426000,00000000044475d8) ps2_drv ROM: [000000000441a000,0000000004425b20) pthread.lib.so ROM: [000000000513f000,000000000516ea70) qemu-usb.lib.so ROM: [0000000006582000,00000000065ab010) ram_fs ROM: [0000000004448000,0000000004466f90) report_rom ROM: [0000000006377000,000000000638bf30) rtc_drv ROM: [0000000004467000,0000000004639918) rump.lib.so ROM: [000000000463a000,0000000004669f30) rump_fs ROM: [000000000661c000,0000000006745d18) rump_fs.lib.so ROM: [0000000004245000,00000000043f8b40) stdcxx.lib.so ROM: [0000000005190000,0000000006190000) test.iso ROM: [0000000006746000,0000000006746fb1) test.vbox ROM: [000000000635c000,0000000006376db8) timer ROM: [000000000635b000,000000000635bf53) ubuntu16.vbox ROM: [0000000006441000,0000000006581550) usb_drv ROM: [00000000043f9000,0000000004419800) vbox_pointer ROM: [000000000469b000,0000000005108298) virtualbox-nova ROM: [0000000003576000,0000000003fb6278) virtualbox-rem
Genode 17.08-112-gee4ee6a <local changes> 3697 MiB RAM and 63254 caps assigned to init [init] child "timer" announces service "Timer" [init] child "report_rom" announces service "Report" [init] child "report_rom" announces service "ROM" [init] child "log_terminal" announces service "Terminal" [init -> nic_drv] --- iPXE NIC driver started --- [init] child "acpi_report_rom" announces service "Report" [init -> rump_fs] 0xa0000000 .. 0xafffffff: stack area [init -> ahci_drv] --- Starting AHCI driver --- [init -> nic_drv] -- init iPXE NIC [init] child "acpi_report_rom" announces service "ROM" [init -> rump_fs] 0x30000 .. 0x13bfff: ld.lib.so [init -> rump_fs] 0x1033000 .. 0x1202fff: rump.lib.so [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> rump_fs] 0x1203000 .. 0x1329fff: rump_fs.lib.so [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xe0000000 seg 0x0 bus 0x0-0xff [init] child "platform_drv" announces service "Platform" Warning: PD (init -> usb_drv) RAM limit (used=4884K, limit=6005765) exceeded during transfer_quota(2M) [init] Warning: usb_drv: RAM upgrade of Platform failed [init -> ps2_drv] Using keyboard with scan code set 1 (xlate) [init -> usb_drv] resource_request: ram_quota=2M, cap_quota=0 [init] child "usb_drv" requests resources: ram_quota=2M, cap_quota=0 [init -> ps2_drv] Warning: could not reset mouse (missing ack) [init -> fb_drv] Found PCI VGA at 00:01.0 [init -> fb_drv] fb mapped to 0x1000 [init] child "fb_drv" announces service "Framebuffer" [init -> nic_drv] Found: 03:00.0 10ec:8168 (rev 0e) IRQ 0b [init -> nic_drv] using driver rtl8168 [init -> nic_drv] PCI BIOS has not enabled device 03:00.0! Updating PCI command 0003->0007 [init -> nic_drv] [ 0] sys_assign_pci: Invalid Hint (0x300) [init -> platform_drv] Error: nic_drv -> : assignment of PCI device 3:0.0 failed phys=0xe0300000 virt=0x1000 [init -> ps2_drv] Error: failed to read from port [init -> nic_drv] PCI device 03:00.0 latency timer is unreasonably low at 0. Setting to 32. [init -> ahci_drv] AHCI found (vendor: 4130 device: 30721 class: 67073) [init -> ps2_drv] Warning: could not reset mouse (unexpected response) [init -> nic_drv] [init -> nic_drv] bus_addr = fea18000 len = 100 [ 0] sys_assign_pci: Invalid Hint (0x88) [init -> platform_drv] Error: ahci_drv -> : assignment of PCI device
0:11.0
failed phys=0xe0088000 virt=0x1000 [init -> platform_drv] 0:11.0 adjust IRQ as reported by ACPI: 10 -> 19 [init -> platform_drv] 0:11.0 uses MSI 64bit, vector 0x9f, address 0xfee10000, non-maskable [init -> ahci_drv] version: major=0x1 minor=0x300 [init -> nic_drv] snprintf not implemented [init -> platform_drv] 3:0.0 adjust IRQ as reported by ACPI: 11 -> 18 [init -> ahci_drv] command slots: 32 [init -> ahci_drv] native command queuing: yes [init -> platform_drv] 3:0.0 uses MSI 64bit, vector 0x9e, address 0xfee10000, non-maskable [init -> ahci_drv] 64-bit support: yes [init -> ahci_drv] number of ports: 6 pi: 0x3f [init] child "nic_drv" announces service "Nic" [init -> ps2_drv] Error: failed to read from port [init -> nic_drv] MAC address f4:4d:30:b9:16:f5 [init -> nic_bridge] --- NIC bridge started (mac=f4:4d:30:b9:16:f5) --- [init] child "nic_bridge" announces service "Nic" [init -> ps2_drv] Warning: could not enable stream [init -> fb_drv] Found: VESA BIOS version 3.0 [init -> ahci_drv] #0: ATA [init -> ahci_drv] #1: off (unknown device signature) [init -> fb_drv] OEM: AMD ATOMBIOS [init -> ahci_drv] #2: off (unknown device signature) [init -> ahci_drv] #3: off (unknown device signature) [init -> ahci_drv] #4: off (unknown device signature) [init -> ahci_drv] #5: off (unknown device signature) [init -> platform_drv] PS2 uses IRQ, vector 0x1 [init -> platform_drv] PS2 uses IRQ, vector 0xc [init] child "ps2_drv" announces service "Input" [init -> fb_drv] Found: physical frame buffer at 0xc0000000 size:
16777216
[init -> fb_drv] fb mapped to 0xb000000 [init -> fb_drv] using video mode: 1920x1080@...64... [init] child "nitpicker" announces service "Nitpicker" [init] child "nit_fb1" announces service "Framebuffer" [init] child "nit_fb2" announces service "Framebuffer" [init] child "nit_fb1" announces service "Input" [init -> nit_fb1] using xywh=(10,10,1024,768) [init] child "nit_fb2" announces service "Input" [init -> nit_fb2] using xywh=(890,890,1024,768) [init] child "rtc_drv" announces service "Rtc" [init -> vbox1] 0xa0000000 .. 0xafffffff: stack area [init -> vbox1] 0x30000 .. 0x13bfff: ld.lib.so [init -> vbox1] 0x1ae4000 .. 0x1c96fff: libc.lib.so [init -> vbox2] 0xa0000000 .. 0xafffffff: stack area [init -> vbox1] 0x1c97000 .. 0x1c9ffff: libc_pipe.lib.so [init -> vbox1] 0x1ca0000 .. 0x1caffff: libc_terminal.lib.so [init -> vbox2] 0x30000 .. 0x13bfff: ld.lib.so [init -> vbox2] 0x1ae4000 .. 0x1c96fff: libc.lib.so [init -> vbox1] 0x1cb0000 .. 0x1d97fff: libiconv.lib.so [init -> vbox2] 0x1c97000 .. 0x1c9ffff: libc_pipe.lib.so [init -> vbox2] 0x1ca0000 .. 0x1caffff: libc_terminal.lib.so [init -> vbox1] 0x1d98000 .. 0x1dc1fff: libm.lib.so [init -> vbox1] 0x1dc2000 .. 0x1dcdfff: pthread.lib.so [init -> vbox2] 0x1cb0000 .. 0x1d97fff: libiconv.lib.so [init -> vbox1] 0x1dce000 .. 0x1e10fff: qemu-usb.lib.so [init -> vbox1] 0x1e11000 .. 0x1fc6fff: stdcxx.lib.so [init -> vbox2] 0x1d98000 .. 0x1dc1fff: libm.lib.so [init -> vbox2] 0x1dc2000 .. 0x1dcdfff: pthread.lib.so [init -> vbox2] 0x1dce000 .. 0x1e10fff: qemu-usb.lib.so [init -> vbox2] 0x1e11000 .. 0x1fc6fff: stdcxx.lib.so [init -> vbox2] using the pipe libc plugin [init -> vbox2] Warning: issetugid called, not yet implemented,
returning 1
[init -> vbox2] Warning: issetugid called, not yet implemented,
returning 1
[init -> vbox2] Error: fcntl(): command 2 not supported [init -> vbox2] Log created: 2017-10-26T20:29:00.000000000Z [init -> vbox2] main Executable: /virtualbox [init -> vbox2] Error: SystemProperties : Cannot determine default Guest Additions ISO location. Most likely they are not available [init -> vbox2] Warning: _fpathconf: _fpathconf not implemented [init -> vbox2] Warning: statfs provides bogus values for '//test.iso' (probably a shared folder) [init -> vbox2] Warning: fcntl(): command 4 args 4 not supported -
terminal
[init -> vbox2] Warning: _sigaction: _sigaction not implemented [init -> vbox2] Using SVM virtualization extension. [init -> vbox2] Error: fireRuntimeErrorEvent : 0 DrvHostSerialFail Ioctl failed for serial host device '/dev/terminal' (VERR_NOT_SUPPORTED). The device will not work properly [init -> vbox2] fb resize : 1024x768@...64... -> 720x400@...361... [init -> vbox2] fb resize : 720x400@...64... -> 640x480@...362... [init -> vbox2] fb resize : 640x480@...64... -> 720x400@...361... [init -> vbox2] fb resize : 720x400@...64... -> 1024x768@...362...
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
-- Alexander Boettcher Genode Labs
http://www.genode-labs.com - http://www.genode.org
Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Here's the output from the ahci_bench (I left out the ROM header info to shorten the list). It seems it's giving the same error trying to enumerate the AHCI controller on the PCI bus even though it sees the controller and the devices, the service isn't being advertised. This is an AMD platform and, for reasons too long to go into, I need to be able to make this work with an AMD processor. Where can I go from here to push forward on this effort to get the AHCI controller properly enumerated?
Genode 17.08-112-gee4ee6a <local changes> 3745 MiB RAM and 63254 caps assigned to init [init -> ahci_drv] --- Starting AHCI driver --- [init] child "acpi_report_rom" announces service "Report" [init] child "timer" announces service "Timer" [init] child "acpi_report_rom" announces service "ROM" [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xe0000000 seg 0x0 bus 0x0-0xff [init] child "platform_drv" announces service "Platform" [init -> ahci_drv] AHCI found (vendor: 4130 device: 30721 class: 67073) [ 0] sys_assign_pci: Invalid Hint (0x88) [init -> platform_drv] Error: ahci_drv -> : assignment of PCI device 0:11.0 failed phys=0xe0088000 virt=0x1000 [init -> platform_drv] 0:11.0 adjust IRQ as reported by ACPI: 10 -> 19 [init -> platform_drv] 0:11.0 uses MSI 64bit, vector 0x9f, address 0xfee10000, non-maskable [init -> ahci_drv] version: major=0x1 minor=0x300 [init -> ahci_drv] command slots: 32 [init -> ahci_drv] native command queuing: yes [init -> ahci_drv] 64-bit support: yes [init -> ahci_drv] number of ports: 6 pi: 0x3f [init -> ahci_drv] #0: ATA [init -> ahci_drv] #1: off (unknown device signature) [init -> ahci_drv] #2: off (unknown device signature) [init -> ahci_drv] #3: off (unknown device signature) [init -> ahci_drv] #4: off (unknown device signature) [init -> ahci_drv] #5: off (unknown device signature)
On Fri, Oct 27, 2017 at 12:25 PM, Nobody III <hungryninja101@...9...> wrote:
I know I've had problems with the ahci driver in the past on AMD hardware, so your problem may be a hardware compatibility issue. I would definitely recommend checking whether the driver works using a scenario that works in qemu.
As for ahci_bench, I have verified that it performs read-only tests by default, so it should be safe to run on real hardware.
On Fri, Oct 27, 2017 at 1:36 AM, Alexander Boettcher < alexander.boettcher@...1...> wrote:
Hello,
first - great detailed report !
After looking through the serial output, the ahci driver does not announce its service. So the line
[init] child "ahci_drv" announces service "Block"
is missing. Because of that part_blk waits for ahci_drv, rump_fs is waiting for part_blk and vbox2 waits for rump_fs.
I would suggest first to make sure that the ahci_drv is working on your machine by using some simpler run script like ahci_bench.run.
If it does not work for you, you will have to instrument the ahci driver to see where it gets stuck.
Cheers,
Alex.
On 26.10.2017 23:21, Chris Rothrock wrote:
I am still attempting to make a VM work from an external .vdi disk image using the model of your testing platforms. I still haven't been able to get the testing platform running properly either but using the configuration as a template, I have adapted my own run recipe to make
one
VM using a TinyCore VM booting from the ISO (as in the Virtualbox demo)
and
one VM booting from the VDI. The hardware I am running has been tested
and
works fine with up to 3 VMs running the TinyCore demo flawlessly.
Here is the findings from my configuration and testing of the build I am attempting:
- vbox2 loads perfectly fine, TinyCore works flawlessly.
- vbox1 fails to load the main executable /virtualbox
- If I remove the one line from the configuration of vbox1 *<dir
name="ram"> <fs label="from_ram_fs" /> </dir>* vbox1 loads (but
obviously
has nothing to boot from)
- I have also attempted to boot from the vdi file using *<block
name="sda3"
label="raw" block_buffer_count="128" />* in the <vfs> tags and adding
the
service *<service name="Block"><child name="part_blk"/></service>* but
this
also fails to load the main executable
- serial data has an error *[init -> platform_drv] Error: ahci_drv -> :
assignment of PCI device 0:11.0 failed phys=0xe0088000 virt=0x1000*
however
further down, the AHCI controller is read and detects the hard drive on port 0 just fine, so this is seemingly working
Any assistance in getting this to work would be greatly appreciated.
*Hardware configuration:* 4 GB RAM 4 core CPU 1 serial port (for output data) PS2 controller USB controller with 6 ports A single SATA hard drive on port 0 with 4 partitions. Partition 3 and 4 are ext2 formatted The .vdi file I have been trying to load is on both partitions 3 and 4
with
the overlay file in the /ram directory also on each partition The BIOS has the SATA controller set to AHCI mode (as opposed to IDE or RAID)
*Filenames:* vbox1 config file: ubuntu16.vbox vbox2 config file: test.vbox vbox2 vdi file: ubuntu_16_04_64.vdi vbox2 overlay file /ram/overlay_ubuntu_16_04_64.vdi
*Run recipe:*
set use_net 1 set use_ps2 [have_spec ps2] set use_usb 1 set use_serial 1
set use_vbox4 1 set use_vbox5 [expr !$use_vbox4]
# use_gui starts two VMs set use_gui 1 # need a nic bridge for 2 VMs set use_bridge [expr $use_net && $use_gui]
set build_components { core init drivers/framebuffer drivers/timer drivers/ahci server/part_blk server/fs_rom server/rump_fs server/ram_fs }
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/vbox_pointer
append_platform_drv_build_components
build $build_components
create_boot_directory
set config {
<config prio_levels="4"> <parent-provides> <service name="ROM"/> <service name="IRQ"/> <service name="IO_MEM"/> <service name="IO_PORT"/> <service name="PD"/> <service name="RM"/> <service name="CPU"/> <service name="LOG"/>}
append_if [have_spec muen] config { <service name="VM"/>}
append config {
</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="ahci_drv" priority="-1" caps="500"> <resource name="RAM" quantum="10M"/> <provides><service name="Block"/></provides> <config> <policy label_prefix="part_blk" device="0" writeable="yes"/> </config> </start>
<start name="part_blk" priority="-1"> <resource name="RAM" quantum="15M" caps="500"/> <provides><service name="Block"/></provides> <route> <any-service><child name="ahci_drv"/> <parent/><any-child/></any-ser
vice>
</route> <config> <policy label_prefix="rump_fs" partition="3" writeable="yes"/> </config> </start>
<start name="rump_fs" priority="-1" caps="1500"> <resource name="RAM" quantum="20M"/> <provides><service name="File_system"/></provides> <config ld_verbose="yes" fs="ext2fs"> <policy label_prefix="overlay_from_disk" root="/ram" writeable="yes"/> <default-policy root="/" writeable="yes"/> </config> <route> <any-service><child name="part_blk"/> <parent/><any-child/></any-ser
vice>
</route> </start> <start name="ram_fs" priority="-1" caps="2800"> <resource name="RAM" quantum="512M"/> <provides><service name="File_system"/></provides> <config> <content> <dir name="ram"> <rom name="overlay_ubuntu_16_04_64.vdi"/> </dir> </content> <!-- constrain sessions according to their labels --> <policy label_prefix="vbox1 -> from_ram_fs" root="/ram"
writeable="yes"/>
</config> <route> <service name="ROM" label="overlay_ubuntu_16_04_64.vdi"> <child name="overlay_from_disk"/></service> <any-service> <parent/> <any-child/></any-service> </route> </start> <start name="overlay_from_disk" priority="-1"> <binary name="fs_rom"/> <resource name="RAM" quantum="32M"/> <provides><service name="ROM"/></provides> <route> <service name="File_system"><child name="rump_fs"/></service> <any-service><parent/><any-child/></any-service> </route> </start>}
append_platform_drv_config
append_if [expr $use_ps2] config {
<start name="ps2_drv" priority="-1"> <resource name="RAM" quantum="1M"/> <provides><service name="Input"/></provides> </start>}
append_if [expr $use_usb] config {
<start name="usb_drv" priority="-1" caps="120"> <resource name="RAM" quantum="8M"/> <provides><service name="Input"/></provides>}
append_if [expr $use_usb && ![have_spec muen]] config { <config uhci="yes" ehci="yes" xhci="yes">}
append_if [expr $use_usb && [have_spec muen]] config { <config uhci="no" ehci="no" xhci="yes">}
append_if [expr $use_usb] config {
<hid/> </config> </start>}
append_if [have_spec framebuffer] config {
<start name="fb_drv" priority="-1" caps="150"> <resource name="RAM" quantum="4M"/> <provides><service name="Framebuffer"/></provides> </start>}
append_if [have_spec sdl] config {
<start name="fb_sdl" priority="-1"> <resource name="RAM" quantum="4M"/> <provides> <service name="Input"/> <service name="Framebuffer"/> </provides> </start>}
append_if [have_spec x86] config {
<start name="rtc_drv" priority="-1"> <resource name="RAM" quantum="1M"/> <provides> <service name="Rtc"/> </provides> </start>}
append_if [expr $use_net] config {
<start name="nic_drv" priority="-1"> <resource name="RAM" quantum="4M"/> <provides><service name="Nic"/></provides> </start>}
append_if [expr $use_serial] config {
<start name="log_terminal" priority="-1"> <resource name="RAM" quantum="2M"/> <provides> <service name="Terminal"/> </provides> </start>}
append_if [expr $use_bridge] config {
<start name="nic_bridge" priority="-1"> <resource name="RAM" quantum="6M"/> <provides><service name="Nic"/></provides> <config/> <route> <service name="Nic"><child name="nic_drv"/></service> <any-service><parent/></any-service> </route> </start>}
append_if [expr $use_gui] config {
<start name="report_rom" priority="-1"> <resource name="RAM" quantum="2M"/> <provides> <service name="Report"/> <service name="ROM"/> </provides> <config> <policy label="vbox_pointer -> hover" report="nitpicker -> hover"/> <policy label="vbox_pointer -> xray" report="nitpicker -> xray"/> <policy label="vbox_pointer -> shape1" report="vbox1 -> shape"/> <policy label="vbox_pointer -> shape2" report="vbox2 -> shape"/> </config> </start>
<start name="nitpicker" priority="-1"> <resource name="RAM" quantum="4M"/> <provides><service name="Nitpicker"/></provides> <route> <service name="Framebuffer"> <child name="fb_drv" /> </service> <service name="Report"> <child name="report_rom" /> </service>}
append_if [expr ($use_gui && $use_ps2)] config { <service name="Input"> <child name="ps2_drv"/> </service>} append_if [expr ($use_gui && $use_usb)] config { <service name="Input"> <child name="usb_drv"/> </service>}
append_if [expr $use_gui] config { <any-service> <parent/> <any-child /> </any-service>
</route> <config> <report focus="yes" hover="yes" xray="yes" />
<domain name="pointer" layer="1" content="client" label="no" origin="pointer" /> <domain name="" layer="2" content="client" focus="click" hover="always" />
<policy label_prefix="vbox_pointer" domain="pointer"/> <default-policy domain=""/> </config> </start>
<start name="vbox_pointer" priority="-1"> <resource name="RAM" quantum="4M"/> <config> <policy label="nit_fb1" rom="shape1"/> <policy label="nit_fb2" rom="shape2"/> </config> <route> <service name="Nitpicker"> <child name="nitpicker"/> </service> <service name="ROM" label="shape1"> <child name="report_rom"/>
</service> > <service name="ROM" label="shape2"> <child name="report_rom"/> </service> > <service name="ROM" label="hover"> <child name="report_rom"/> </service> > <service name="ROM" label="xray"> <child name="report_rom"/> </service> > <any-service> <parent/> </any-service> > </route> > </start> > > <start name="nit_fb1" priority="-1"> > <binary name="nit_fb"/> > <resource name="RAM" quantum="8M" /> > <provides> > <service name="Framebuffer" /> > <service name="Input" /> > </provides> > > <config xpos="10" ypos="10" width="1024" height="768"/> > > <route> > <service name="Nitpicker"> <child name="nitpicker"/> </service> > <any-service> <parent/> <any-child/> </any-service> > </route> > </start> > > <start name="nit_fb2" priority="-1"> > <binary name="nit_fb"/> > <resource name="RAM" quantum="8M" /> > <provides> > <service name="Framebuffer" /> > <service name="Input" /> > </provides> > <config xpos="890" ypos="310" width="1024" height="768"/> > <route> > <service name="Nitpicker"> <child name="nitpicker"/> </service> > <any-service> <parent/> <any-child/> </any-service> > </route> > </start> > > <start name="vbox2" priority="-2" caps="500">} > > append_if [expr $use_gui] config " > <binary name=\"$virtualbox_binary\"/>" > append_if [expr $use_gui] config { > <resource name="RAM" quantum="448M"/> > <config ld_verbose="yes" vbox_file="test.vbox" vm_name="TestVM"> > <libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/> > <vfs> > <dir name="dev"> <log/> <rtc/> </dir> > <rom name="test.vbox" /> > <rom name="test.iso" /> > </vfs> > </config> > <route> > <service name="Nic"> <child name="nic_bridge"/> </service> > <service name="Report"> <child name="report_rom"/> </service> > <service name="Framebuffer"> <child name="nit_fb2" /> </service> > <service name="Input"> <child name="nit_fb2" /> </service> > <any-service> <parent /> <any-child /> </any-service> > </route> > </start>} > > append config { > <start name="vbox1" priority="-2" caps="1500">} > append config " > <binary name=\"$virtualbox_binary\"/>" > > append config { > <resource name="RAM" quantum="448M"/> > <config ld_verbose="yes" vbox_file="ubuntu16.vbox" > vm_name="ubuntu_16_04_64"> > <libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/> > <vfs> > <dir name="dev"><log/> <rtc/></dir>} > > append_if [expr $use_serial] config { > <dir name="dev"> <terminal/> </dir>} > > > append config { > <dir name="ram"> <fs label="from_ram_fs" /> </dir> > <rom name="ubuntu16.vbox" /> > <rom name="overlay_ubuntu_16_04_64.vdi" /> > <fs /> > </vfs> > </config> > <route>} > > append_if [expr $use_bridge] config { > <service name="Nic"> <child name="nic_bridge"/> </service>} > > > > append_if [expr $use_gui] config { > <service name="File_system" label="from_ram_fs"> <child name="ram_fs"/> > </service> > <service name="File_system"> <child name="rump_fs"/> </service> > <service name="Framebuffer"> <child name="nit_fb1" /> </service> > <service name="Input"> <child name="nit_fb1" /> </service> > <service name="Report"><child name="report_rom" /></service> > <any-service> <parent/> <any-child /> </any-service> > </route> > </start> > </config> > } > > install_config $config > > exec cp ${genode_dir}/repos/ports/run/test.vbox bin/. > exec cp ${genode_dir}/repos/ports/run/ubuntu16.vbox bin/. > > set boot_modules { core ld.lib.so init timer test.iso test.vbox > ubuntu16.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 vbox_pointer > > append boot_modules { > ld.lib.so libc.lib.so libm.lib.so pthread.lib.so libc_pipe.lib.so > libc_terminal.lib.so libiconv.lib.so stdcxx.lib.so ahci_drv rump_fs > ram_fs part_blk fs_rom report_rom rump_fs.lib.so rump.lib.so > qemu-usb.lib.so virtualbox-rem > } > > 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 core2duo " > if {[expr $use_usb]} { > append qemu_args " -usbdevice mouse -usbdevice keyboard" > } > } > > run_genode_until forever > > *Serial output data:* > > NOVA Microhypervisor v7-190605f (x86_64): Oct 24 2017 12:24:04 [gcc 6.3.0] > [MBI] > > [ 0] TSC:3593299 kHz BUS:99813 kHz (measured) > [ 0] CORE:0:0:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G > [ 1] CORE:0:1:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G > [ 3] CORE:0:3:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G > [ 2] CORE:0:2:0 15:38:1:0 [0] AMD PRO A10-8750B R7, 12 Compute Cores 4C+8G > Hypervisor features SVM > Hypervisor reports 4x1 CPUs > CPU ID (genode->kernel:package:core:thread) remapping > remap (0->0:0:0:0) boot cpu > remap (1->1:0:1:0) > remap (2->2:0:2:0) > remap (3->3:0:3:0) > Hypervisor info page contains 27 memory descriptors: > core image [0000000000100000,00000000034b0000) > binaries region [0000000000275000,00000000034b0000) free for reuse > detected physical memory: 0x0000000000000000 - size: 0x000000000009e800 > use physical memory: 0x0000000000000000 - size: 0x000000000009e000 > detected physical memory: 0x0000000000100000 - size: 0x00000000ac722000 > use physical memory: 0x0000000000100000 - size: 0x00000000ac722000 > detected physical memory: 0x00000000adb93000 - size: 0x0000000000001000 > use physical memory: 0x00000000adb93000 - size: 0x0000000000001000 > detected physical memory: 0x00000000add9a000 - size: 0x0000000000156000 > use physical memory: 0x00000000add9a000 - size: 0x0000000000156000 > detected physical memory: 0x00000000ae825000 - size: 0x000000000004b000 > use physical memory: 0x00000000ae825000 - size: 0x000000000004b000 > detected physical memory: 0x00000000aeff1000 - size: 0x000000000000f000 > use physical memory: 0x00000000aeff1000 - size: 0x000000000000f000 > detected physical memory: 0x0000000100000000 - size: 0x0000000040000000 > use physical memory: 0x0000000100000000 - size: 0x0000000040000000 > :virt_alloc: Allocator 0x230d70 dump: > Block: [0000000000002000,0000000000003000) size=4K avail=0 max_avail=0 > Block: [0000000000003000,0000000000004000) size=4K avail=0 max_avail=0 > Block: [0000000000004000,0000000000005000) size=4K avail=0 max_avail=0 > Block: [0000000000005000,0000000000006000) size=4K avail=0 max_avail=0 > Block: [0000000000006000,0000000000007000) size=4K avail=0 max_avail=0 > Block: [0000000000007000,0000000000008000) size=4K avail=0 max_avail=0 > Block: [0000000000008000,0000000000009000) size=4K avail=0 max_avail=0 > Block: [0000000000009000,000000000000a000) size=4K avail=0 max_avail=0 > Block: [000000000000a000,000000000000b000) size=4K avail=0 max_avail=0 > Block: [000000000000b000,000000000000c000) size=4K avail=0 max_avail=0 > Block: [000000000000c000,000000000000d000) size=4K avail=0 max_avail=0 > Block: [000000000000d000,000000000000e000) size=4K avail=0 max_avail=0 > Block: [000000000000e000,000000000000f000) size=4K avail=0 max_avail=0 > Block: [000000000000f000,0000000000010000) size=4K avail=0 max_avail=0 > Block: [0000000000010000,0000000000011000) size=4K avail=0 max_avail=0 > Block: [0000000000011000,0000000000012000) size=4K avail=0 max_avail=0 > Block: [0000000000012000,0000000000013000) size=4K avail=0 max_avail=0 > Block: [0000000000013000,0000000000014000) size=4K avail=0 > max_avail=137434760164K > Block: [0000000000014000,0000000000015000) size=4K avail=0 max_avail=0 > Block: [0000000000015000,0000000000016000) size=4K avail=0 max_avail=0 > Block: [0000000000016000,0000000000017000) size=4K avail=0 max_avail=0 > Block: [0000000000017000,0000000000018000) size=4K avail=0 max_avail=0 > Block: [0000000000018000,0000000000019000) size=4K avail=0 max_avail=0 > Block: [0000000000019000,000000000001a000) size=4K avail=0 max_avail=0 > Block: [000000000001a000,000000000001b000) size=4K avail=0 max_avail=0 > Block: [000000000001b000,000000000001c000) size=4K avail=0 max_avail=0 > Block: [000000000001c000,000000000001d000) size=4K avail=0 > max_avail=137434760164K > Block: [000000000001d000,000000000001e000) size=4K avail=0 max_avail=0 > Block: [000000000001e000,000000000001f000) size=4K avail=0 max_avail=0 > Block: [000000000001f000,0000000000020000) size=4K avail=0 max_avail=0 > Block: [0000000000020000,0000000000021000) size=4K avail=0 max_avail=0 > Block: [0000000000021000,0000000000022000) size=4K avail=0 max_avail=0 > Block: [0000000000022000,0000000000023000) size=4K avail=0 max_avail=868K > Block: [0000000000023000,0000000000024000) size=4K avail=0 max_avail=0 > Block: [0000000000024000,0000000000025000) size=4K avail=0 max_avail=0 > Block: [0000000000025000,0000000000026000) size=4K avail=0 max_avail=868K > Block: [0000000000026000,0000000000027000) size=4K avail=0 max_avail=0 > Block: [0000000000027000,0000000000100000) size=868K avail=868K > max_avail=868K > Block: [0000000000275000,0000000000276000) size=4K avail=0 max_avail=0 > Block: [0000000000276000,0000000000277000) size=4K avail=0 > max_avail=137434760164K > Block: [0000000000277000,0000000000278000) size=4K avail=0 max_avail=0 > Block: [0000000000278000,00000000a0000000) size=2618912K avail=2618912K > max_avail=2618912K > Block: [00000000b0000000,00000000bfeff000) size=261116K avail=261116K > max_avail=137434760164K > Block: [00000000bff04000,00007fffbfffd000) size=137434760164K > avail=137434760164K max_avail=137434760164K > => mem_size=140736144609280 (134216446 MB) / mem_avail=140736144445440 > (134216446 MB) > > :phys_alloc: Allocator 0x22fca0 dump: > Block: [0000000000001000,0000000000010000) size=60K avail=60K max_avail=60K > Block: [0000000000012000,000000000009e000) size=560K avail=560K > max_avail=560K > Block: [0000000000100000,0000000001000000) size=15M avail=15M > max_avail=2720188K > Block: [00000000067b2000,00000000067b3000) size=4K avail=0 max_avail=0 > Block: [00000000067b3000,00000000ac822000) size=2720188K avail=2720188K > max_avail=2720188K > Block: [00000000adb93000,00000000adb94000) size=4K avail=0 > max_avail=2720188K > Block: [00000000add9a000,00000000add9b000) size=4K avail=0 max_avail=0 > Block: [00000000add9b000,00000000add9c000) size=4K avail=0 max_avail=0 > Block: [00000000add9c000,00000000add9d000) size=4K avail=0 max_avail=0 > Block: [00000000add9d000,00000000add9e000) size=4K avail=0 max_avail=0 > Block: [00000000add9e000,00000000add9f000) size=4K avail=0 max_avail=0 > Block: [00000000add9f000,00000000adda0000) size=4K avail=0 > max_avail=2720188K > Block: [00000000adda0000,00000000adda1000) size=4K avail=0 max_avail=0 > Block: [00000000adda1000,00000000adda2000) size=4K avail=0 max_avail=0 > Block: [00000000adda2000,00000000adda3000) size=4K avail=0 max_avail=0 > Block: [00000000adda3000,00000000adda4000) size=4K avail=0 max_avail=0 > Block: [00000000adda4000,00000000adda5000) size=4K avail=0 max_avail=0 > Block: [00000000adda5000,00000000adda6000) size=4K avail=0 max_avail=0 > Block: [00000000adda6000,00000000adda7000) size=4K avail=0 max_avail=0 > Block: [00000000adda7000,00000000adda8000) size=4K avail=0 max_avail=0 > Block: [00000000adda8000,00000000adda9000) size=4K avail=0 max_avail=0 > Block: [00000000adda9000,00000000addaa000) size=4K avail=0 max_avail=0 > Block: [00000000addaa000,00000000addab000) size=4K avail=0 max_avail=0 > Block: [00000000addab000,00000000addac000) size=4K avail=0 > max_avail=2720188K > Block: [00000000addac000,00000000addad000) size=4K avail=0 max_avail=0 > Block: [00000000addad000,00000000addae000) size=4K avail=0 max_avail=0 > Block: [00000000addae000,00000000addaf000) size=4K avail=0 max_avail=0 > Block: [00000000addaf000,00000000addb0000) size=4K avail=0 max_avail=0 > Block: [00000000addb0000,00000000addb1000) size=4K avail=0 max_avail=0 > Block: [00000000addb1000,00000000addb2000) size=4K avail=0 max_avail=0 > Block: [00000000addb2000,00000000addb3000) size=4K avail=0 max_avail=0 > Block: [00000000addb3000,00000000addb4000) size=4K avail=0 max_avail=0 > Block: [00000000addb4000,00000000addb5000) size=4K avail=0 max_avail=0 > Block: [00000000addb5000,00000000addb6000) size=4K avail=0 max_avail=0 > Block: [00000000addb6000,00000000addb7000) size=4K avail=0 max_avail=0 > Block: [00000000addb7000,00000000addb8000) size=4K avail=0 max_avail=1G > Block: [00000000addb8000,00000000addb9000) size=4K avail=0 max_avail=0 > Block: [00000000addb9000,00000000addba000) size=4K avail=0 max_avail=0 > Block: [00000000addba000,00000000addbb000) size=4K avail=0 max_avail=0 > Block: [00000000addbb000,00000000addbc000) size=4K avail=0 max_avail=0 > Block: [00000000addbc000,00000000addbd000) size=4K avail=0 max_avail=0 > Block: [00000000addbd000,00000000addbe000) size=4K avail=0 max_avail=1G > Block: [00000000addbe000,00000000addbf000) size=4K avail=0 max_avail=0 > Block: [00000000addbf000,00000000addc0000) size=4K avail=0 max_avail=1212K > Block: [00000000addc0000,00000000addc1000) size=4K avail=0 max_avail=0 > Block: [00000000addc1000,00000000adef0000) size=1212K avail=1212K > max_avail=1212K > Block: [00000000ae825000,00000000ae826000) size=4K avail=0 max_avail=1G > Block: [00000000ae826000,00000000ae870000) size=296K avail=296K > max_avail=296K > Block: [00000000aeff1000,00000000af000000) size=60K avail=60K max_avail=1G > Block: [0000000100000000,0000000140000000) size=1G avail=1G max_avail=1G > => mem_size=3877355520 (3697 MB) / mem_avail=3877183488 (3697 MB) > > :io_mem_alloc: Allocator 0x231e58 dump: > Block: [0000000000000000,0000000000001000) size=4K avail=4K max_avail=4K > Block: [000000000009e000,0000000000100000) size=392K avail=392K > max_avail=392K > Block: [00000000ac822000,00000000adb93000) size=19908K avail=19908K > max_avail=19908K > Block: [00000000adb94000,00000000add9a000) size=2072K avail=2072K > max_avail=2072K > Block: [00000000adef0000,00000000ae825000) size=9428K avail=9428K > max_avail=18014398504239100K > Block: [00000000ae870000,00000000aeff1000) size=7684K avail=7684K > max_avail=7684K > Block: [00000000af000000,0000000100000000) size=1296M avail=1296M > max_avail=18014398504239100K > Block: [0000000140000000,fffffffffffff000) size=18014398504239100K > avail=18014398504239100K max_avail=18014398504239100K > => mem_size=18446744069740228608 (17592186040630 MB) / > mem_avail=18446744069740228608 (17592186040630 MB) > > :rom_fs: ROM modules: > ROM: [000000000466a000,0000000004687cb8) acpi_drv > ROM: [00000000065ac000,00000000065efae8) ahci_drv > ROM: [00000000063e3000,00000000063e580b) config > ROM: [00000000063e6000,00000000064406d0) fb_drv > ROM: [000000000516f000,000000000518f078) fs_rom > ROM: [00000000addbf000,00000000addc0000) hypervisor_info_page > ROM: [0000000006750000,000000000679fea0) init > ROM: [0000000006233000,000000000630bfe8) ld.lib.so > ROM: [0000000003fb7000,000000000415a950) libc.lib.so > ROM: [0000000006747000,000000000674f290) libc_pipe.lib.so > ROM: [00000000067a0000,00000000067b1000) libc_terminal.lib.so > ROM: [000000000415b000,0000000004244408) libiconv.lib.so > ROM: [0000000006205000,0000000006232fa8) libm.lib.so > ROM: [0000000004688000,000000000469a750) log_terminal > ROM: [0000000005109000,000000000513e268) nic_bridge > ROM: [0000000006190000,00000000061e4370) nic_drv > ROM: [00000000061e5000,0000000006204280) nit_fb > ROM: [000000000630c000,000000000635a300) nitpicker > ROM: [00000000065f0000,000000000661b608) part_blk > ROM: [000000000638c000,00000000063e2ac8) platform_drv > ROM: [00000000addbc000,00000000addbd000) platform_info > ROM: [0000000004426000,00000000044475d8) ps2_drv > ROM: [000000000441a000,0000000004425b20) pthread.lib.so > ROM: [000000000513f000,000000000516ea70) qemu-usb.lib.so > ROM: [0000000006582000,00000000065ab010) ram_fs > ROM: [0000000004448000,0000000004466f90) report_rom > ROM: [0000000006377000,000000000638bf30) rtc_drv > ROM: [0000000004467000,0000000004639918) rump.lib.so > ROM: [000000000463a000,0000000004669f30) rump_fs > ROM: [000000000661c000,0000000006745d18) rump_fs.lib.so > ROM: [0000000004245000,00000000043f8b40) stdcxx.lib.so > ROM: [0000000005190000,0000000006190000) test.iso > ROM: [0000000006746000,0000000006746fb1) test.vbox > ROM: [000000000635c000,0000000006376db8) timer > ROM: [000000000635b000,000000000635bf53) ubuntu16.vbox > ROM: [0000000006441000,0000000006581550) usb_drv > ROM: [00000000043f9000,0000000004419800) vbox_pointer > ROM: [000000000469b000,0000000005108298) virtualbox-nova > ROM: [0000000003576000,0000000003fb6278) virtualbox-rem > > Genode 17.08-112-gee4ee6a <local changes> > 3697 MiB RAM and 63254 caps assigned to init > [init] child "timer" announces service "Timer" > [init] child "report_rom" announces service "Report" > [init] child "report_rom" announces service "ROM" > [init] child "log_terminal" announces service "Terminal" > [init -> nic_drv] --- iPXE NIC driver started --- > [init] child "acpi_report_rom" announces service "Report" > [init -> rump_fs] 0xa0000000 .. 0xafffffff: stack area > [init -> ahci_drv] --- Starting AHCI driver --- > [init -> nic_drv] -- init iPXE NIC > [init] child "acpi_report_rom" announces service "ROM" > [init -> rump_fs] 0x30000 .. 0x13bfff: ld.lib.so > [init -> rump_fs] 0x1033000 .. 0x1202fff: rump.lib.so > [init -> acpi_drv] Found MADT > [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 > [init -> rump_fs] 0x1203000 .. 0x1329fff: rump_fs.lib.so > [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 > [init -> acpi_drv] Found MCFG > [init -> acpi_drv] MCFG BASE 0xe0000000 seg 0x0 bus 0x0-0xff > [init] child "platform_drv" announces service "Platform" > Warning: PD (init -> usb_drv) RAM limit (used=4884K, limit=6005765) > exceeded during transfer_quota(2M) > [init] Warning: usb_drv: RAM upgrade of Platform failed > [init -> ps2_drv] Using keyboard with scan code set 1 (xlate) > [init -> usb_drv] resource_request: ram_quota=2M, cap_quota=0 > [init] child "usb_drv" requests resources: ram_quota=2M, cap_quota=0 > [init -> ps2_drv] Warning: could not reset mouse (missing ack) > [init -> fb_drv] Found PCI VGA at 00:01.0 > [init -> fb_drv] fb mapped to 0x1000 > [init] child "fb_drv" announces service "Framebuffer" > [init -> nic_drv] Found: 03:00.0 10ec:8168 (rev 0e) IRQ 0b > [init -> nic_drv] using driver rtl8168 > [init -> nic_drv] PCI BIOS has not enabled device 03:00.0! Updating PCI > command 0003->0007 > [init -> nic_drv] > [ 0] sys_assign_pci: Invalid Hint (0x300) > [init -> platform_drv] Error: nic_drv -> : assignment of PCI device 3:0.0 > failed phys=0xe0300000 virt=0x1000 > [init -> ps2_drv] Error: failed to read from port > [init -> nic_drv] PCI device 03:00.0 latency timer is unreasonably low at > 0. Setting to 32. > [init -> ahci_drv] AHCI found (vendor: 4130 device: 30721 class: 67073) > [init -> ps2_drv] Warning: could not reset mouse (unexpected response) > [init -> nic_drv] > [init -> nic_drv] bus_addr = fea18000 len = 100 > [ 0] sys_assign_pci: Invalid Hint (0x88) > [init -> platform_drv] Error: ahci_drv -> : assignment of PCI device 0:11.0 > failed phys=0xe0088000 virt=0x1000 > [init -> platform_drv] 0:11.0 adjust IRQ as reported by ACPI: 10 -> 19 > [init -> platform_drv] 0:11.0 uses MSI 64bit, vector 0x9f, address > 0xfee10000, non-maskable > [init -> ahci_drv] version: major=0x1 minor=0x300 > [init -> nic_drv] snprintf not implemented > [init -> platform_drv] 3:0.0 adjust IRQ as reported by ACPI: 11 -> 18 > [init -> ahci_drv] command slots: 32 > [init -> ahci_drv] native command queuing: yes > [init -> platform_drv] 3:0.0 uses MSI 64bit, vector 0x9e, address > 0xfee10000, non-maskable > [init -> ahci_drv] 64-bit support: yes > [init -> ahci_drv] number of ports: 6 pi: 0x3f > [init] child "nic_drv" announces service "Nic" > [init -> ps2_drv] Error: failed to read from port > [init -> nic_drv] MAC address f4:4d:30:b9:16:f5 > [init -> nic_bridge] --- NIC bridge started (mac=f4:4d:30:b9:16:f5) --- > [init] child "nic_bridge" announces service "Nic" > [init -> ps2_drv] Warning: could not enable stream > [init -> fb_drv] Found: VESA BIOS version 3.0 > [init -> ahci_drv] #0: ATA > [init -> ahci_drv] #1: off (unknown device signature) > [init -> fb_drv] OEM: AMD ATOMBIOS > [init -> ahci_drv] #2: off (unknown device signature) > [init -> ahci_drv] #3: off (unknown device signature) > [init -> ahci_drv] #4: off (unknown device signature) > [init -> ahci_drv] #5: off (unknown device signature) > [init -> platform_drv] PS2 uses IRQ, vector 0x1 > [init -> platform_drv] PS2 uses IRQ, vector 0xc > [init] child "ps2_drv" announces service "Input" > [init -> fb_drv] Found: physical frame buffer at 0xc0000000 size: 16777216 > [init -> fb_drv] fb mapped to 0xb000000 > [init -> fb_drv] using video mode: 1920x1080@...64... > [init] child "nitpicker" announces service "Nitpicker" > [init] child "nit_fb1" announces service "Framebuffer" > [init] child "nit_fb2" announces service "Framebuffer" > [init] child "nit_fb1" announces service "Input" > [init -> nit_fb1] using xywh=(10,10,1024,768) > [init] child "nit_fb2" announces service "Input" > [init -> nit_fb2] using xywh=(890,890,1024,768) > [init] child "rtc_drv" announces service "Rtc" > [init -> vbox1] 0xa0000000 .. 0xafffffff: stack area > [init -> vbox1] 0x30000 .. 0x13bfff: ld.lib.so > [init -> vbox1] 0x1ae4000 .. 0x1c96fff: libc.lib.so > [init -> vbox2] 0xa0000000 .. 0xafffffff: stack area > [init -> vbox1] 0x1c97000 .. 0x1c9ffff: libc_pipe.lib.so > [init -> vbox1] 0x1ca0000 .. 0x1caffff: libc_terminal.lib.so > [init -> vbox2] 0x30000 .. 0x13bfff: ld.lib.so > [init -> vbox2] 0x1ae4000 .. 0x1c96fff: libc.lib.so > [init -> vbox1] 0x1cb0000 .. 0x1d97fff: libiconv.lib.so > [init -> vbox2] 0x1c97000 .. 0x1c9ffff: libc_pipe.lib.so > [init -> vbox2] 0x1ca0000 .. 0x1caffff: libc_terminal.lib.so > [init -> vbox1] 0x1d98000 .. 0x1dc1fff: libm.lib.so > [init -> vbox1] 0x1dc2000 .. 0x1dcdfff: pthread.lib.so > [init -> vbox2] 0x1cb0000 .. 0x1d97fff: libiconv.lib.so > [init -> vbox1] 0x1dce000 .. 0x1e10fff: qemu-usb.lib.so > [init -> vbox1] 0x1e11000 .. 0x1fc6fff: stdcxx.lib.so > [init -> vbox2] 0x1d98000 .. 0x1dc1fff: libm.lib.so > [init -> vbox2] 0x1dc2000 .. 0x1dcdfff: pthread.lib.so > [init -> vbox2] 0x1dce000 .. 0x1e10fff: qemu-usb.lib.so > [init -> vbox2] 0x1e11000 .. 0x1fc6fff: stdcxx.lib.so > [init -> vbox2] using the pipe libc plugin > [init -> vbox2] Warning: issetugid called, not yet implemented, returning 1 > [init -> vbox2] Warning: issetugid called, not yet implemented, returning 1 > [init -> vbox2] Error: fcntl(): command 2 not supported > [init -> vbox2] Log created: 2017-10-26T20:29:00.000000000Z > [init -> vbox2] main Executable: /virtualbox > [init -> vbox2] Error: SystemProperties : Cannot determine default Guest > Additions ISO location. Most likely they are not available > [init -> vbox2] Warning: _fpathconf: _fpathconf not implemented > [init -> vbox2] Warning: statfs provides bogus values for '//test.iso' > (probably a shared folder) > [init -> vbox2] Warning: fcntl(): command 4 args 4 not supported - terminal > [init -> vbox2] Warning: _sigaction: _sigaction not implemented > [init -> vbox2] Using SVM virtualization extension. > [init -> vbox2] Error: fireRuntimeErrorEvent : 0 DrvHostSerialFail Ioctl > failed for serial host device '/dev/terminal' (VERR_NOT_SUPPORTED). The > device will not work properly > [init -> vbox2] fb resize : 1024x768@...64... -> 720x400@...361... > [init -> vbox2] fb resize : 720x400@...64... -> 640x480@...362... > [init -> vbox2] fb resize : 640x480@...64... -> 720x400@...361... > [init -> vbox2] fb resize : 720x400@...64... -> 1024x768@...362... > > > > > > > > ------------------------------------------------------------ ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > > > _______________________________________________ > genode-main mailing list > genode-main@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/genode-main >
-- Alexander Boettcher Genode Labs
http://www.genode-labs.com - http://www.genode.org
Genode Labs GmbH - Amtsgericht Dresden - HRB 28424 - Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Chris,
On 31.10.2017 15:56, Chris Rothrock wrote:
Here's the output from the ahci_bench (I left out the ROM header info to shorten the list). It seems it's giving the same error trying to enumerate the AHCI controller on the PCI bus even though it sees the controller and the devices, the service isn't being advertised. This is an AMD platform and, for reasons too long to go into, I need to be able to make this work with an AMD processor. Where can I go from here to push forward on this effort to get the AHCI controller properly enumerated?
Genode 17.08-112-gee4ee6a <local changes> 3745 MiB RAM and 63254 caps assigned to init [init -> ahci_drv] --- Starting AHCI driver --- [init] child "acpi_report_rom" announces service "Report" [init] child "timer" announces service "Timer" [init] child "acpi_report_rom" announces service "ROM" [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xe0000000 seg 0x0 bus 0x0-0xff [init] child "platform_drv" announces service "Platform" [init -> ahci_drv] AHCI found (vendor: 4130 device: 30721 class: 67073) [ 0] sys_assign_pci: Invalid Hint (0x88) [init -> platform_drv] Error: ahci_drv -> : assignment of PCI device 0:11.0 failed phys=0xe0088000 virt=0x1000 [init -> platform_drv] 0:11.0 adjust IRQ as reported by ACPI: 10 -> 19 [init -> platform_drv] 0:11.0 uses MSI 64bit, vector 0x9f, address 0xfee10000, non-maskable [init -> ahci_drv] version: major=0x1 minor=0x300 [init -> ahci_drv] command slots: 32 [init -> ahci_drv] native command queuing: yes [init -> ahci_drv] 64-bit support: yes [init -> ahci_drv] number of ports: 6 pi: 0x3f [init -> ahci_drv] #0: ATA [init -> ahci_drv] #1: off (unknown device signature) [init -> ahci_drv] #2: off (unknown device signature) [init -> ahci_drv] #3: off (unknown device signature) [init -> ahci_drv] #4: off (unknown device signature) [init -> ahci_drv] #5: off (unknown device signature)
it looks like the AHCI port scan returned a connected ATA device on port zero, but is unable to initialize the device properly - most likely because no interrupts are received after command submission. We already had a lengthly remote debugging session with Ben [1] without any success. It seems like AMD's AHCI controllers are either not standard conform or might require additional initialization we are not aware of. As a starting point you could instrument the 'Ahci::handle_irq' function [2] in order to determine if any interrupts are received by the driver at all.
Regards,
Sebastian
[1] https://github.com/genodelabs/genode/issues/1547 [2] <genode-src>/repos/os/src/drivers/ahci/ahci.cc
The IRQ that my AHCI controller is using for SATA port 0 is 37 (I know, it's pretty high and is probably contributing to the issue). From what I understand, however, the drivers ported for Genode are derived from the original Linux version drivers which obviously work in Linux. Do you think it would help if I did some code comparison between the AHCI driver port for Genode and the original Linux AHCI driver that works? Perhaps if I delve in deep enough I can find some structuring that has a special handling for AMD SATA controllers and help to contribute to the project.
On Wed, Nov 1, 2017 at 9:05 AM, Sebastian Sumpf < Sebastian.Sumpf@...1...> wrote:
Hi Chris,
On 31.10.2017 15:56, Chris Rothrock wrote:
Here's the output from the ahci_bench (I left out the ROM header info to shorten the list). It seems it's giving the same error trying to enumerate the AHCI controller on the PCI bus even though it sees the controller and the devices, the service isn't being advertised. This is an AMD platform and, for reasons too long to go into, I need to be able to make this work with an AMD processor. Where can I go from here to push forward on this effort to get the AHCI controller properly
enumerated?
Genode 17.08-112-gee4ee6a <local changes> 3745 MiB RAM and 63254 caps assigned to init [init -> ahci_drv] --- Starting AHCI driver --- [init] child "acpi_report_rom" announces service "Report" [init] child "timer" announces service "Timer" [init] child "acpi_report_rom" announces service "ROM" [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 15 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xe0000000 seg 0x0 bus 0x0-0xff [init] child "platform_drv" announces service "Platform" [init -> ahci_drv] AHCI found (vendor: 4130 device: 30721 class: 67073) [ 0] sys_assign_pci: Invalid Hint (0x88) [init -> platform_drv] Error: ahci_drv -> : assignment of PCI device 0:11.0 failed phys=0xe0088000 virt=0x1000 [init -> platform_drv] 0:11.0 adjust IRQ as reported by ACPI: 10 -> 19 [init -> platform_drv] 0:11.0 uses MSI 64bit, vector 0x9f, address 0xfee10000, non-maskable [init -> ahci_drv] version: major=0x1 minor=0x300 [init -> ahci_drv] command slots: 32 [init -> ahci_drv] native command queuing: yes [init -> ahci_drv] 64-bit support: yes [init -> ahci_drv] number of ports: 6 pi: 0x3f [init -> ahci_drv] #0: ATA [init -> ahci_drv] #1: off (unknown device signature) [init -> ahci_drv] #2: off (unknown device signature) [init -> ahci_drv] #3: off (unknown device signature) [init -> ahci_drv] #4: off (unknown device signature) [init -> ahci_drv] #5: off (unknown device signature)
it looks like the AHCI port scan returned a connected ATA device on port zero, but is unable to initialize the device properly - most likely because no interrupts are received after command submission. We already had a lengthly remote debugging session with Ben [1] without any success. It seems like AMD's AHCI controllers are either not standard conform or might require additional initialization we are not aware of. As a starting point you could instrument the 'Ahci::handle_irq' function [2] in order to determine if any interrupts are received by the driver at all.
Regards,
Sebastian
[1] https://github.com/genodelabs/genode/issues/1547 [2] <genode-src>/repos/os/src/drivers/ahci/ahci.cc
-- Sebastian Sumpf Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
On 01.11.2017 20:27, Chris Rothrock wrote:
The IRQ that my AHCI controller is using for SATA port 0 is 37 (I know, it's pretty high and is probably contributing to the issue). From what I understand, however, the drivers ported for Genode are derived from the original Linux version drivers which obviously work in Linux. Do you think it would help if I did some code comparison between the AHCI driver port for Genode and the original Linux AHCI driver that works? Perhaps if I delve in deep enough I can find some structuring that has a special handling for AMD SATA controllers and help to contribute to the project.
Genode's AHCI driver was written from scratch, therefore it lacks features the Linux driver certainly offers. So, a little digging into the Linux driver for special handling of AMD controllers might help.
Cheers,
Sebastian
I'd also verify that the platform driver works. I found that the Linux USB driver didn't detect devices plugged into USB 2.0 ports when running on Genode. The USB 3.0 ports worked just fine, and all the USB ports work when running Linux. I'd recommend checking whether you get similar results.
On Nov 2, 2017 3:48 AM, "Sebastian Sumpf" <Sebastian.Sumpf@...1...> wrote:
On 01.11.2017 20:27, Chris Rothrock wrote:
The IRQ that my AHCI controller is using for SATA port 0 is 37 (I know, it's pretty high and is probably contributing to the issue). From what I understand, however, the drivers ported for Genode are derived from the original Linux version drivers which obviously work in Linux. Do you think it would help if I did some code comparison between the AHCI driver port for Genode and the original Linux AHCI driver that works? Perhaps if I delve in deep enough I can find some structuring that has a special handling for AMD SATA controllers and help to contribute to the project.
Genode's AHCI driver was written from scratch, therefore it lacks features the Linux driver certainly offers. So, a little digging into the Linux driver for special handling of AMD controllers might help.
Cheers,
Sebastian
-- Sebastian Sumpf Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
I use both a USB keyboard and mouse. Both of these properly work in the framebuffer window as well as in the TinyCore VM window without any issues. I have not tried other USB devices at this time, however.
On Thu, Nov 2, 2017 at 2:45 PM, Nobody III <hungryninja101@...9...> wrote:
I'd also verify that the platform driver works. I found that the Linux USB driver didn't detect devices plugged into USB 2.0 ports when running on Genode. The USB 3.0 ports worked just fine, and all the USB ports work when running Linux. I'd recommend checking whether you get similar results.
On Nov 2, 2017 3:48 AM, "Sebastian Sumpf" <Sebastian.Sumpf@...1...> wrote:
On 01.11.2017 20:27, Chris Rothrock wrote:
The IRQ that my AHCI controller is using for SATA port 0 is 37 (I know, it's pretty high and is probably contributing to the issue). From what I understand, however, the drivers ported for Genode are derived from the original Linux version drivers which obviously work in Linux. Do you think it would help if I did some code comparison between the AHCI driver port for Genode and the original Linux AHCI driver that works? Perhaps if I delve in deep enough I can find some structuring that has a special handling for AMD SATA controllers and help to contribute to the project.
Genode's AHCI driver was written from scratch, therefore it lacks features the Linux driver certainly offers. So, a little digging into the Linux driver for special handling of AMD controllers might help.
Cheers,
Sebastian
-- Sebastian Sumpf Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Do they work in all of your ports though? For me, some of my ports (USB 3.0) worked and others (USB 2.0) did not. I'm asking about ports, not devices.
On Thu, Nov 2, 2017 at 1:12 PM, Chris Rothrock <cgrothrock@...9...> wrote:
I use both a USB keyboard and mouse. Both of these properly work in the framebuffer window as well as in the TinyCore VM window without any issues. I have not tried other USB devices at this time, however.
On Thu, Nov 2, 2017 at 2:45 PM, Nobody III <hungryninja101@...9...> wrote:
I'd also verify that the platform driver works. I found that the Linux USB driver didn't detect devices plugged into USB 2.0 ports when running on Genode. The USB 3.0 ports worked just fine, and all the USB ports work when running Linux. I'd recommend checking whether you get similar results.
On Nov 2, 2017 3:48 AM, "Sebastian Sumpf" <Sebastian.Sumpf@...532... om> wrote:
On 01.11.2017 20:27, Chris Rothrock wrote:
The IRQ that my AHCI controller is using for SATA port 0 is 37 (I know, it's pretty high and is probably contributing to the issue). From what I understand, however, the drivers ported for Genode are derived from the original Linux version drivers which obviously work in Linux. Do you think it would help if I did some code comparison between the AHCI driver port for Genode and the original Linux AHCI driver that works? Perhaps if I delve in deep enough I can find some structuring that has
a
special handling for AMD SATA controllers and help to contribute to the project.
Genode's AHCI driver was written from scratch, therefore it lacks features the Linux driver certainly offers. So, a little digging into the Linux driver for special handling of AMD controllers might help.
Cheers,
Sebastian
-- Sebastian Sumpf Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
--
Thank You,
Chris Rothrock Senior System Administrator (315) 308-1637
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
this particular machine has only USB 2.0 ports, no USB 3 ports.
On Thu, Nov 2, 2017 at 6:14 PM, Nobody III <hungryninja101@...9...> wrote:
Do they work in all of your ports though? For me, some of my ports (USB 3.0) worked and others (USB 2.0) did not. I'm asking about ports, not devices.
On Thu, Nov 2, 2017 at 1:12 PM, Chris Rothrock <cgrothrock@...9...> wrote:
I use both a USB keyboard and mouse. Both of these properly work in the framebuffer window as well as in the TinyCore VM window without any issues. I have not tried other USB devices at this time, however.
On Thu, Nov 2, 2017 at 2:45 PM, Nobody III <hungryninja101@...9...> wrote:
I'd also verify that the platform driver works. I found that the Linux USB driver didn't detect devices plugged into USB 2.0 ports when running on Genode. The USB 3.0 ports worked just fine, and all the USB ports work when running Linux. I'd recommend checking whether you get similar results.
On Nov 2, 2017 3:48 AM, "Sebastian Sumpf" <Sebastian.Sumpf@...532... om> wrote:
On 01.11.2017 20:27, Chris Rothrock wrote:
The IRQ that my AHCI controller is using for SATA port 0 is 37 (I
know,
it's pretty high and is probably contributing to the issue). From
what
I understand, however, the drivers ported for Genode are derived from the original Linux version drivers which obviously work in Linux. Do you think it would help if I did some code comparison between the AHCI driver port for Genode and the original Linux AHCI driver that works? Perhaps if I delve in deep enough I can find some structuring that
has a
special handling for AMD SATA controllers and help to contribute to
the
project.
Genode's AHCI driver was written from scratch, therefore it lacks features the Linux driver certainly offers. So, a little digging into the Linux driver for special handling of AMD controllers might help.
Cheers,
Sebastian
-- Sebastian Sumpf Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
--
Thank You,
Chris Rothrock Senior System Administrator (315) 308-1637
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
I tried this same build on an Intel-based computer (an HP Z240 with an Intel SATA controller) but this one gets even less progress. The driver reports that there are no AHCI controllers present. From what I can tell, this is probably because the controller is set to IDE mode not AHCI mode but there aren't any options within the BIOS to even change this setting so I am up against a wall to get this to work on any platform I have tried. Here is the snippet of logs from this machine:
Genode 17.08-112-gee4ee6a <local changes> 7884 MiB RAM and 63254 caps assigned to init [init -> ahci_drv] --- Starting AHCI driver --- [init] child "timer" announces service "Timer" [init] child "report_rom" announces service "Report" [init] child "report_rom" announces service "ROM" [init] child "log_terminal" announces service "Terminal" [init -> nic_drv] --- iPXE NIC driver started --- [init -> nic_drv] -- init iPXE NIC [init] child "acpi_report_rom" announces service "Report" [init] child "acpi_report_rom" announces service "ROM" [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 13 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xe0000000 seg 0x0 bus 0x0-0xff [init -> acpi_drv] Found DMAR [init -> acpi_drv] 39 bit DMA physical addressable , IRQ remapping supported [init -> acpi_drv] DMA remapping structure type=0 [init -> acpi_drv] DMA remapping structure type=0 [init -> acpi_drv] DMA remapping structure type=1 [init -> acpi_drv] DMA remapping structure type=1 [init] child "platform_drv" announces service "Platform" *[init -> ahci_drv] Error: __cxa_guard_abort called* *[init -> ahci_drv] Error: __cxa_guard_abort called* *[init -> ahci_drv] Error: no AHCI controller found* [init] child "ahci_drv" exited with exit value -1 Warning: PD (init -> usb_drv) RAM limit (used=4884K, limit=6005765) exceeded during transfer_quota(2M) [init] Warning: usb_drv: RAM upgrade of Platform failed [init -> ps2_drv] Using keyboard with scan code set 1 (xlate) [init -> usb_drv] resource_request: ram_quota=2M, cap_quota=0 [init] child "usb_drv" requests resources: ram_quota=2M, cap_quota=0 [init -> nic_drv] Found: 00:1f.6 8086:15b7 (rev 31) IRQ 0b [init -> nic_drv] no driver found
On Thu, Nov 2, 2017 at 10:08 PM, Chris Rothrock <cgrothrock@...9...> wrote:
this particular machine has only USB 2.0 ports, no USB 3 ports.
On Thu, Nov 2, 2017 at 6:14 PM, Nobody III <hungryninja101@...9...> wrote:
Do they work in all of your ports though? For me, some of my ports (USB 3.0) worked and others (USB 2.0) did not. I'm asking about ports, not devices.
On Thu, Nov 2, 2017 at 1:12 PM, Chris Rothrock <cgrothrock@...9...> wrote:
I use both a USB keyboard and mouse. Both of these properly work in the framebuffer window as well as in the TinyCore VM window without any issues. I have not tried other USB devices at this time, however.
On Thu, Nov 2, 2017 at 2:45 PM, Nobody III <hungryninja101@...9...> wrote:
I'd also verify that the platform driver works. I found that the Linux USB driver didn't detect devices plugged into USB 2.0 ports when running on Genode. The USB 3.0 ports worked just fine, and all the USB ports work when running Linux. I'd recommend checking whether you get similar results.
On Nov 2, 2017 3:48 AM, "Sebastian Sumpf" < Sebastian.Sumpf@...1...> wrote:
On 01.11.2017 20:27, Chris Rothrock wrote:
The IRQ that my AHCI controller is using for SATA port 0 is 37 (I
know,
it's pretty high and is probably contributing to the issue). From
what
I understand, however, the drivers ported for Genode are derived from the original Linux version drivers which obviously work in Linux. Do you think it would help if I did some code comparison between the
AHCI
driver port for Genode and the original Linux AHCI driver that
works?
Perhaps if I delve in deep enough I can find some structuring that
has a
special handling for AMD SATA controllers and help to contribute to
the
project.
Genode's AHCI driver was written from scratch, therefore it lacks features the Linux driver certainly offers. So, a little digging into the Linux driver for special handling of AMD controllers might help.
Cheers,
Sebastian
-- Sebastian Sumpf Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
--
Thank You,
Chris Rothrock Senior System Administrator (315) 308-1637
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
--
Thank You,
Chris Rothrock Senior System Administrator (315) 308-1637
Hello Chris,
On Fri, Nov 03, 2017 at 02:31:41PM -0400, Chris Rothrock wrote:
I tried this same build on an Intel-based computer (an HP Z240 with an Intel SATA controller) but this one gets even less progress. The driver reports that there are no AHCI controllers present. From what I can tell, this is probably because the controller is set to IDE mode not AHCI mode but there aren't any options within the BIOS to even change this setting so I am up against a wall to get this to work on any platform I have tried.
From the available HP documentation I'd bet the SATA controller comes
without IDE/legacy mode. But, it supports a hardware RAID mode, so you may check in BIOS under "Configure Storage Controller for RAID" for "Disable". Also, the HP Z240 is optionally delivered with PCIe SSD (i.e., NVMe SSD) which is not supported by ahci_drv as it is a completely different interface from AHCI.
If you can make sure that there is a SATA SSD/disk and the controller is not in RAID mode, you may provide the output of
sudo lshw -sanitize -numeric sudo lspci -vvvnn
from inside a Linux running on the workstation.
[init -> nic_drv] Found: 00:1f.6 8086:15b7 (rev 31) IRQ 0b [init -> nic_drv] no driver found
The 8086:15b7 is a pretty recent I219-LM we just enabled in our NIC driver on our staging branch. The patch is pretty simple - you may have a look at
https://github.com/genodelabs/genode/commit/8f7d4732c3f9f53d3057cec08b47d247...
Regards
Unfortunately the BIOS configuration on this machine does not have any options to change (or even see) the actual mode the SATA controller is in so this path is a bust. To change track, but still try to load from a block device, how can I use a USB flash drive as a block device to store the .VDI image on and read from rather than the SATA controller/hard drive?
On Fri, Nov 3, 2017 at 5:44 PM, Christian Helmuth <christian.helmuth@...533...... labs.com> wrote:
Hello Chris,
On Fri, Nov 03, 2017 at 02:31:41PM -0400, Chris Rothrock wrote:
I tried this same build on an Intel-based computer (an HP Z240 with an Intel SATA controller) but this one gets even less progress. The driver reports that there are no AHCI controllers present. From what I can
tell,
this is probably because the controller is set to IDE mode not AHCI mode but there aren't any options within the BIOS to even change this setting
so
I am up against a wall to get this to work on any platform I have tried.
From the available HP documentation I'd bet the SATA controller comes without IDE/legacy mode. But, it supports a hardware RAID mode, so you may check in BIOS under "Configure Storage Controller for RAID" for "Disable". Also, the HP Z240 is optionally delivered with PCIe SSD (i.e., NVMe SSD) which is not supported by ahci_drv as it is a completely different interface from AHCI.
If you can make sure that there is a SATA SSD/disk and the controller is not in RAID mode, you may provide the output of
sudo lshw -sanitize -numeric sudo lspci -vvvnn
from inside a Linux running on the workstation.
[init -> nic_drv] Found: 00:1f.6 8086:15b7 (rev 31) IRQ 0b [init -> nic_drv] no driver found
The 8086:15b7 is a pretty recent I219-LM we just enabled in our NIC driver on our staging branch. The patch is pretty simple - you may have a look at
https://github.com/genodelabs/genode/commit/8f7d4732c3f9f53d 3057cec08b47d24793f65adb
Regards
Christian Helmuth Genode Labs
https://www.genode-labs.com/ · https://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Hi Chris,
On 09.11.2017 21:56, Chris Rothrock wrote:
Unfortunately the BIOS configuration on this machine does not have any options to change (or even see) the actual mode the SATA controller is in so this path is a bust. To change track, but still try to load from a block device, how can I use a USB flash drive as a block device to store the .VDI image on and read from rather than the SATA controller/hard drive?
you may take a look at 'repos/dde_linux/run/usb_storage.run'.
That said, the intermediate outcome of the current discussion is rather disappointing from my point of view as you ignored important parts of Christian's Helmuth's posting (such as providing the output of lspci), which would have helped us to better understand the situation and possibly improve Genode. By merely attempting to side-step issues ("change tracks"), there is hardly any chance to learn from the issue at hand and, thereby, no benefit for the community at large.
Regards Norman
I wasn't trying to side-step the issue. The Intel-based system that I tried this on just doesn't have Linux installed (it's a Windows machine) and I only moved over the hard drive with the Genode build on it to attempt the boot. At some point I will need to run Linux on that machine but I had other more pressing goals from my boss (specifically to find out if USB can be used) to try to get through before getting Linux on and checking this.
Something that may be of interest, however, is when I have been sifting through the Linux AHCI driver source code https://github.com/torvalds/linux/blob/master/drivers/ata/ahci.c I found a comment in the code regarding the AMD controllers at line 409: /* AMD is using RAID class only for ahci controllers */ This may have something to do with the Genode AHCI driver not working on AMD controllers and might help lead in the right direction for a resolution.
Chris
On Wed, Nov 15, 2017 at 3:08 AM, Norman Feske <norman.feske@...1...> wrote:
Hi Chris,
On 09.11.2017 21:56, Chris Rothrock wrote:
Unfortunately the BIOS configuration on this machine does not have any options to change (or even see) the actual mode the SATA controller is in so this path is a bust. To change track, but still try to load from a block device, how can I use a USB flash drive as a block device to store the .VDI image on and read from rather than the SATA controller/hard drive?
you may take a look at 'repos/dde_linux/run/usb_storage.run'.
That said, the intermediate outcome of the current discussion is rather disappointing from my point of view as you ignored important parts of Christian's Helmuth's posting (such as providing the output of lspci), which would have helped us to better understand the situation and possibly improve Genode. By merely attempting to side-step issues ("change tracks"), there is hardly any chance to learn from the issue at hand and, thereby, no benefit for the community at large.
Regards Norman
-- Dr.-Ing. Norman Feske Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
Here is the output from these two commands. Again, in the BIOS there are no options at all to change the parameters of the SATA controller. This one appears to be set to RAID mode and no options to modify it from this more so this PC, unless I load a custom BIOS on it, will not be able to work with the AHCI controller driver from Genode. (device 00:17.0). Jut to verify I went through every single option throughout the BIOS once again to try to turn off the RAID mode but I simply can't do it.
it@...538...:~$ sudo lshw -sanitize -numeric computer description: Computer width: 64 bits capabilities: smbios-2.7 vsyscall32 *-core description: Motherboard physical id: 0 *-memory description: System memory physical id: 0 size: 7766MiB *-cpu product: Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz vendor: Intel Corp. physical id: 1 bus info: cpu@...361... size: 1400MHz capacity: 3401MHz width: 64 bits capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp x86-64 constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch epb intel_pt tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm mpx rdseed adx smap clflushopt xsaveopt xsavec xgetbv1 dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp cpufreq *-pci description: Host bridge product: Intel Corporation [8086:591F] vendor: Intel Corporation [8086] physical id: 100 bus info: pci@...332...:00:00.0 version: 05 width: 32 bits clock: 33MHz *-display UNCLAIMED description: VGA compatible controller product: Intel Corporation [8086:5912] vendor: Intel Corporation [8086] physical id: 2 bus info: pci@...332...:00:02.0 version: 04 width: 64 bits clock: 33MHz capabilities: pciexpress msi pm vga_controller bus_master cap_list configuration: latency=0 resources: memory:d0000000-d0ffffff memory:c0000000-cfffffff ioport:3000(size=64) *-usb description: USB controller product: Sunrise Point-H USB 3.0 xHCI Controller [8086:A12F] vendor: Intel Corporation [8086] physical id: 14 bus info: pci@...332...:00:14.0 version: 31 width: 64 bits clock: 33MHz capabilities: pm msi xhci bus_master cap_list configuration: driver=xhci_hcd latency=0 resources: irq:122 memory:d1020000-d102ffff *-usbhost:0 product: xHCI Host Controller [1D6B:3] vendor: Linux 4.4.0-21-generic xhci-hcd [1D6B] physical id: 0 bus info: usb@...539... logical name: usb2 version: 4.04 capabilities: usb-3.00 configuration: driver=hub slots=10 speed=5000Mbit/s *-usbhost:1 product: xHCI Host Controller [1D6B:2] vendor: Linux 4.4.0-21-generic xhci-hcd [1D6B] physical id: 1 bus info: usb@...23... logical name: usb1 version: 4.04 capabilities: usb-2.00 configuration: driver=hub slots=16 speed=480Mbit/s *-usb:0 description: Mouse product: World of Warcraft MMO Gaming Mouse:Legendary Edition [1038:1310] vendor: SteelSeries [1038] physical id: 1 bus info: usb@...23...:1 version: 2.19 capabilities: usb-1.10 configuration: driver=usbhid maxpower=120mA speed=12Mbit/s *-usb:1 description: Keyboard product: USB KEYBOARD [258A:1] vendor: SINO WEALTH [258A] physical id: 2 bus info: usb@...23...:2 version: 1.00 capabilities: usb-1.10 configuration: driver=usbhid maxpower=100mA speed=2Mbit/s *-usb:2 description: Mass storage device product: Cruzer Glide [781:5575] vendor: SanDisk [781] physical id: b bus info: usb@...23...:b version: 1.00 serial: [REMOVED] capabilities: usb-2.10 scsi configuration: driver=usb-storage maxpower=224mA speed=480Mbit/s *-generic UNCLAIMED description: Signal processing controller product: Sunrise Point-H Thermal subsystem [8086:A131] vendor: Intel Corporation [8086] physical id: 14.2 bus info: pci@...332...:00:14.2 version: 31 width: 64 bits clock: 33MHz capabilities: pm msi bus_master cap_list configuration: latency=0 resources: memory:d104a000-d104afff *-storage description: RAID bus controller product: SATA Controller [RAID mode] [8086:2822] vendor: Intel Corporation [8086] physical id: 17 bus info: pci@...332...:00:17.0 version: 31 width: 32 bits clock: 66MHz capabilities: storage msi pm bus_master cap_list configuration: driver=ahci latency=0 resources: irq:123 memory:d1048000-d1049fff memory:d104e000-d104e0ff ioport:3080(size=8) ioport:3088(size=4) ioport:3060(size=32) memory:d104c000-d104c7ff *-isa description: ISA bridge product: Sunrise Point-H LPC Controller [8086:A149] vendor: Intel Corporation [8086] physical id: 1f bus info: pci@...332...:00:1f.0 version: 31 width: 32 bits clock: 33MHz capabilities: isa bus_master configuration: latency=0 *-memory UNCLAIMED description: Memory controller product: Sunrise Point-H PMC [8086:A121] vendor: Intel Corporation [8086] physical id: 1f.2 bus info: pci@...332...:00:1f.2 version: 31 width: 32 bits clock: 33MHz (30.3ns) capabilities: bus_master configuration: latency=0 resources: memory:d1044000-d1047fff *-multimedia description: Audio device product: Sunrise Point-H HD Audio [8086:A170] vendor: Intel Corporation [8086] physical id: 1f.3 bus info: pci@...332...:00:1f.3 version: 31 width: 64 bits clock: 33MHz capabilities: pm msi bus_master cap_list configuration: driver=snd_hda_intel latency=64 resources: irq:125 memory:d1040000-d1043fff memory:d1030000-d103ffff *-serial UNCLAIMED description: SMBus product: Sunrise Point-H SMBus [8086:A123] vendor: Intel Corporation [8086] physical id: 1f.4 bus info: pci@...332...:00:1f.4 version: 31 width: 64 bits clock: 33MHz configuration: latency=0 resources: memory:d104d000-d104d0ff ioport:efa0(size=32) *-network description: Ethernet interface product: Ethernet Connection (2) I219-LM [8086:15B7] vendor: Intel Corporation [8086] physical id: 1f.6 bus info: pci@...332...:00:1f.6 logical name: eno1 version: 31 serial: [REMOVED] capacity: 1Gbit/s width: 32 bits clock: 33MHz capabilities: pm msi bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=3.2.6-k firmware=0.8-4 latency=0 link=no multicast=yes port=twisted pair resources: irq:124 memory:d1000000-d101ffff *-scsi:0 physical id: 2 logical name: scsi0 capabilities: emulated *-disk description: ATA Disk product: WDC WD5000AZLX-6 vendor: Western Digital physical id: 0.0.0 bus info: scsi@...361...:0.0.0 logical name: /dev/sda version: 1A01 serial: [REMOVED] size: 465GiB (500GB) capabilities: gpt-1.00 partitioned partitioned:gpt configuration: ansiversion=5 guid=eaaf6998-3866-45df-b02d-8820514d2968 logicalsectorsize=512 sectorsize=4096 *-volume:0 description: Windows FAT volume vendor: MSDOS5.0 physical id: 1 bus info: scsi@...361...:0.0.0,1 logical name: /dev/sda1 version: FAT32 serial: [REMOVED] size: 355MiB capacity: 359MiB capabilities: boot precious readonly hidden nomount fat initialized configuration: FATs=2 filesystem=fat label=SYSTEM name=EFI system partition *-volume:1 description: reserved partition vendor: Windows physical id: 2 bus info: scsi@...361...:0.0.0,2 logical name: /dev/sda2 serial: [REMOVED] capacity: 127MiB capabilities: nofs precious readonly hidden nomount configuration: name=Microsoft reserved partition *-volume:2 description: Windows NTFS volume vendor: Windows physical id: 3 bus info: scsi@...361...:0.0.0,3 logical name: /dev/sda3 version: 3.1 serial: [REMOVED] size: 449GiB capacity: 449GiB capabilities: ntfs initialized configuration: clustersize=4096 created=2017-06-13 21:55:09 filesystem=ntfs label=Windows name=Basic data partition state=clean *-volume:3 description: Windows NTFS volume vendor: Windows physical id: 4 bus info: scsi@...361...:0.0.0,4 logical name: /dev/sda4 version: 3.1 serial: [REMOVED] size: 976MiB capacity: 979MiB capabilities: boot precious readonly hidden nomount ntfs initialized configuration: clustersize=4096 created=2017-06-14 07:52:43 filesystem=ntfs label=Windows RE tools modified_by_chkdsk=true mounted_on_nt4=true name=Basic data partition resize_log_file=true state=dirty upgrade_on_mount=true *-volume:4 description: Windows NTFS volume vendor: Windows physical id: 5 bus info: scsi@...361...:0.0.0,5 logical name: /dev/sda5 version: 3.1 serial: [REMOVED] size: 14GiB capacity: 14GiB capabilities: precious readonly hidden nomount ntfs initialized configuration: clustersize=4096 created=2017-06-14 07:46:02 filesystem=ntfs label=Recovery Image modified_by_chkdsk=true mounted_on_nt4=true name=Basic data partition resize_log_file=true state=dirty upgrade_on_mount=true *-scsi:1 physical id: 3 logical name: scsi3 capabilities: emulated *-cdrom description: DVD-RAM writer product: DVDRW DU8AESH vendor: hp PLDS physical id: 0.0.0 bus info: scsi@...540...:0.0.0 logical name: /dev/cdrom logical name: /dev/cdrw logical name: /dev/dvd logical name: /dev/dvdrw logical name: /dev/sr0 version: 6HS3 capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram configuration: ansiversion=5 status=nodisc *-scsi:2 physical id: 4 bus info: usb@...23...:11 logical name: scsi4 capabilities: emulated scsi-host configuration: driver=usb-storage *-disk description: SCSI Disk product: Cruzer Glide vendor: SanDisk physical id: 0.0.0 bus info: scsi@...167...:0.0.0 logical name: /dev/sdb version: 1.00 serial: [REMOVED] size: 118GiB (126GB) capabilities: removable configuration: ansiversion=6 logicalsectorsize=512 sectorsize=512 *-medium physical id: 0 logical name: /dev/sdb size: 118GiB (126GB) capabilities: partitioned partitioned:dos configuration: signature=38d246ae *-volume description: Windows FAT volume vendor: SYSLINUX physical id: 1 logical name: /dev/sdb1 logical name: /cdrom version: FAT32 serial: [REMOVED] size: 117GiB capacity: 118GiB capabilities: primary bootable fat initialized configuration: FATs=2 filesystem=fat label=MULTIBOOT mount.fstype=vfat mount.options=rw,noatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro state=mounted it@...538...:~$ sudo lspci -vvvnn 00:00.0 Host bridge [0600]: Intel Corporation Device [8086:591f] (rev 05) Subsystem: Hewlett-Packard Company Device [103c:802e] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx- Latency: 0 Capabilities: [e0] Vendor Specific Information: Len=10 <?>
00:02.0 VGA compatible controller [0300]: Intel Corporation Device [8086:5912] (rev 04) (prog-if 00 [VGA controller]) DeviceName: Onboard IGD Subsystem: Hewlett-Packard Company Device [103c:802e] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 0 Region 0: Memory at d0000000 (64-bit, non-prefetchable) [size=16M] Region 2: Memory at c0000000 (64-bit, prefetchable) [size=256M] Region 4: I/O ports at 3000 [size=64] Expansion ROM at <unassigned> [disabled] Capabilities: [40] Vendor Specific Information: Len=0c <?> Capabilities: [70] Express (v2) Root Complex Integrated Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0 ExtTag- RBE+ DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- DevCap2: Completion Timeout: Not Supported, TimeoutDis-, LTR-, OBFF Not Supported DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled Capabilities: [ac] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000 Capabilities: [d0] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [100 v1] #1b Capabilities: [200 v1] Address Translation Service (ATS) ATSCap: Invalidate Queue Depth: 00 ATSCtl: Enable-, Smallest Translation Unit: 00 Capabilities: [300 v1] #13 Kernel modules: i915_bpo
00:14.0 USB controller [0c03]: Intel Corporation Sunrise Point-H USB 3.0 xHCI Controller [8086:a12f] (rev 31) (prog-if 30 [XHCI]) Subsystem: Hewlett-Packard Company Sunrise Point-H USB 3.0 xHCI Controller [103c:802e] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 122 Region 0: Memory at d1020000 (64-bit, non-prefetchable) [size=64K] Capabilities: [70] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0-,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [80] MSI: Enable+ Count=1/8 Maskable- 64bit+ Address: 00000000fee00218 Data: 0000 Kernel driver in use: xhci_hcd
00:14.2 Signal processing controller [1180]: Intel Corporation Sunrise Point-H Thermal subsystem [8086:a131] (rev 31) Subsystem: Hewlett-Packard Company Sunrise Point-H Thermal subsystem [103c:802e] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin C routed to IRQ 11 Region 0: Memory at d104a000 (64-bit, non-prefetchable) [size=4K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [80] MSI: Enable- Count=1/1 Maskable- 64bit- Address: 00000000 Data: 0000
00:17.0 RAID bus controller [0104]: Intel Corporation SATA Controller [RAID mode] [8086:2822] (rev 31) Subsystem: Hewlett-Packard Company SATA Controller [RAID mode] [103c:802e] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 123 Region 0: Memory at d1048000 (32-bit, non-prefetchable) [size=8K] Region 1: Memory at d104e000 (32-bit, non-prefetchable) [size=256] Region 2: I/O ports at 3080 [size=8] Region 3: I/O ports at 3088 [size=4] Region 4: I/O ports at 3060 [size=32] Region 5: Memory at d104c000 (32-bit, non-prefetchable) [size=2K] Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit- Address: fee00238 Data: 0000 Capabilities: [70] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [a8] SATA HBA v1.0 BAR4 Offset=00000004 Kernel driver in use: ahci Kernel modules: ahci
00:1f.0 ISA bridge [0601]: Intel Corporation Sunrise Point-H LPC Controller [8086:a149] (rev 31) Subsystem: Hewlett-Packard Company Sunrise Point-H LPC Controller [103c:802e] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0
00:1f.2 Memory controller [0580]: Intel Corporation Sunrise Point-H PMC [8086:a121] (rev 31) Subsystem: Hewlett-Packard Company Sunrise Point-H PMC [103c:802e] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Region 0: Memory at d1044000 (32-bit, non-prefetchable) [size=16K]
00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31) Subsystem: Hewlett-Packard Company Sunrise Point-H HD Audio [103c:802e] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 64 Interrupt: pin A routed to IRQ 125 Region 0: Memory at d1040000 (64-bit, non-prefetchable) [size=16K] Region 4: Memory at d1030000 (64-bit, non-prefetchable) [size=64K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee00278 Data: 0000 Kernel driver in use: snd_hda_intel Kernel modules: snd_hda_intel
00:1f.4 SMBus [0c05]: Intel Corporation Sunrise Point-H SMBus [8086:a123] (rev 31) Subsystem: Hewlett-Packard Company Sunrise Point-H SMBus [103c:802e] Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 11 Region 0: Memory at d104d000 (64-bit, non-prefetchable) [size=256] Region 4: I/O ports at efa0 [size=32] Kernel modules: i2c_i801
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (2) I219-LM [8086:15b7] (rev 31) DeviceName: Onboard Lan Subsystem: Hewlett-Packard Company Ethernet Connection (2) I219-LM [103c:802e] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 124 Region 0: Memory at d1000000 (32-bit, non-prefetchable) [size=128K] Capabilities: [c8] Power Management version 3 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=1 PME- Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee00258 Data: 0000 Capabilities: [e0] PCI Advanced Features AFCap: TP+ FLR+ AFCtrl: FLR- AFStatus: TP- Kernel driver in use: e1000e Kernel modules: e1000e
On Wed, Nov 15, 2017 at 7:21 AM, Chris Rothrock <cgrothrock@...9...> wrote:
I wasn't trying to side-step the issue. The Intel-based system that I tried this on just doesn't have Linux installed (it's a Windows machine) and I only moved over the hard drive with the Genode build on it to attempt the boot. At some point I will need to run Linux on that machine but I had other more pressing goals from my boss (specifically to find out if USB can be used) to try to get through before getting Linux on and checking this.
Something that may be of interest, however, is when I have been sifting through the Linux AHCI driver source code https://github.com/ torvalds/linux/blob/master/drivers/ata/ahci.c I found a comment in the code regarding the AMD controllers at line 409: /* AMD is using RAID class only for ahci controllers */ This may have something to do with the Genode AHCI driver not working on AMD controllers and might help lead in the right direction for a resolution.
Chris
On Wed, Nov 15, 2017 at 3:08 AM, Norman Feske < norman.feske@...1...> wrote:
Hi Chris,
On 09.11.2017 21:56, Chris Rothrock wrote:
Unfortunately the BIOS configuration on this machine does not have any options to change (or even see) the actual mode the SATA controller is in so this path is a bust. To change track, but still try to load from a block device, how can I use a USB flash drive as a block device to store the .VDI image on and read from rather than the SATA controller/hard drive?
you may take a look at 'repos/dde_linux/run/usb_storage.run'.
That said, the intermediate outcome of the current discussion is rather disappointing from my point of view as you ignored important parts of Christian's Helmuth's posting (such as providing the output of lspci), which would have helped us to better understand the situation and possibly improve Genode. By merely attempting to side-step issues ("change tracks"), there is hardly any chance to learn from the issue at hand and, thereby, no benefit for the community at large.
Regards Norman
-- Dr.-Ing. Norman Feske Genode Labs
http://www.genode-labs.com · http://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main
--
Thank You,
Chris Rothrock Senior System Administrator (315) 308-1637
Hello Chris,
On Thu, Dec 14, 2017 at 10:45:37AM -0500, Chris Rothrock wrote:
Here is the output from these two commands.
[...]
*-storage description: RAID bus controller product: SATA Controller [RAID mode] [8086:2822] vendor: Intel Corporation [8086] physical id: 17 bus info: pci@...332...:00:17.0 version: 31 width: 32 bits clock: 66MHz capabilities: storage msi pm bus_master cap_list configuration: driver=ahci latency=0 resources: irq:123 memory:d1048000-d1049fff memory:d104e000-d104e0ff ioport:3080(size=8) ioport:3088(size=4) ioport:3060(size=32) memory:d104c000-d104c7ff
[...]
*-scsi:0 physical id: 2 logical name: scsi0 capabilities: emulated *-disk description: ATA Disk product: WDC WD5000AZLX-6 vendor: Western Digital physical id: 0.0.0 bus info: scsi@...361...:0.0.0 logical name: /dev/sda version: 1A01 serial: [REMOVED] size: 465GiB (500GB) capabilities: gpt-1.00 partitioned partitioned:gpt configuration: ansiversion=5 guid=eaaf6998-3866-45df-b02d-8820514d2968 logicalsectorsize=512 sectorsize=4096
[...]
00:17.0 RAID bus controller [0104]: Intel Corporation SATA Controller [RAID mode] [8086:2822] (rev 31) Subsystem: Hewlett-Packard Company SATA Controller [RAID mode] [103c:802e] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 123 Region 0: Memory at d1048000 (32-bit, non-prefetchable) [size=8K] Region 1: Memory at d104e000 (32-bit, non-prefetchable) [size=256] Region 2: I/O ports at 3080 [size=8] Region 3: I/O ports at 3088 [size=4] Region 4: I/O ports at 3060 [size=32] Region 5: Memory at d104c000 (32-bit, non-prefetchable) [size=2K] Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit- Address: fee00238 Data: 0000 Capabilities: [70] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [a8] SATA HBA v1.0 BAR4 Offset=00000004 Kernel driver in use: ahci Kernel modules: ahci
I had a thorough look at the information above and unfortunately this storage configuration is not supported by Genode currently. The reasons are:
1) The storage controller does not appear as AHCI device but as SATA RAID mode controller. Therefore, our platform_drv does not provide access to the I/O resources to the AHCI driver.
2) If ahci_drv had access to the device it would not use it as we did not implement any special handling of RAID mode controllers. It may be possible to extend the driver by means to drive the device via BAR4 (I/O ports 3060+32) but I have no experience with this operation.
Regards
I was fairly sure that was the reason myself. I will continue on my end at this point to see if I can get the AMD AHCI controller to work by instrumenting the current AHCI driver. If I can get this to work I will certainly provide my updates to the Genode team to help expand in this regard.
On Mon, Dec 18, 2017 at 8:38 AM, Christian Helmuth < christian.helmuth@...1...> wrote:
Hello Chris,
On Thu, Dec 14, 2017 at 10:45:37AM -0500, Chris Rothrock wrote:
Here is the output from these two commands.
[...]
*-storage description: RAID bus controller product: SATA Controller [RAID mode] [8086:2822] vendor: Intel Corporation [8086] physical id: 17 bus info: pci@...332...:00:17.0 version: 31 width: 32 bits clock: 66MHz capabilities: storage msi pm bus_master cap_list configuration: driver=ahci latency=0 resources: irq:123 memory:d1048000-d1049fff
memory:d104e000-d104e0ff ioport:3080(size=8) ioport:3088(size=4) ioport:3060(size=32) memory:d104c000-d104c7ff [...]
*-scsi:0 physical id: 2 logical name: scsi0 capabilities: emulated *-disk description: ATA Disk product: WDC WD5000AZLX-6 vendor: Western Digital physical id: 0.0.0 bus info: scsi@...361...:0.0.0 logical name: /dev/sda version: 1A01 serial: [REMOVED] size: 465GiB (500GB) capabilities: gpt-1.00 partitioned partitioned:gpt configuration: ansiversion=5 guid=eaaf6998-3866-45df-b02d-8820514d2968
logicalsectorsize=512 sectorsize=4096 [...]
00:17.0 RAID bus controller [0104]: Intel Corporation SATA Controller
[RAID
mode] [8086:2822] (rev 31) Subsystem: Hewlett-Packard Company SATA Controller [RAID mode]
[103c:802e]
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 123 Region 0: Memory at d1048000 (32-bit, non-prefetchable) [size=8K] Region 1: Memory at d104e000 (32-bit, non-prefetchable) [size=256] Region 2: I/O ports at 3080 [size=8] Region 3: I/O ports at 3088 [size=4] Region 4: I/O ports at 3060 [size=32] Region 5: Memory at d104c000 (32-bit, non-prefetchable) [size=2K] Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit- Address: fee00238 Data: 0000 Capabilities: [70] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot+,D3cold-
)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [a8] SATA HBA v1.0 BAR4 Offset=00000004 Kernel driver in use: ahci Kernel modules: ahci
I had a thorough look at the information above and unfortunately this storage configuration is not supported by Genode currently. The reasons are:
The storage controller does not appear as AHCI device but as SATA RAID mode controller. Therefore, our platform_drv does not provide access to the I/O resources to the AHCI driver.
If ahci_drv had access to the device it would not use it as we did not implement any special handling of RAID mode controllers. It may be possible to extend the driver by means to drive the device via BAR4 (I/O ports 3060+32) but I have no experience with this operation.
Regards
Christian Helmuth Genode Labs
https://www.genode-labs.com/ · https://genode.org/ https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ genode-main mailing list genode-main@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/genode-main