On Mon, Jan 30, 2023 at 2:08 PM Alexander Boettcher
<[email protected]> 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/

_______________________________________________
Genode users mailing list
[email protected]
https://lists.genode.org/listinfo/users

Reply via email to