Hi Will,

1. What distro (exactly) do y'all use - it says Ubuntu LTS in the docs - so Ubuntu 22.04.1 LTS is the current version - is that it? I have the luxury of picking whatever I like (thankfully, I'm a debian user, so Ubuntu/Mint/Debian are fine with me)

I'm currently using Debian 10.5 (bullseye), downloaded via cnuke's download_debian package.

2. If I want to change out the wifi firmware and edit the config files, do I need to just tweak the files and build the bootable image or do I need to do the build Sculpt from source thing?

Building the Sculpt image means building from source. However, you don't need to compile everything from scratch. To fastest way would be to first follow the steps "Building the boot image" based on the binary packages published by Genode Labs [1], then only tweak the wifi driver, and re-build the image (step 7). The following hints may hopefully help you along the way:

1. Ensure that you have checked out Genode's 'sculpt-22.10' tag [2]
   or a branch based on this tag. Personally, I keep my personal tweaks
   of Sculpt on a dedicated branch [3]. This is important in order to
   ensure that the source code you are using is consistent with the
   official 'genodelabs' binary packages.

2. While working on the wifi driver, you can tell the build system to
   build only this single component, not all of Sculpt. So you can
   quickly catch compile-time errors.

   build/x86_64$ make drivers/wifi

3. When finally rebuild Sculpt (step 7), tell the build system to
   update the depot content (the binary packages Sculpt is made of)
   as needed. You can do that by uncommenting the following line
   in your build/x86_64/etc/build.conf

   RUN_OPT += --depot-auto-update

   Now, when issuing the 'make run/sculpt ...' command, you should
   see the build system checking all the depot archives, and creating
   a new version for the wifi-related things that you just touched.
   After the build, check the git status and commit the changed
   version hashes. So you can reproduce the exact same version later.

4. If you want to experiment with customizing Sculpt's components at
   source-code level, you may find the additional documentation at [4]
   useful. Personally, I love the 'build:' feature. When adding a line
   like the following to repos/gems/sculpt/default-pc.sculpt, one can
   prompt the build system to build this specific component and
   integrate the result into the sculpt image. E.g.,:

   build: server/nitpicker

   In this example, the nitpicker GUI server gets built from source
   and all other components are taken from the binary packages.

   With the '--depot-auto-update' disabled, this creates the
   customized image really quick (just a few seconds) and you don't
   need to deal with updating depot archives at each iteration.

   Maybe, this would work for your wifi tweaks as well, but I'm not
   100% sure because the change may affect the list of firmware files.
   Well, it's worth trying.

[1] https://genode.org/documentation/articles/sculpt-22-10#Building_the_boot_image
[2] https://github.com/genodelabs/genode/releases/tag/sculpt-22.10
[3] https://github.com/nfeske/genode/commits/sculpt_22_10
[4] https://genode.org/documentation/release-notes/22.02#Framework_for_special-purpose_Sculpt-based_operating_systems

Happy hacking!

Norman

--
Dr.-Ing. Norman Feske
Genode Labs

https://www.genode-labs.com · https://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth


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

Reply via email to