% Libreboot 20230413 released! % Leah Rowe % 13 April 2023
IMPORTANT ADVICE: PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING LIBREBOOT.
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 the Libreboot documentation.
The last Libreboot release, version 20230319, was released on 19 March in 2023. This new release, Libreboot 20230413, is released today on April 13th, 2023.
This is marked as a testing release, though it is basically stable. It is a bugfix release, relative to Libreboot 20230319. In addition to this, massive code cleanup has been performed on parts of the build system.
The priority of this release has been build system fixes/improvements. For the time being, no more code changes will be made unless needed, in coreboot, for existing supported hardware; the focus is going to be on adding more boards to Libreboot, to support more hardware. I've been on a spree, buying lots of mainboards that coreboot supports, that would be interesting in Libreboot.
This release was build-tested on Debian Sid, as of 13 April 2023. Your mileage may vary, with other distros. Refer to Libreboot documentation.
ASUS KGPE-D16 and KCMA-D8 needed for testing!
These boards still haven't made it back to Libreboot, but I wish to re-add them in a future release. If you can give/loan me a fully assembled workstation with one (or both) of these, I would appreciate it. Please get in touch!
For more detailed change logs, look at the Git repository. This is a summary of changes.
Zero code changes within coreboot on any boards, but the build system went through a mild overhaul:
util/nvmutil
, and improved error handling.mrc.bin
insertion is now correct, on the blobutil
script. In the previous release, Libreboot's build system inserted this at
the wrong location in the ROM, after downloading it; coreboot's own build
system does it correctly, and that is used when compiling, but post-release
ROM images have it inserted with equivalent logic in the Libreboot build
system, instead. - NOTE: libre raminit is also available, if you choose
the ROM images with t440p_12mb
in the filenames, whereas t440pmrc_12mb
images need mrc.bin
for raminit. More info about this is in the previous
release.As alluded to and applied by the above text, T440p/W541 thinkpad images that
use mrc.bin
have been re-added. Libreboot supports experimental raminit on
these boards, where the MRC file is not required, but it also provides ones
that use it, so that users can choose which one they want.
More information this is available, in the previous Libreboot 20230319 release announcement.
Changelog:
blobutil/inject
: Relative to the fix below (courtesy shmalebx9
), the
ROM image archives in releases now contain lists of SHA1 hashes, matching
what each file should be when running blobutil/inject
blobutil/inject
: It is now possible to insert MRC and neutered ME images,
where required on specific mainboards, into all ROM images of a given
tar archive, in addition to single ROM images. The patch for this is
courtesy of Caleb La Grange (shmalebx9
on libreboot IRC)util/ich9utils
: Merged it back into lbmk, rather than keeping it as a
separate repository. It is now directly part of the Libreboot build system,
once again.util/nvmutil
: Major code cleanup; reduced SLOC count to 315 source lines,
whereas it was 386 code lines in the previous release. The compiled binary
sizes have been reduced by 7%, as tested with TCC on an x86_64 host. This
code size reduction is provided, without reducing any functionality.util/nvmutil
: Fixed faulty check for MAC address 00:00:00:00:00:00
- the
total was being reset for each word, wrongly. This has been corrected.blobutil/download
: now supports extracting me.bin
from LZMA archives, in
addition to inno archives; in practise, lbmk still currently only supports
machines where inno archives are extracted from, but experimental new ports
exist outside of master
that will be present in future releases.blobutil/download
: no longer hardcodes the me.bin
path, when extracting
from updates during auto-download. When compiling ROM images, lbmk now does
this by bruteforce, automatically finding the correct location of the ME
image inside vendor archives; this works well on inno/lzma archives.
The script then runs me_cleaner
as usual, inserting that into the ROM
image - this same logic is also used when inserting into release ROMs.
This is in preparation for non-Lenovo sandybridge, ivybridge and haswell
machines being added in future releases, e.g. Dell and HP laptops that
coreboot supports.blobutil/download
: heavily re-factored the logic, switching to top-down
order of functions, split more operations into functions, generally made
the script easier to read/work on.blobutil/inject
: use correct offset for insertion of mrc.bin
(Haswell
platform, e.g. ThinkPad T440p) - as written above.d945gclf
- known to be problematic at boot. I have one,
and I'm going to test it for re-entry in a future release.All of the following are believed to boot, but if you have any issues, please contact the Libreboot project. They are:
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.