Libreboot 26.01 RC1 “Tenacious Tomato” released!

Leah Rowe

25 December 2025


Return to index

Article published by: Leah Rowe

Date of publication: 25 December 2025

Today’s Libreboot 26.01 RC1 revision is a testing release, whereas the previous stable release was Libreboot 20241206. This revised release log lists all changes as of today, 25 December 2025, since the Libreboot 20241206 release of December 2024.

You can find today’s release in https://rsync.libreboot.org/testing/26.01rc1/ or you can use one of the mirrors.

This is the first Release Candidate (RC1) in the Libreboot 26.01 release series, codenamed “Tenacious Tomato”. It is expected that new RCs will be issued weekly, between now and the time of the full release.

PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING, OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, here is the link again.

Open source BIOS/UEFI firmware

Libreboot is a free/open source 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 Debian is a Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as 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 Linux distro, providing a source-based package manager (called lbmk) which patches sources and compiles coreboot images. It makes use of coreboot for hardware initialisation, and then a payload such as SeaBIOS or GRUB to boot your operating system; on ARM(chromebooks) and certain x86 mainboards, we provide U-Boot (as a coreboot payload), which provides a lightweight UEFI implementation..

Detailed list of changes

Board support

As stated above, the following boards have been added:

More boards are planned, for the final release in late January 2026. Boards will be added when feasible, in each new RC.

Work is ongoing to integrate Google Chromebooks, by integrating the MrChromebox distribution of coreboot into Libreboot’s build system.

Revision updates

TODO: Only include the latest rev updates. Don’t mention earlier duplicates, unless there’s something special about them.

In descending order from latest changes to earliest changes:

Licensing

TODO write this section.

Security

In descending order from latest changes to earliest changes:

Feature changes

In descending order from latest changes to earliest changes:

Configuration changes

In descending order from the latest changes to the earliest changes:

Bug fixes

This combines both build system fixes, and changes to upstream sources (e.g. coreboot and various payloads like SeaBIOS/GRUB, utilities like flashprog, and so on).

The following bug fixes have been merged (in descending order from the latest changes to the earliest changes):

General code cleanup

Another bug focus in this release was to clean up the logic of Libreboot’s build system, and fix several bugs, especially those relating to error handling.

One of the bigger cleanups here is that previously, a lot of temporary files were placed under cache/, but the latter is meant for permanent files, not temporary files.

In descending order from the latest changes to the earliest changes:

Git log

This log shows all changes in today’s release, from 30 June 2025, ever since the Libreboot 20241206 release of 6 December 2025:

