Hello,
I am looking into booting a virtualbox VM using an external .iso. In order to do that I am currently working on a simple setup where I just have the necessary drivers and the VFS. I am trying to see if everything is working using "fs-query" but I get an error in the <rump> node saying "Mounting 'cd9660' file system failed (22)". I also tried the same setup with a "vfs" node instead of "fs-query", having the same error. I know the configuration contains a lot of redundant information but I am still learning. :) Looking forward if anyone has any advice on how to fix this.
Thank you!
This is my run file. "test.iso" is a tinycore installer.
################################################## assert_spec x86_64
set use_overlay 0 set use_serial 1 set use_top 0
create_boot_directory
set depot_archives { }
lappend depot_archives [depot_user]/pkg/[drivers_interactive_pkg] lappend depot_archives [depot_user]/pkg/themed_wm lappend depot_archives [depot_user]/src/[base_src] lappend depot_archives [depot_user]/src/clipboard lappend depot_archives [depot_user]/src/init lappend depot_archives [depot_user]/src/jpeg lappend depot_archives [depot_user]/src/libc lappend depot_archives [depot_user]/src/nitpicker lappend depot_archives [depot_user]/src/report_rom lappend depot_archives [depot_user]/src/vfs_import lappend depot_archives [depot_user]/src/part_block lappend depot_archives [depot_user]/src/vfs_pipe lappend depot_archives [depot_user]/src/vfs_oss lappend depot_archives [depot_user]/src/mesa lappend depot_archives [depot_user]/src/expat lappend depot_archives [depot_user]/src/libdrm lappend depot_archives [depot_user]/src/libyuv lappend depot_archives [depot_user]/src/vfs_gpu lappend depot_archives [depot_user]/src/ipxe_nic_drv lappend depot_archives [depot_user]/src/nic_router
import_from_depot $depot_archives
set build_components { virtualbox6 drivers/ahci server/vfs_block app/rom_logger server/vfs server/fs_rom lib/vfs_rump server/dynamic_rom app/fs_query server/part_block }
lappend_if [expr $use_top] build_components app/top lappend_if [expr $use_serial] build_components server/log_terminal lappend_if [have_spec x86] build_components drivers/rtc
lappend build_components drivers/audio
build $build_components
set config { <config prio_levels="4" verbose="yes"> <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"/> <service name="VM"/> </parent-provides> <default-route> <any-service> <parent/> <any-child/> </any-service> </default-route> <default caps="100"/> <start name="timer" priority="0"> <resource name="RAM" quantum="1M"/> <provides> <service name="Timer"/> </provides> </start>}
append config { <start name="platform_reports"> <binary name="report_rom"/> <resource name="RAM" quantum="1M"/> <provides> <service name="Report"/> <service name="ROM"/> </provides> <config> <policy label="pci_decode -> system" report="acpi_drv -> acpi"/> <policy label="platform_drv -> devices" report="pci_decode -> devices"/> </config> </start>
<start name="acpi_drv" caps="350"> <resource name="RAM" quantum="4M"/> <route> <service name="Report"> <child name="platform_reports"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start>
<start name="pci_decode" caps="350"> <resource name="RAM" quantum="2M"/> <route> <service name="ROM" label="system"> <child name="platform_reports"/> </service> <service name="Report"> <child name="platform_reports"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start>
<start name="platform_drv" caps="400" managing_system="yes"> <resource name="RAM" quantum="4M"/> <provides> <service name="Platform"/> </provides> <config> <policy label_prefix="ahci_drv" info="yes"> <pci class="AHCI"/> </policy> </config> <route> <service name="ROM" label="devices"> <child name="platform_reports"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start>
<start name="ahci_report_rom"> <binary name="report_rom"/> <resource name="RAM" quantum="1M"/> <provides> <service name="Report"/> <service name="ROM"/> </provides> <config verbose="yes"/> </start>
<start name="ahci_drv" > <resource name="RAM" quantum="10M"/> <provides> <service name="Block"/> </provides> <config atapi="yes"> <report ports="yes"/> <policy label_prefix="fs_query" device="1" writeable="no"/> </config> <route> <service name="Report"> <child name="ahci_report_rom"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start>
<start name="fs_query_report_rom"> <binary name="report_rom"/> <resource name="RAM" quantum="1M"/> <provides> <service name="Report"/> <service name="ROM"/> </provides> <config verbose="yes"/> </start>
<start name="fs_query" caps="120" > <resource name="RAM" quantum="400M"/> <config> <vfs> <rump fs="cd9660" ram="300M" writeable="no"/> </vfs> <query path="/" content="yes"/> </config> <route> <service name="Block"> <child name="ahci_drv"/> </service> <service name="Report"> <child name="fs_query_report_rom"/> </service> <any-service> <parent/> <any-child/> </any-service> </route> </start> </config>}
install_config $config
set boot_modules { rtc_drv virtualbox6 libc.lib.so vfs.lib.so libm.lib.so libiconv.lib.so stdcxx.lib.so qemu-usb.lib.so virtualbox6-shaderlib.lib.so vfs_rump.lib.so vfs part_block fs_rom fb_drv.config virtualbox6.vbox rump.lib.so rump_fs.lib.so rom_logger dynamic_rom fs_query }
# platform-specific modules lappend_if [expr $use_top] boot_modules top
append_if [expr $use_serial] boot_modules { log_terminal } append_if [expr $use_overlay] boot_modules { overlay.vdi }
lappend boot_modules pci_audio_drv lappend boot_modules ahci_drv lappend boot_modules vfs_block lappend boot_modules nic_router lappend boot_modules ipxe_nic_drv build_boot_image $boot_modules
append qemu_args " -m 6500 -cpu host " append qemu_args " -device ahci,id=ahci " append qemu_args " -drive id=cd1,file=bin/test.iso,if=none,media=cdrom -device ide-cd,drive=cd1,bus=ahci.1 "
run_genode_until forever
##################################################
And this is the output received:
##################################################
Genode 23.05 <local changes> 6356 MiB RAM and 63253 caps assigned to init [init] parent provides [init] service "ROM" [init] service "IRQ" [init] service "IO_MEM" [init] service "IO_PORT" [init] service "PD" [init] service "RM" [init] service "CPU" [init] service "LOG" [init] service "VM" [init] child "timer" [init] RAM quota: 776K [init] cap quota: 66 [init] ELF binary: timer [init] priority: 0 [init] provides service Timer [init] child "platform_reports" [init] RAM quota: 776K [init] cap quota: 66 [init] ELF binary: report_rom [init] priority: 0 [init] provides service Report [init] provides service ROM [init] child "acpi_drv" [init] RAM quota: 3848K [init] cap quota: 316 [init] ELF binary: acpi_drv [init] priority: 0 [init] child "pci_decode" [init] RAM quota: 1800K [init] cap quota: 316 [init] ELF binary: pci_decode [init] priority: 0 [init] child "platform_drv" [init] RAM quota: 3848K [init] cap quota: 366 [init] ELF binary: platform_drv [init] priority: 0 [init] provides service Platform [init] child "ahci_report_rom" [init] RAM quota: 776K [init] cap quota: 66 [init] ELF binary: report_rom [init] priority: 0 [init] provides service Report [init] provides service ROM [init] child "ahci_drv" [init] RAM quota: 9992K [init] cap quota: 66 [init] ELF binary: ahci_drv [init] priority: 0 [init] provides service Block [init] child "fs_query_report_rom" [init] RAM quota: 776K [init] cap quota: 66 [init] ELF binary: report_rom [init] priority: 0 [init] provides service Report [init] provides service ROM [init] child "fs_query" [init] RAM quota: 409352K [init] cap quota: 86 [init] ELF binary: fs_query [init] priority: 0 [init] child "timer" announces service "Timer" [init] child "platform_reports" announces service "Report" [init] child "platform_reports" announces service "ROM" [init -> acpi_drv] Found MADT [init -> acpi_drv] MADT IRQ 0 -> GSI 2 flags: 0 [init -> acpi_drv] MADT IRQ 5 -> GSI 5 flags: 13 [init -> acpi_drv] MADT IRQ 9 -> GSI 9 flags: 13 [init -> acpi_drv] MADT IRQ 10 -> GSI 10 flags: 13 [init -> acpi_drv] MADT IRQ 11 -> GSI 11 flags: 13 [init -> acpi_drv] Found MCFG [init -> acpi_drv] MCFG BASE 0xb0000000 seg 0x0 bus 0x0-0xff [init] child "ahci_report_rom" announces service "Report" [init] child "ahci_report_rom" announces service "ROM" [init -> ahci_drv] --- Starting AHCI driver --- [init] child "fs_query_report_rom" announces service "Report" [init] child "fs_query_report_rom" announces service "ROM" [init] child "platform_drv" announces service "Platform" [init -> acpi_drv] RSDT OEM 'BOCHS ', table id 'BXPC ', revision 1, creator 'BXPC' (1) [init -> acpi_drv] SMBIOS 3 table (entry point: 0x1559b0 structures: 0xf59d0) [init -> ahci_drv] version: major=0x1 minor=0x0 [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 [init -> ahci_drv] Warning: CMD.ST bit set during device reset --> unknown behavior [init -> ahci_drv] #0: ATAPI [init -> ahci_drv] Warning: CMD.ST bit set during device reset --> unknown behavior [init -> ahci_drv] #1: ATAPI [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 -> ahci_report_rom] report 'ahci_drv -> ports' [init -> ahci_report_rom] <ports> [init -> ahci_report_rom] <port num="0" type="ATAPI" block_count="11414" block_size="2048"/> [init -> ahci_report_rom] <port num="1" type="ATAPI" block_count="126976" block_size="2048"/> [init -> ahci_report_rom] </ports> [init] child "ahci_drv" announces service "Block" [init -> fs_query] Error: Mounting 'cd9660' file system failed (22) [init -> fs_query] Error: failed to create <rump> VFS node [init -> fs_query] Error: fs="cd9660" [init -> fs_query] Error: ram="300M" [init -> fs_query] Error: writeable="no" no RM attachment (READ pf_addr=0x0 pf_ip=0x100f1e9 from pager_object: pd='init -> fs_query' thread='ep') page fault, pd='init -> fs_query' thread='ep' cpu=0 ip=0x100f1e9 address=0x0 stack pointer=0x401fe3d0 qualifiers=0x4 irUwp reason=1 ##################################################