vbox6-block: no policy defined for label 'vbox6-block -> block0'

Dan Connolly dckc at madmode.com
Tue Jan 31 07:38:09 CET 2023


On Mon, Jan 30, 2023 at 2:08 PM Alexander Boettcher
<alexander.boettcher at genode-labs.com> wrote:
[...]
> In your vbox6 configuration file, you have to use one VMDK per Block device. So in your case it would be 3 different VMDK files.

Really? https://genodians.org/jschlatow/2021-04-23-start-existing-linux-from-sculpt
seems to show creating one .vmdk file for 3 partitions:

VBoxManage internalcommands createrawvmdk -filename linux.vmdk \
    -rawdisk /dev/sda -partitions 1,4,5 -relative


> Each VMDK file contains a /dev/XXX device, where XXX can be chosen freely by you. Additionally, the size must _exactly_ match your target partition/block device (otherwise corruption ahead).

Mine is at https://github.com/dckc/madmode-blog/blob/t430-lin-in-genode/projects/t430/linux.vmdk

It has all four:
...
RW 2048 FLAT "/dev/sda1" 0
RW 204800 ZERO
RW 20971520 ZERO
RW 52428800 FLAT "/dev/sda4" 0
RW 134217728 FLAT "/dev/sda5" 0
RW 42242703 FLAT "/dev/sda6" 0
...

The sector counts match sfdisk output
https://github.com/dckc/madmode-blog/blob/t430-lin-in-genode/projects/t430/sda-sfdisk.txt

> Your /dev/XXX must be used in the runtime file of the package at the vfs component (name="XXX"). There you can start re-labeling as you desire (label=root/home/shared), but you must do it consistently. In the runtime file there are 3 places, at the head, at the vfs node and in the routing rules (end of file). According to your posted link, at the end you seem not tried to modify the routing rules for block0/block1 (at least there are no out-commented lines by you as on the other 2 places), maybe you missed that ?

Aha! yes.

This XML declarative config has its upsides and down sides... it's
hard to tell which occurrences of names are definitions and which are
references, and what they refer to. I haven't built a good working
knowledge  of the "interpreter" in my head yet.

IIUC, the launcher pkg attribute refers to a path inside depot (though
I wonder how the depot root is found...). Inside the pkg, we expect to
find a runtime file, where the <requires> things seem to guide the
components gui into prompting for something... services?
What consumes a <runtime/>?
The launcher <config> is more straightforward; it's the config for the
init binary, documented in the book.
https://genode.org/documentation/genode-foundations/22.05/system_configuration/The_init_component.html
and in https://github.com/genodelabs/genode/blob/master/repos/os/src/init/config.xsd

The <content> seems to be input to a dynamic linker; I'm fuzzy on the
details, but so far that part "just works".

Then back to the <launcher>, its <route> info seems to be matched with
the <requires> part of the <runtime>.

<start>, <launcher>, and <runtime> seem to have some shared structure.

What's the binary of the tool for constructing the components graph?
I'm struggling to find it in
https://github.com/genodelabs/genode/blob/master/repos/gems/run/sculpt.run
I see <start name="leitzentrale" caps="2350" priority="-1">
but like so many others, it contains: <binary name="init"/>

-- 
Dan Connolly
http://www.madmode.com/



More information about the users mailing list