70 lines
3.5 KiB
Markdown
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*
|