cbmk/README.md

70 lines
3.5 KiB
Markdown

Klompboot
=========
Software voor de vrijheid!
This version, from the "klompboot" branch of canoeboot, is a special version
of Canoeboot. It only builds for x86 machines, and does not have release
scripts, so the deblobbing has also been removed. The codename for this
version is *klompboot*. *Klompen* (plural) are wooden shoes popular in the
Netherlands, and the name *Canoeboot* was coined because *boot* means *boat*
in Dutch; it was going to be called Kanuboot as a joke, originally, but it
was named Canoeboot instead. Then I thought: what might you wear while riding
in a canoe?
*Klompen* enable you to walk, while a *canoe* will allow you to travel via
many of the Netherlands' beautiful rivers. Klompen are nimble footwear, light
and simple to use.
Ok, what's this about?
----------------------
Coreboot's own build system skips downloading blobs during checkout, if
you omit the `--checkout` argument in git submodule update. Since the release
scripts are not there, the few blobs that coreboot overlooked shouldn't be
a problem for FSF stans. Thus, *klompboot* could be considered a *rolling
release* FSDG-aligned coreboot distro. Support for U-Boot and ARM could be
re-added, but the purpose of klompboot was to be small, and most people who
use FSDG coreboot are on GM45 thinkpads or AMD fam15h based boards anyway. The
purpose of klompboot is to be *simple*. If you want to use the RK3399 machines,
with U-Boot, just use regular Canoeboot or Libreboot. Similarly, the serprog
firmware build scripts have been removed - ditto, use Libreboot/Canoeboot for
these. The purpose of klompboot is to provide an extremely simple build system
for building coreboot images, targeting x86 machines exclusively.
Additionally: `CONFIG_USE_BLOBS` is not enabled, on each given mainboard
configuration. Each coreboot tree that *would* use microcode has been patched,
as in Canoeboot proper, to never attempt adding microcode, even if told to, so
there's no risk of that either (which, if not avoided, would either add them,
or more likely result in a build error since `CONFIG_USE_BLOBS` is disabled).
This special branch of Canoeboot was made as part of an experiment, to see how
small the build system could become, reducing the functionality so that it is
similar to the Libreboot 20220710 build system in function, but with the modern
lbmk redesign based on the four lbmk audits of 2023, and with modern code
revisions as of January 2024 - so for example, it uses GRUB 2.12.
The reason 20220710 was focused on, for comparison, is that the featureset of
klompboot really is about the same as that; 20230710's release build scripts
were much simpler, about 100 sloc for `src` and `roms` release scripts. Alas,
Libreboot 20220710's build system was 2117 source lines, versus
klompboot's very tight 803 lines of code, but klompboot is vastly superior
in terms of features and quality (and actually supports 1 additional board
in klompboot, namely the Dell Latitude E6400).
803 code lines, counting `build`, `script/*/*` and `include/*` in
the `sloccount` utility by David Wheeler.
By comparison, Canoeboot cbmk is 1127 code lines (in the shell scripts that
make the build system), on the revision that the first *klompboot* revision
was based on, namely `102ce12cea023783729d6a2cd1576afc95bf7540`.
This version of Canoeboot was made for fun, and will not be used officially,
and it should not be used in production.
This readme is licensed under Creative Commons Zero 1.0, which you can find
the text of here:
https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt
tl;dr klompboot was done *for science*