Beginner questions: Seoul, Rust, DDE, and system composition
Martin Stein
martin.stein at genode-labs.com
Fri Sep 15 10:12:57 CEST 2023
Hello Zach,
Welcome to the mailing list ;)
I can answer only one of your questions partially. But I hope this still
helps, and that others chime in to fill the gaps :)
On 14.09.23 22:59, Zachary Zollers wrote:
> [4] What is the best way to determine the dependencies of a component? How does the Sculpt visual composition system determine which sessions are required? When trying to run a complex component (e.g., a VMM) I often find myself doing a lot of trial and error with including libraries and starting necessary dependencies in the run script. Is there a better, or more consistent, way to determine dependencies?
Sculpt determines the required services of a subsystem by looking at the
<requires> tag in its runtime config. For instance, have a look at [1] -
it defines a lot of required services as well as restricting labels for
some. The same sub-system but with the ability to capture frame-buffer
data in the VM can be found in [2]. Consequently, it lists the same
services as [1] in <requires> but adds the Capture service. The first
listed service is the one who's route will be printed as connecting line
to your subsystem in the tree view. Some basic services (LOG, binary/lib
ROMs, PD, CPU) must not be listed in <requires> as they are routed
automatically. The list contains only those services that are routed by
the user in the deployment menu.
Furthermore, the required binary/lib files must be listed in the
<content> tag in the runtime file.
As far as I know, creating these two lists is still manual work of the
integrator. Now, I don't know if this is what you described but I'll
append my own procedure anyway:
When I try to create a package and its runtime file, I usually start by
creating a run script that runs my sub-system without package management
and, important, without default service-routes. Actually, at the
beginning, the script contains no service routes at all, so, that the
components have to tell me what they need. This way, I can iterate over
the requirements much faster than with a package-based system.
Additionally, I add routes only with the specific labels in this
process, so, I get to find also the name of each ROM file that should be
listed in <content>.
I would also appreciate a more comfortable solution for this. But,
admittedly, my frustration was not big enough until now in order to
prioritize it over my other work.
Does that answer your question?
Cheers,
Martin7
[1] repos/ports/recipes/pkg/vbox6/runtime
[2] repos/ports/recipes/pkg/vbox6-capture/runtime
*ü a>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xC965544047C34F92_and_old_rev.asc
Type: application/pgp-keys
Size: 8607 bytes
Desc: OpenPGP public key
URL: <http://lists.genode.org/pipermail/users/attachments/20230915/b8f44899/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <http://lists.genode.org/pipermail/users/attachments/20230915/b8f44899/attachment.sig>
More information about the users
mailing list