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