Libreboot 20240126 released!

Leah Rowe

26 January 2024

Return to index

Article published by: Leah Rowe

Date of publication: 26 January 2024


This new release, Libreboot 20240126, released today 26 January 2024, is a new testing release of Libreboot. The previous release was Libreboot 20231106, released on 6 November 2023.

Libreboot 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 Libreboot documentation.

Libreboot’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 Libreboot! Booting Linux/BSD is also well supported.

Testing needed!

The coreboot revision has been updated very recently. Make sure to have external flashing gear ready just in case!

Work done since last release

New mainboards supported

These new mainboards have been added:

Conversely, the ThinkPad X201 was removed.

S3 fixed on GM45 thinkpads

The new coreboot revision includes a fix within it that fixes S3 suspend/resume on GM45 thinkpads (e.g. X200, T400). This was broken in the previous Libreboot release, but now it works again.

Modest code size reduction

See: Libreboot build system audit 4

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

GRUB 2.12 revision now used

The previous Libreboot release used a revision from GRUB 2.12-rc1, but now it uses the GRUB 2.12 released during December 2023.

GRUB support for EFI System Partition

We don’t use UEFI on x86, but the GRUB config in Libreboot’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 Libreboot’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.

Summarised changes since 20231106

The changes mentioned above are only some of the changes made in this release.

And now, the full list of changes, in order from recent to oldest (newer changes first):

Exact git log, relative to 20231106:

