building on linux
Norman Feske
norman.feske at genode-labs.com
Sun Dec 25 11:50:34 CET 2022
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
More information about the users
mailing list