On Mon, Jan 30, 2023 at 2:08 PM Alexander Boettcher alexander.boettcher@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/l...
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/s...
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_configurati... and in https://github.com/genodelabs/genode/blob/master/repos/os/src/init/config.xs...
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"/>