Mounting iso filesystem using rump fails

Radu Aron ra at confiware.com
Fri Sep 22 16:25:17 CEST 2023


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
##################################################
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20230922/2d17b1dd/attachment.htm>


More information about the users mailing list