Mounting iso filesystem using rump fails

Sebastian Sumpf Sebastian.Sumpf at genode-labs.com
Mon Sep 25 15:34:23 CEST 2023


Hi,

On 22.09.23 16:25, Radu Aron wrote:
> 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.

thanks for the extensive report. I have tested your run script and it seems like 
the ATAPI driver does not work with Qemu AHCI anymore. I will have a look into 
this and open an issue if applicable.

Regards,

Sebastian

> 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/libdrmconfigure:2048:
> 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 <http://libc.lib.so> vfs.lib.so <http://vfs.lib.so> 
> libm.lib.so <http://libm.lib.so> libiconv.lib.so <http://libiconv.lib.so> 
> stdcxx.lib.so <http://stdcxx.lib.so>
> qemu-usb.lib.so <http://qemu-usb.lib.so> virtualbox6-shaderlib.lib.so 
> <http://virtualbox6-shaderlib.lib.so> vfs_rump.lib.so <http://vfs_rump.lib.so> 
> vfs part_block
> fs_rom fb_drv.config virtualbox6.vbox rump.lib.so <http://rump.lib.so> 
> rump_fs.lib.so <http://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 <http://CMD.ST> bit set during device reset 
> --> unknown behavior
> [init -> ahci_drv] #0: ATAPI
> [init -> ahci_drv] Warning: CMD.ST <http://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
> ##################################################
> 
> _______________________________________________
> Genode users mailing list
> users at lists.genode.org
> https://lists.genode.org/listinfo/users

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







More information about the users mailing list