* a59fc6a353 Libreboot 26.01 RC1 Tenacious Tomato 
* b259f3493d update pcsx-redux openbios 
* a4ad3afdbb bump flashprog rev: ffcf92fb, December 2025 
* 68e0b5dddc init.sh: Explicitly export UTF-8 locale 
* b990d54cff grub modules: add more gcry_ ciphers 
* 5df6b924d7 bump seabios revision 
* 9228a0c02c update grub again, to 25b7f6b93 
* 512cce0770 GRUB: update to rev 2.14-rc1 December 2025 
* 8b338404e8 hp8300cmt and dell 780: use legacy verbs 
* 0ff8110a55 fix 3050micro vbt path again 
* ce302356fc coreboot/dell3050: fix VBT-related build error 
* 2fe3b6ee66 actually enable TBT on T580 
* 6e253b3e73 thunderbolt support for thinkpad t580 
* 9142c8b419 ThinkPad T580 support. 
* 992b03a383 coreboot/default: use 3rdparty/cmocka by default 
* e7628421d7 coreboot/default: add cmocka submodule 
* 946ede9e7d fix ifdtool build on coreboot/default 
* 24f25bf7bc update deguard 
* 63b527e8ff cb/default: bump to rev def7aa7094, December 2025 
* aa0e4205d6 re-base the T480 thunderbolt patch 
*   f3dc54432e Merge pull request 'T480: Add Thunderbolt support' (#387) from hustlerone/lbmk-alpine_ridge:master into master 
|\  
| * 809e5d29a4 T480(s): Add Thunderbolt support 
|/  
* ec8617f27a coreboot/t480s: fix headphone jack detection 
*   724f905aaf Merge pull request 'T480: Fix headphone jack detection' (#385) from Riku_V/lbmk:t480verbfix into master 
|\  
| * 2dea4b79b2 T480: Fix headphone jack detection 
|/  
* 9d740e9512 grub: add a keyboard layout for norway 
* 7a9977af72 rebase recent dell thermal safety patch 
*   efd17fde19 Merge pull request 'removed duplicate "payload_uboot" for e6230_12mb' (#374) from honzo/lbmk:e6230_12mb_deduplicated into master 
|\  
| * fda3ac975a removed duplicate "payload_uboot" for e6230_12mb 
* |   d1606ef11f Merge pull request 'fixed typo in "grub_scan_disk" for macbook11_16mb' (#375) from honzo/lbmk:macbook11_16mb_fixed_typo into master 
|\ \  
| * | 831fa657de fixed typo in "grub_scan_disk" for macbook11_16mb 
| |/  
* |   48b00ce3c8 Merge pull request 'config/coreboot/default: Disable Latitude early thermal shutdown' (#376) from nic3-14159/lbmk:mec5035-updates into master 
|\ \  
| |/  
|/|   
| * c0dab33972 config/coreboot/default: Disable Latitude early thermal shutdown 
|/  
* 1b10c072d3 tree.sh: tidy up check_gnu_path 
* 7ef7e02f73 lib.sh: reduce indentation in setvars 
* 214ed3efd2 get.sh: reduce indendation in fetch_targets 
* 9d6af0063b get.sh: reduce indentation in clone_project 
* d7869a56f5 WIP: chromebook integration script 
* 25f523bbac get.sh: return clone_project if multi-tree 
* bec7e6d4cb Revert "get.sh: don't frivolously copy tmp git clones" 
* f632b8aed7 Revert "get.sh: remove a redundant check" 
* e2a97455cc get.sh: remove a redundant check 
* b840cf3a83 get.sh: don't frivolously copy tmp git clones 
* 2aea7f6229 Revert "get.sh: make forcepull a macro" 
* b3232a7c4a get.sh: make forcepull a macro 
* 54aa5b7d32 tree.sh: unify -f/-F in case/switch handling 
* 96f786b962 tree.sh: convert do_make into a macro 
* 47f08e2e6d git: don't use review.coreboot.org as main 
* e1b6ccf69e xbmk: sort global variables alphabetically 
* d84a556bf0 get.sh: use the same directory map as --mirror 
* b333ddfe73 get.sh: use --keep-cr on git-am 
* d83dd506c2 get.sh: More reliable git remote caching 
*   18c63682e7 Merge pull request 'Add Fedora 43 to dependencies' (#364) from bauduser/lbmk:fedora43dependency into master 
|\  
| * 7b42779912 Add Fedora 43 to dependencies 
|/  
* 11a3e9d887 xbmk: minor code cleanup (79 character rule) 
* fb95e4ad68 tree.sh: add missing -F flag 
* ca5f0a5edd get.sh: use git-show instead, for rev checks 
* 8636d7497c rom.sh/tree.sh: clean up if_not_dry_build 
* 1b54c7a744 rom.sh: use if_dry_build macro 
* afccecbde0 rom.sh: don't run add_cbfs_option on dry builds 
* 7d597bc4a1 disable stack overflow debug on alderlake 
* c716341c13 cb/kabylake: don't hardcode power_on_after_fail 
*   b5ad829ffe Merge pull request 'config/coreboot/default: Add Haswell NRI SMBIOS type 16/17 patch' (#363) from noisytoot/haswell-nri-smbios-memory into master 
|\  
| * e82e2a1332 config/coreboot/default: Add Haswell NRI SMBIOS type 16/17 patch 
|/  
* 9b104fca44 init.sh: only create cache/ here 
* ee2bca65f6 Revert "init.sh: explicitly create cache/" 
* 23f98c2958 init.sh: explicitly create cache/ 
* 1e488aae78 Revert "remove unar from dependencies" 
* c1d6cd22c2 xbmk: don't call mkdir. use xbmkdir (new function) 
* f358cfaa55 coreboot/x2e_n150: fix the alderlake n fsp link 
* 6a00b7a584 coreboot/default: don't require alderlake fsp repo 
* 247cb85489 don't compress alderlake fsp 
* 183f378150 coreboot/x2e_n150: unset CONFIG_FSP_FULL_FD 
* 31fa7ea591 vendor.sh: re-do the previously reverted change 
* 2956fcc051 vendor.sh: fix setvfile 
* 8334c93dac release.sh: preserve clean sbase before building 
* 8969cc734f xbmk: use sbase sha512sum, not host sha512sum 
* e9a910b33c config/git: import suckless sbase 
* 2cfaba181b xbmk: rename cv variables, for clarity 
* 1943dba608 tree.sh: rename xtree to xgcctree, for clarity 
* 51e424c7d1 tree.sh: rename btype to buildtype, for clarity 
* d95af9ba44 vendor.sh: rename _t to blobtype, for code clarity 
* 63002732f5 tree.sh: rename _f to flag, for code clarity 
* b7a9aad9fc get.sh: delete tmp patch list when done 
* a115679c57 get.sh: sort patches when applying 
* 0776eb414c vendor.sh: make the fsp hack a bit cleaner 
* 70cdb03f7f vendor.sh: correction to fsp hack 
* 1eafcf9029 vendor.sh: minor cleanup 
* efd1db1ca3 release.sh: remove eval statement in nuke() 
* b4c7cac8a2 xbmk: rename the "dry" variable to if_not_dry_run 
* 9f84bd4f34 coreboot/mkhelper: don't use eval 
* 4f01dc704a xbmk: remove even more eval statements 
* 7f8d85140f xbmk: remove the setcfg function 
* 0a74cc8ec6 xbmk: clean up a few err calls 
* a09ec1d02b xbmk: remove more eval statements 
* 0605fbe720 xbmk: general cleanup: unroll condensed code lines 
* e1c70f4319 vendor.sh: remove superfluous AND 
* e1c580f6bc grub/xhci_nvme: fix target.cfg 
* 093606784a add fedora42 dependencies from bauduser 
* 5e35b0684d dependency/debian: libstdc++-arm-none-eabi-newlib 
* af88a066d0 grub/xhci: rename to grub/xhci_nvme 
* d90defeae3 mrc.sh: remove superfluous eval statement 
* a74af6aa05 tree.sh: remove superfluous eval statements 
* 15cefca84b rom.sh: remove superfluous eval statement 
* 2b4b5bf82e inject: remove superfluous use of eval 
* 85b10a674b init.sh: reduce the use of eval statements 
* 99f2c0fcf9 get.sh: reduce the number of eval statements 
* be1f4ebb9c get.sh: allow force-pull via -F instead of -f 
* 24f120d1b8 get.sh: only pull if the local revision is missing 
* 084b8b65c6 u-boot: make the libreboot logo rainbow again 
* 2ac51f442b init.sh: break up xbmk_set_env 
* 8b351e51aa tree.sh: break up check_gnu_path to subfunctions 
* 3b6d2b799c vendor.sh: break up the extract_kbc1126 subshell 
* 347330a611 coreboot/x2e_n150: rename config to fspgop 
* f272c4d1c4 rom.sh: support "fspgop" init mode 
* aa3ccf0433 fix up old comment in vendor/x2e_n150 
* b786918b2b vendor.sh: use bsdunzip, not unzip 
* c6939cf390 libarchive: also copy bsdunzip and bsdcpio 
* 06c1ed009d add -p flag to old me_cleaner too 
* e8a3cd8cd0 remove unar from dependencies 
* 8e8f29c2e5 vendor.sh: remove false error message 
* 4075c8be38 vendor.sh: use bsdtar, not unar 
* e527820ceb vendor.sh: don't use unrar 
* 7b297a44ce config/git: Support building libarchive 
*   d4f5fdec06 Merge pull request 'New mainboard: X2E_N150' (#361) from Riku_V/lbmk:x2en150 into master 
|\  
| * b4c3bafb0e New mainboard: X2E_N150 
* | 9da4fa64a6 coreboot/default: allow alderlake fsp in releases 
|/  
* c9d6143e20 gru bob/kevin: make u-boot bootflow timeout 8secs 
* fa6c3512d6 rom.sh: remove TODO note 
* 574fd30cde inject.sh: don't exit from patch_release 
* 4fbafaaa46 init.sh: remove comment in pybin 
* 204e310f5a get.sh: remove unnecessary check in try_copy 
* b4fbdb448d get.sh: rename try_file to try_fetch 
* e42cb4f4cd xbmk: tidy up some if statements 
* f5060232e1 init.sh: remove TODO note 
* 0303167e25 init.sh: create TMPDIR *after* suid check 
* 1a74172a17 release.sh: use cache src on release builds 
* 6bb4e2c72a init.sh: remove symlink check on XBMK_CACHE 
* dc722b5bb8 init.sh: switch back to old TMPDIR checks 
* 4686ba8a4a make notices a bit more readable 
* 5a8f350bc7 release.sh: fix typo in script: ./mk, not ./mx 
* 8347e2c85d xbmk: cleanup of recent code refactoring 
* 03bf6c185b mk: unroll condensed code lines 
* 0275c60111 get.sh: unroll condensed code lines 
* 193001bc71 init.sh: unroll condensed code lines 
* ace167445f inject.sh: unroll condensed code lines 
* 94ab695457 lib.sh: unroll condensed code lines 
* 8d5d6a3e2a mrc.sh: unroll condensed code lines 
* 45c4d4045c release.sh: unroll condensed code lines 
* f5c91ff0ee rom.sh: unroll condensed code lines 
* e282586427 tree.sh: unroll condensed commands 
* 8b3f476b57 vendor.sh: unroll condensed code lines 
* 6b796e2b4c init.sh: make TMPDIR *after* calling xbmkpkg 
* 2c02b17810 lenovo/t440p: add a target with 4mb cbfs 
* c11c5a7a14 Revert "xbmk: don't use backticks for command substitution" 
* 14bcb3a6fa config/dependencies: cleanup 
* fe301a019b vendor.sh: add missing error handle on sha512sum 
* c734a6e757 tree.sh: fix bad variable reference 
* 995963baf4 xbmk: much more verbose error messages 
* 7bed68f5b7 lib.sh: use xprintf in err() 
* edcf8cead8 lib.sh: use xprintf in x_ 
* 333739961a lib.sh: check args for errors in fx_ and dx_ 
* ce5127e46b inject.sh: add missing semicolon in case 
* 0deac58e41 vendor.sh: tidy up apply_deguard_hack() 
* c738698cca vendor.sh: tidy up extract_intel_me() 
* e9c7338cda vendor.sh: clean out 7ztest on startup 
* 07cda7fa12 vendor.sh: remove unnecessary rm -Rf command 
* 4999a49de3 xbmk: don't use backticks for command substitution 
* 5cfe54b06d Revert "inject.sh: put tmpromdel in xbtmp, not cache/" 
* 9d32af58eb Update arch dependencies 
* 269fa65b93 init.sh: write-protect the lock file on startup 
* dea587a16f Revert "git/grub: use codeberg as the main mirror" 
* c3e52bc2ee Revert "change grub git again" 
* a00f4153c6 Revert "vendor.sh: put _pre_dest in xbtmp, not cache/" 
* 2873ed5e7e Revert "vendor.sh: put appdir in xbtmp" 
* 1e07c4eb02 change grub git again 
* 53491bdca2 tree.sh: don't combine remkdir/cd gnupath 
* c4cd9c08df release.sh: delete xbmkwd on src tarballs 
* 4c74311eae vendor.sh: put appdir in xbtmp 
* a444910bf2 inject.sh: put tmpromdel in xbtmp, not cache/ 
* 23fb10c3f5 mk: include mrc.sh before inject.sh 
* 69934d18cc vendor.sh: put _pre_dest in xbtmp, not cache/ 
* 4475b4db4b init.sh/tree.sh: put PATH dirs in xbtmp 
* f5e8483f41 init.sh: bail if date is non-GNU (for now) 
* 882a6917bc lib/init.sh: sanitize the version string 
* 1c02f2a770 release.sh: put vdir in xmtmp, not XBMK_CACHE 
* 5096e0040f mk: hardened PWD check (deny symlinks) 
* d06d6a1905 git/grub: use codeberg as the main mirror 
* 92ecf145fa get.sh: put tmpgit in xbtmp 
* ddbefea475 Revert "get.sh: put tmpclone dirs in xbtmp" 
* aa38608bff Revert "tree.sh: add missing colon at the end of trees()" 
* f6d5b44757 Revert "vendor.sh: looser error handling on find_me" 
* c9a81292e5 vendor.sh: looser error handling on find_me 
* 769d645c2a init.sh: create separate lock in release dirs 
* 568887cd5e tree.sh: add missing colon at the end of trees() 
* 01a779d4eb get.sh: put tmpclone dirs in xbtmp 
* 0d107ad872 xbmk: remove xbloc, re-use xbtmp instead 
* 64b69907ab init.sh: put TMPDIR inside xbmkpwd, not /tmp 
* 8a8be1dec9 get.sh: remove unnecessary variable, repofail 
* 3af4c7bcb1 rom.sh: simplify rmodtool copy handling 
* bec4c63b25 release.sh: remove support for the -d flag 
* e059614589 get.sh xbget: don't use eval for file/dir checks 
* 934e89510e vendor.sh: remove unnecessary error check 
* b1f485d0f2 release.sh: fix broken release lock file handling 
* ed84d33e59 lib.sh and rom.sh: stricter mktemp usage 
* 40f064ae33 inject/vendor.sh: stricter set + usage 
* 24a8226fee init.sh: tidy up xbmk_set_env 
* 7c04cd37b5 init.sh: tidy up xbmk_child_set_tmp 
* 2d20be3d99 init.sh: remove unnecessary lockfile checks 
* c148b220d8 init.sh: move TMPDIR handling to own functions 
* f96bf2b2cd init.sh: prevent race condition with TMPDIR 
* bbce74d78a init.sh: MUCH safer TMPDIR handling 
* ad58364e18 mk: simplify the main script check 
* 09646783a5 config/dependencies: add --no-install-recommends 
* d9011da0eb inject.sh: redirect stderer to /dev/null FIRST 
* 50a0bac01c vendor.sh: tidy up extract_intel_me 
* 9fb707b49b rom.sh: safer use of cat in copyps1bios 
* 89238c0579 tree.sh: tidy up check_cross_compiler 
* 07562e3f28 tree.sh: don't re-check xgcc needlessly 
* 66f1be1ba7 tree.sh: check xgcc AFTER checking elfdir 
* c12965f8e4 lib.sh: safer pad_one_byte function 
* 7e6f52ec0a vendor.sh: use pad/unpad functions 
* 616ef52a6f lib.sh: additional error handling on cat 
* 41945a2220 tree.sh: Delete files *before* updating hashes 
* d44c143846 tree.sh: rename hashtype to hashname 
* 289c4e1c2f tree.sh: rename hashname to hashdir 
* b31f2387ee tree.sh: rename hashvar to badhashvar 
* 2c24b94d80 tree.sh: rename function and remove comments 
* ef79b11082 tree.sh: don't delete builds if tree==target 
* 1c5c28f2cb tree.sh: re-add comments to check_hashes 
* 3d5a6bccae tree.sh: unified project hash handling 
* a499d5bba2 rom.sh: Don't run mkhelpers if release=n 
* 84a1ff85b0 coreboot/default: rev 9e41c7cec7, 18 July 2025 
* cc2f08e7bb Revert "coreboot: rev 8b52167a9f 13 July 2025, rebase t480" 
* 32dfdfbb01 coreboot: rev 8b52167a9f 13 July 2025, rebase t480 
* 122d009af1 coreboot/default: probe EDID twice in libgfxinit 
* dac3d6d06a rom.sh: Don't build coreboot utils if dry=":" 
* 6f7525a5b3 cache coreboot builds in elf/ again 
* 7c6c9ff547 tree.sh: delete individual target builds if needed 
* fb95230a4c tree.sh: Remove redundant deletion 
* e25bca2ef7 T480/T480: Drop redundant PcieRpEnable from dt 
* cc82b733d3 tree.sh: Place target builds under tree/target/ 
* 9541dfcefa rom.sh: bump pcsx-redux copyright date to 2025 
* 91a63ccd1f hppro3500: enlarge CBFS to match the BIOS region 
* ed839db0a0 pcsx-redux: bump rev 8f8cc3d5, 20 June 2025 
* dd65f55b29 coreboot/default: bump rev 812d0e2f62, 5 Apr 2025 
* f6da49b3a7 deguard: bump to rev 0ed3e4f 
* 81dc1a7f89 GRUB: Bump to rev a68a7dece, 23 June 2025 
* 5b2661a485 SeaBIOS/default: Bump to rev b686f460, 28 Jun 2025 
* 248192ad9a ifd/hppro3500: use truncated ME, enlarge BIOS size 
* 1cd8353082 ifd/hppro3500: unlock regions by default 
* 67858207eb ifd/hppro3500: set HAP bit by default 
* a13772bf31 cb/hppro3500: use seagrub, not grubsea 
*   047ddf40d8 Merge pull request 'Add HP Pro 3500 Series' (#350) from JoelLinn/lbmk:feature-port-hppro3500 into master 
|\  
| * 587af4a7b6 Add HP Pro 3500 Series 
* d25aaac9ad lib.sh: remove erroneous break from fx_ 

Build testing

This release was built on the latest Debian 13 stable release, as of this day. It was also build-tested successfully on the latest Arch Linux updates as of 25 December 2025. Other distros (e.g. Fedora) are likely fine as well.

Markdown file for this page: https://libreboot.org/news/libreboot2601rc1.md

Site map

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