* 7f0ca545 Libreboot 20240126 
* 9071160c also reset xtree/tree_depend here 
* 39688ebe update/trees: reset xtree/tree_depend before build 
* e5ebaa85 update config/git/docs to latest revs 
* 0a24b2e6 dell/e6*30: use generic PS2K/PS2M EISAID strings 
* 614c5efa update coreboot/dell to same rev as default 
* 4a6dc555 coreboot/default: update coreboot to January 2024 
* ece54631 script/vendor/inject: remove erroneous check 
* 8b4a4f79 fam15h boards: define xtree 
* dcf7da9a coreboot/fam15h_udimm: define xtree 
* f72a72af don't download projects on release archives 
* 435441d0 update/release: generate changelogs 
* a225e4d5 fix amd mainboard configs 
* c9961182 fix bad call to ./update 
* 3e7e0c7d support downloading dependency trees 
* 8f3d3ead re-use crossgcc builds on the coreboot trees 
* 8a9c70f2 allow multitree projects to define xgcc tree 
* c6d243af u-boot: don't define xarch in default 
* 9877eb09 coreboot/*/target.cfg: don't define xarch 
* e329b365 grub/target.cfg: move --disable-werror 
* b71d4fd0 coreboot/fam15h: disable -Werror on binutils 2.32 
* 1d971fcd grub: use --disable-werror on ./configure 
* 33e25a33 dependencies/arch: add pandoc to dependencies 
* 37817e6b GRUB: insert only 1 keymap per board, in cbfs 
* df007d22 build/roms: err if -k layout doesn't exist 
* d44c9551 build/roms: regression fix: uninitialised variable 
*   2b6beaf2 Merge pull request 'config/dependencies/trisquel: replaced package from ttf-unifont to fonts-unifont' (#177) from goodspeed/lbmk:master into master 
| * 59096d8d config/dependencies/trisquel: replaced package from ttf-unifont to fonts-unifont 
* 09bed9a4 REMOVE MAINBOARD: lenovo x201 
* 401c0882 NEW MAINBOARD: HP EliteBook 820 G2 
*   a8a7a51b Merge pull request 'Dell-flash-unlock README updates' (#175) from nic3-14159/lbmk:dell-flash-unlock-updates into master 
| * bdd32a5c README.html: Add Latitude E7270 as supported 
| * 051b17f4 README.html: Add notes about iopl and AC adapter requirement 
| * d2de03ce README.html: List E6520, E5530, and M4800 as supported 
* f5b04fa5 build/roms: tidy up payload configuration handling 
* 0b081218 build/roms: remove unused variable 
* 4870e84e build/roms: don't needlessly re-build grub.elf 
* 0e955f1e build/roms: create elf/grub if non-existent 
* 3b66a5bb git.cfg: simplified revision checking 
* a7f58abb fix oversight in previous commit 
* 2d7e7306 build/roms: rename more functions for clarity 
* 62a5f543 build/roms: rename payload functions for clarity 
* 042c7877 build/roms: simplify seabios dependency check 
* fcf2b2bb build/roms: simplify grub dependency check 
* 535c9007 add copyright 2024 leah rowe to edited files 
* cea88fa8 simplify submodule handling in git_prep 
* 1fcbadb8 further simplify git_prep 
* 48551ced unify am/submodule and tree copying 
* ce67c99f cleanup: git am handling (remove patchfail) 
* e6953dc4 clean up handling of tmp_git_dir 
* d819403a fix regression: patches before submodulse 
* f4a14bd9 clean up git submodule/am handling 
* 11a82163 Bump GRUB to 2.12 release
* f3098f56 multi-tree: grab submodules *after* patches 
* 5fb6e36f update/trees: clean up the coreboot-version check 
* 4c9ee172 update/trees: support custom make/autogen argument 
* c6a0e495 update/trees: generic cmake handling 
* 30337b8f update/trees: avoid namespace clash in function 
* b0615581 update/trees: dont hardcode autoconf/bootstrap arg 
* eb3a8e2b unify script/update/trees and script/build/grub 
* 34ded35f lbmk scripts: general code cleanup 
* 4e067799 disable u-boot on x86 qemu 
* bc87b5f6 lbmk scripts: general code cleanup 
* 0c1d08d8 build/serprog: err if basename fails 
* eff9130b update/trees: further simplify crossgcc handling 
* 6752780f coreboot: update hp elitebook configs 
*   15298985 Merge pull request 'Add HP 8300 CMT port' (#173) from Riku_V/lbmk:hp8300cmt into master 
| * 74147ea4 Add HP 8300 CMT port 
* 0aca6332 lbmk scripts: shorter code lines 
* 575332f2 fix flashprog build error (implicit enum typecast) 
* b4ab3057 lbmk scripts: general code cleanup 
* 38a7aa31 build/roms: rename two functions for clarity 
* 746d9cad build: remove test command 
* 655d3cdc lbmk scripts: general code cleanup/optimisation 
* 25f9d948 git/pico-serprog: update revision again 
* e0fee7a4 git/pico-serprog: update revision 
* a48b3841 build/roms: improved error handling for roms 
* 33695a56 build/roms: remove redundant check 
* d5f8f657 dell/e6400nvidia_4mb: new configuration (nvidia) 
* 9d5d98eb set version/projectname properly 
* aa525142 update/trees: fix infinite loop 
* 465077bc vendor/download: check whether configs exist first 
* 39293279 vendor/inject: fix dodgy error check (cd command) 
* f44b99c8 don't delete microcode updates in rom images 
* 72cd169e update/release: don't test ./vendor inject 
* e8eb52f8 update/release: don't insert crossgcc tarballs 
* b0e5fc9d lbmk scripts: general code cleanup 
* b111f484 build/serprog: general code cleanup 
* 2f98ca6d build: simplified TMPDIR handling 
* ab65ea4c general code cleanup 
* fa25414b run debugfs from extract_partition 
* 8a875722 general code cleanup 
*   12e644b3 Merge pull request 'hp-ec-fw' (#172) from Riku_V/lbmk:hp-ec-fw into master 
| * 584c66e9 rename hp elitebook ec fw after rom families 
| * f7fda791 document hp laptop rom families 
* 92986f0c build/roms: remove modify_coreboot_rom() 
* 493ebdfb remove redundant extraction logic 
* 1153bc3b don't run the shellball. use unzip. 
*   28dfd91a Merge pull request 'hp8460pintel: actually enable vbt' (#171) from Riku_V/lbmk:vbt8460p into master 
| * aa4160e3 hp8460pintel: actually enable vbt 
* 3ccf1941 update coreboot configs 
* 95788059 update/trees crossgcc: call err if arch isn't set 
* 90ac30b1 update/trees: simplified crossgcc handling 
*   4711098e Merge pull request 'config/ifd/xx30: Fix 16_ifd component density and count' (#170) from nic3-14159/lbmk:xx30_16_ifd_fix into master 
| * dbec5bf3 config/ifd/xx30: Fix 16_ifd component density and count 
* |   4fb48595 Merge pull request 'Add HP EliteBook 8460p' (#169) from Riku_V/lbmk:hp8460p into master 
|\ \  
| |/  
| * b0b4f86b Add HP EliteBook 8460p 
* | 7f98ab8e simplify submodule handling 
* | 124b5beb build initialise_command: simplify handling 
* | 9c00746b update/release: minor cleanup 
* | f6ebab57 scan_config: clean up if/else block 
* | 3b7009aa print error on stderr, not stdout 
* | c75ca20c don't rely on zero status on printf 
* | 578f105d git_am_patches: reduce indentation 
* | cbd19d81 fetch_config: simplify tree name check 
* b9f69f26 grub.cfg syslinux: support scanning /boot/EFI/ 
* 766bb46c grub.cfg: fix path 
* 430918ee grub.cfg: handle btrfs subvols for extlinux.conf 
* d74c6c71 grub.cfg: scan extlinux/extlinux.conf 
* f1d6c143 grub.cfg: support grub and extlinux on ata/ahci 
* 6db94c1a grub.cfg: merge isolinux/grub usb menuentries 
* c4544e04 grub.cfg: handle extlinux in the default menuentry 
* eaa1341b grub.cfg syslinux: support ESP and extlinux.conf 
* b817001e grub.cfg: don't boot linux without a grub.cfg 
* 2d6e5ca4 grub.cfg: scan lvm volumes last 
* 49eed9ac Revert "grub.cfg: try luks2/crypto-lvm before non-crypto" 
*   aed4dff8 Merge pull request 'Dell-flash-unlock README updates from upstream' (#168) from nic3-14159/lbmk:dell-flash-unlock-updates into master 
| * d207e9bc README.html: Add possibly not working systems 
| * ab59f912 README.html: Add E6500, E6420, and E6530 as supported 
| * ca28255d README.html: Add instructions for relaxing memory permissions 
| * f4819081 README.html: Add references to Open Security Training 
* | 20389655 grub.cfg: try luks2/crypto-lvm before non-crypto 
* |   3a36c827 Merge pull request 'master' (#165) from risapav/lbmk:master into master 
|\ \  
| * | 15226f9e added x220edp_8mb 
| * | 1c337ac7 added x220edp_8mb 
| * | e6629606 added x220edp_8mb 
| |/  
* |   0a8ef113 Merge pull request 'Update config/grub/config/grub.cfg' (#167) from semigel/lbmk:semigel-btrfs-subvol-patch-1 into master 
|\ \  
| |/  
| * ababbc09 Update config/grub/config/grub.cfg 
* 39a3de57 remove DEBUG handling in lbmk (not needed) 
* 1eb4df67 fix several shellcheck warnings 
*   54ca5f24 Merge pull request 'config/dependencies/debian: add unifont-bin & xfonts-unifont' (#163) from Riku_V/lbmk:debgrub into master 
| * 2e6073f2 config/dependencies/debian: add unifont-bin & xfonts-unifont 
* | 2e779a54 handle errors on exits from subshells 
* | 9558e2fc improved safety/error handling on multitree git-am 
* | 7af200a1 Merge pull request 'fix void dependencies: openssl-devel' (#161) from Riku_V/lbmk:fixvoid into master 
| * 6d8d2e75 fix void dependencies: openssl-devel 
*   cb3fad07 Merge pull request 'fix void dependencies: freetype-devel' (#160) from Riku_V/lbmk:fixvoid into master 
| * 01a82431 fix void dependencies: freetype-devel 
*   5a6dec97 Merge pull request 'fix void dependencies typo' (#159) from Riku_V/lbmk:fivoid into master 
| * 50bfe1ca fix void dependencies typo 
* 4e00ac00 revert flashprog back to version 1.2 
* 83c8248f dependencies/debian: fix libfreetype-dev 
* 39aad578 grub: re-add fat/nt file system modules 
* 47ef411e Bump GRUB revision to 8 November 2023 revision 
* ce1176f5 fix typo in help text 
* 70882902 build: set --author when running git init 
* 5af3ae05 lbmk: don't use status for unconditional returns 
* 64f93374 lbmk: support showing the revision in help text 
* f4b2a588 build: don't generate version/versiondate as root 
* c4d90087 add grub mods: diskfilter,hashsum,loadenv,setjmp 
* d0d6decb re-add grub modules: f2fs, json, read, scsi, sleep 
*   f60286a3 Merge pull request 'Dell Latitude E6530 support' (#151) from nic3-14159/lbmk:e6530 into master 
| * 36d4c906 Add Dell Latitude E6530 support 
| * 8bb95639 config/ifd: Rename e6430 to dell_ivybridge 
*   4d7cb99c Merge pull request 'config/coreboot/e6430_12mb: Fix configs' (#150) from nic3-14159/lbmk:e6430-config-fixes into master 
| * a02c7e31 config/coreboot/e6430_12mb: Fix configs 
* d3ade208 Merge pull request 'nvmhelp' (#152) from Riku_V/lbmk:nvmhelp into master 
* 86608721 nvmutil: print usage 
* f12f5c3a nvmutil: fix makefile 


Vendorfile inject script will report an error when inserting for HP 820 G2, because the refcode is compressed via -c lzma option in cbfstool (or it is compressed by the coreboot build system, if building from lbmk directly). The way this compression is handled produces a result that is non-deterministic. Prior to scrubbing of vendorfiles (when a release is build), ROMs are hashed so that they can be checked during insertion post-release.

If you’re in any doubt whatsoever, simply build this ROM from source, using either the (source code) release archive, or from lbmk.git.

The 820 G2 ROMs have been excluded in rsync, so you must build this from source.You can build it from source via the source code tarball in the release, or from lbmk.git.

Markdown file for this page:

Subscribe to RSS for this site

Site map

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