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
##################################################