Canoeboot 20240504 released!

Leah Rowe

4 May 2024


Return to index

Article published by: Leah Rowe

Date of publication: 4 May 2024

Introduction

Canoeboot is a free/libre BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an operating system (e.g. Linux/BSD). It is specifically a coreboot distribution, in the same way that Trisquel is a GNU+Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. From a project management perspective, this works in exactly the same way as a GNU+Linux distro, providing the same type of infrastructure, but for your boot firmware instead of your operating system. It makes use of coreboot for hardware initialisation, and then a payload such as SeaBIOS or GNU GRUB to boot your operating system; on ARM(chromebooks), we provide U-Boot (as a coreboot payload).

Canoeboot provides many additional benefits such as fast boot speeds, greater security and greater customisation, but the primary benefit is software freedom. With use of GRUB in the flash, you can make use of many advanced features such as the ability to boot from an encrypted /boot partition and verify kernel GPG signature at boot time. Canoeboot’s GRUB payload is heavily patched; for example, today’s release uses GRUB based on version 2.12, but Canoeboot adds argon2 KDF support (for LUKS2) and xHCI support - you can use USB 3.0 devices natively, in GRUB, including distro install media via USB3. Some desktops supported by Canoeboot can have USB3 cards installed on them.

Another example of the type of benefit you could get from Canoeboot: you can boot from NVMe SSDs in the SeaBIOS payload, if your board can take them (e.g. desktop board with an NVMe adapter in the PCI-E slot). If your vendor’s BIOS/UEFI firmware only supports SATA, then this is a nice bonus for you. With Canoeboot, you get continued firmware updates over time, adding new features on both older and newer hardware. Canoeboot still provides updates for machines that are nearly 20 years old, while also supporting newer machines. More hardware support is being added all the time!

These and other examples are just the start. Canoeboot provides a superior boot experience compared to proprietary BIOS/UEFI, giving you the same power and level of control that a fully free GNU+Linux system would afford. It’s your computer to boot however you wish. Canoeboot lets you get more out of the hardware. All your favourite GNU+Linux distros are compatible, even Qubes(on most machines).

If you’re fed up of the control that proprietary UEFI vendors have over you, then Canoeboot is for you. Although many would agree that it is a major step forward for most users, it’s actually a conservative idea socially. It used to be that computers were much more open for learning, and tinkering. Canoeboot implements this old idea in spirit and in practise, helping you wrest back control. Unlike the hardware vendors, Canoeboot does not see you as a security threat; we regard the ability to use, study, modify and redistribute software freely to be a human right that everyone must have, and the same is true of hardware. Your computer is your property to use as you wish. Free Software protects you, by ensuring that you always have control of the machine.

Hardware supported in this release

This release supports the following hardware:

Servers (AMD, x86)

Desktops (AMD, Intel, x86)

Laptops (Intel, x86)

Laptops (ARM, with U-Boot payload)

Highlights

S3 fixed on GM45 thinkpads

This was broken in the previous Canoeboot release, but now it works again.

S3 suspend/resume (when you put the laptop to sleep and later wake it up).

Modest code size reduction

See: Libreboot build system audit 4

These and subsequent changes were adapter for today’s release. The build system has been further optimised, both in terms of code size and performance.

Canoeboot is maintained in parallel with Libreboot, by the same person, so a lot of code is shared back and forth between the two, while ensuring that Canoeboot strictly complies with the GNU Free System Distribution Guidelines, or GNU FSDG for short.

GRUB 2.12 revision now used

The previous Canoeboot release used a revision from GRUB 2.12-rc1, but now it uses the GRUB 2.12 released during December 2023, with some additional revisions and patches on top of that.

GRUB support for EFI System Partition

We don’t use UEFI on x86, but the GRUB config in Canoeboot’s GRUB payload has now been modified, to also scan grub.cfg from EFI/ directories. It also now scans directly for extlinux and syslinux configs, in addition to GRUB configs (GRUB can parse syslinux/extlinux configs). This should make Canoeboot’s GRUB payload more compatible with a wider variety of distro setups.

The above change pertaining to ESP has also been applied to booting of installers (e.g. USB media). Syslinux/Extlinux/GRUB config scanning has been merged together there, so now a lot more distro installers should boot automatically, without manual tweaking/intervention from the user.

U-Boot release script

The script at script/update/release now supports generating standalone U-Boot source archives, like so:

./update release -m u-boot

The usual -d option also works, for specifying a directory other than release/. Canoeboot still provides U-Boot embedded within the larger source release archive, and does not yet actually provide U-Boot as a standalone project, but some people may find this useful.

Flashprog now used, not flashrom

Essentially, flashprog has better leadership and is more stable than flashrom; flashrom has had new leadership for a while now, and in my view they are not doing a very good job. That is the executive summary; the full reasoning, again, can be found in the Libreboot 20240225 release.

Flashprog started due to disagreement between its founder (Nico Huber) and the new leadership of the flashrom project. Flashprog focusus on stability, while also adding newer chips all the time. Indeed, flashrom started becoming unreliable on a lot of older platforms such as i945 thinkpads, whereas flashprog is more stable.

Canoeboot will use flashprog from now on, not flashrom.

Work done since Canoeboot 20231107

The following log will now acount for changes since Canoeboot 20231107, from most recent descending to very earliest commits. The most interesting changes are highlighted in bold:

Disabled boards

Canoeboot’s build system can be configured to exclude certain boards in release archives, while still permitting them to be re-built.

All of the following boards have been disabled in the build system:

D510MO and D945GCLF images not included either, due to lack of testing.

All other boards have ROM images in this release.

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

Subscribe to RSS for this site

Site map

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