Canoeboot 20231026 released!

Leah Rowe in GNU Leah Mode™

26 October 2023


Return to index

Article published by: Leah Rowe in GNU Leah Mode™

Date of publication: 26 October 2023

libre BIOS/UEFI firmware

Canoeboot provides boot firmware for supported x86/ARM machines, starting a bootloader that then loads your operating system. It replaces proprietary BIOS/UEFI firmware on x86 machines, and provides an improved configuration on ARM-based chromebooks supported (U-Boot bootloader, instead of Google’s depthcharge bootloader). On x86 machines, the GRUB and SeaBIOS coreboot payloads are officially supported, provided in varying configurations per machine. It provides an automated build system for the configuration and installation of coreboot ROM images, making coreboot easier to use for non-technical people. You can find the list of supported hardware in Canoeboot documentation.

Canoeboot’s main benefit is higher boot speed, better security and more customisation options compared to most proprietary firmware. As a libre software project, the code can be audited, and coreboot does regularly audit code. The other main benefit is freedom to study, adapt and share the code, a freedom denied by most boot firmware, but not Canoeboot!

Work done since last release

GRUB LUKS2 now supported (with argon2 key derivation)

GRUB payloads in Canoeboot have a newer version of libgcrypt which supports argon2 these days, so you can easily use LUKS2.

Simplified commands (build system)

You can find information about using the build system in the Canoeboot build instructions and in the cbmk maintenance manual.

TWO massive audits. 50% code size reduction in cbmk.

Changes include things like vastly reduced code complexity (while not sacrificing functionality), greater speed (at compiling, and boot speeds are higher when you use the GRUB payload), many bug fixes and more.

Serprog firmware building (RP2040 and STM32)

In addition to coreboot firmware, the Canoeboot build system (cbmk) can now build serprog firmware, specifically pico-serprog and stm32-vserprog, on all devices that these projects support.

The serprog protocol is supported by flashrom, to provide SPI flashing. It can be used to set up an external SPI flasher, for flashing Canoeboot externally.

Updated U-Boot revision (2023.10)

Alper Nebi Yasak submitted patches that update the U-Boot revision to the latest revision as of this release.

Coreboot, GRUB, U-Boot and SeaBIOS revisions

In Canoeboot 20231026 (this release):

Build system tweaks

resources/ now config/

The resources/scripts/ directory is now script/, and what was resources/ now only contains configuration data plus code patches for various projects, so it has been renamed to config/ - I considered splitting patches into patch/, but the current directory structure for patches is not a problem so I left it alone.

Also, the IFD/GbE files have been moved here, under config/ifd/. These can always be ge-generated if the user wants to, using ich9gen, or using a combination of bincfg and ifdtool from coreboot, and nvmutil (to change the mac address) from Canoeboot.

Full list of changes (detail)

Sic

Hardware supported in this release

All of the following are believed to boot, but if you have any issues, please contact the Canoeboot project. They are:

Servers (AMD, x86)

Desktops (AMD, Intel, x86)

Laptops (Intel, x86)

Laptops (ARM, with U-Boot payload)

Downloads

You can find this release on the downloads page. At the time of this announcement, some of the rsync mirrors may not have it yet, so please check another one if your favourite one doesn’t have it.

Special changes

Besides deblobbing, there are two critical differences in how Canoeboot’s build system works in this release.

The Canoeboot build system is about 1250 sloc when counting shell scripts of the build system; considerably smaller than older revisions, accounting for an approximate 50% reduction in the amount of code.

That ~1250 sloc in Canoeboot is with all the extra features such as serprog integration and U-Boot support (on actual motherboards, that you can flash it with). The build system in Canoeboot 20231026 is extremely efficient.

Post-release errata

The following binary blobs were overlooked, and are still present in the release archive for Canoeboot 20231101 and 20231026; this mistake was corrected, in the Canoeboot 20231103 release, so you should use that if you don’t want these files. They are, thus:

Thanks go to Craig Topham, who reported this issue.

The Canoeboot 20231026 and 20231101 release tarballs will not be altered, but errata has now been added to the announcement pages for those releases, to let people know of the above issue.

You are advised, therefore, to use the Canoeboot 20231103 release.

Update on 12 November 2023:

This file was also overlooked, and is still present in the release tarball:

This has now been removed, in the Canoeboot git repository (cbmk.git), and this file will absent, in the next release after Canoeboot 20231107. Thanks go to Denis Carikli who reported this. The patch to fix it is here:

https://codeberg.org/canoeboot/cbmk/commit/70d0dbec733c5552f8cd6fb711809935c8f3d2f3

Markdown file for this page: https://canoeboot.org/news/canoeboot20231026.md

Site map

This HTML page was generated by the Canoeboot Static Site Generator.