libreboot 20211122 announcement

hslick-master 20211122
Leah Rowe 2021-11-22 16:27:33 +00:00
parent 3fc7e6d464
commit ea96cf422c
3 changed files with 112 additions and 148 deletions

View File

@ -1,4 +1,4 @@
libreboot202111xx.md
libreboot20211122.md
libreboot20210522.md
libreboot20160907.md
libreboot20160902.md

View File

@ -0,0 +1,111 @@
% Libreboot 20211122 released!
% Leah Rowe
% 22 November 2021
Join us now and flash the firmware!
===================================
You'll be free!
---------------
Libreboot is free (as in freedom) boot firmware, which initializes the hardware
(e.g. memory controller, CPU, peripherals) in your computer so that software
can run. Libreboot then starts a bootloader to load your operating system. It
replaces the proprietary BIOS/UEFI firmware typically found on a computer.
Libreboot is compatible with specifical computer models that use the Intel/AMD
x86 architecture. Libreboot works well with GNU+Linux and BSD operating systems.
The last Libreboot release, version 20210522, was released on May 22nd
in 2021. *This* new release, Libreboot 20211122, is released today on November
22nd, 2021. This is yet another *testing* release, so expect there to be some
bugs. Every effort has been made to ensure reliability on all boards, however.
You can find this release in the `testing` directory on Libreboot release
mirrors. If you check in the `stable` directory, you'll still only find
the 20160907 release in there, so please ensure that you check the `testing`
directory!
This is a *bug fix* release, relative to 20210522. No new boards or major
features have been added, but several problems that existed in the previous
release have now been fixed.
Work done since the 20210522 release:
-------------------------------------
* Updated to newer coreboot, SeaBIOS and GRUB versions. The 20210522
release was using coreboot 4.14, on most boards, from May 2021. This release
is using a coreboot revision from November 2021.
* Tianocore dropped from the build system. It was planned that this would be
provided in ROM images, but Tianocore is very bloated and buggy, and not
worth maintaining. It was supported in the build system, but not actually
enabled on any boards. Instead, a future release of Libreboot will include
a busybox+linux payload with the u-root bootloader:
<https://github.com/u-root/u-root>
* New upstream used for SeaBIOS: <https://review.coreboot.org/seabios>
* Dummy PIKE2008 option ROM now automatically inserted into ASUS KGPE-D16 and
KCMA-D8 ROM images. It is literally an empty file. This disables the option
ROM from being loaded, which is known to hang SeaBIOS on these boards.
* 16MB configs now available, for more boards. For instance, ThinkPad X60 and
T60, ASUS KGPE-D16, etc. It's always possible to upgrade the flash, and
information about this is provided in the documentation.
* `memtest86+` included on more ROMs by default (where text mode startup is used)
* `memtest86+`: Now coreboot's own fork is used, instead of upstream. This fork
works much more reliably on coreboot targets, when running on bare metal.
* More 16MB configs added, for more boards. This will be finished by the time
of the next release. Already, several older laptops such as the ThinkPad X60
or T60, have these configs in the latest `lbmk.git`. If you upgrade the
default SPI flash to 16MByte / 128MBit (maximum size possible), you can then
easily put an entire busybox+linux system in the flash.
* `coreboot`: Added persmule's 2016 patch to enable more SATA/eSATA ports on
ThinkPad T400. This change benefits T400S users.
* `grub.cfg`: LUKS setups are now detected on mdraid setups.
* `grub.cfg`: Default timeout changed to 10 seconds, instead of 1. This benefit
desktop users, who previously complained about not having time to respond if
they wanted to interact with the boot menu.
* `grub.cfg`: Performance optimization when scanning for encrypted LUKS volumes.
GRUB will stall a lot less often, and feel more responsive, when dealing with
LUKS-encrypted setups.
* `coreboot`: cstate 3 now supported on MacBook2,1 and Macbook1,1. This results
in lower CPU temperatures and higher battery life on idle.
* Reset bug fixed, on GM45 platforms (ThinkPad X200/T400/T500 and so on). These
laptops did not reliably reboot, on the Libreboot 20210522 testing release.
They now reboot reliably, with this fix. See:
<https://notabug.org/libreboot/lbmk/issues/3>
* `lbmk`: Use `env` instead of hardcoding the bash path, in bash scripts. This
should make the build system slightly more portable between distros.
* Turkish keyboard layout added on GRUB payloads
New release schedule under consideration
========================================
The 20210522 release happened to coincide with coreboot 4.14's release, more
or less.
This release also coincides roughly with the coreboot 4.15 release, which came
out on November 5th. See:
<https://doc.coreboot.org/releases/coreboot-4.15-relnotes.html>
Coreboot has, since the 4.15 release, decided to release every 3 months instead
of every 6. That means the coreboot 4.16 release is planned for February 2022.
I'm considering this: 2 releases every 3 months, of Libreboot. A testing release
and then a fork of that is created, to fix bugs ready for a stable release 3
months later, while simultaneously working (in the lbmk master branch) towards
another testing release. *If no stable release is available at the same time as
a testing release, then delay it if the delay will be minimal, otherwise
cancel and abandon that particular stable branch.*
So: if I do this, the next stable release of Libreboot could be in February
2022 based on bug fixes of this November 2021 release, using coreboot 4.15.
A testing release could be simultaneously made, with perhaps extra features,
and based on coreboot 4.16.
I'm considering it. In general, I do want Libreboot to be in sync with the
coreboot project, but coreboot does not guarantee stability in their releases.
Rather, releases are regarded as *milestones* for the coreboot developers to
reflect on current developments, and plan the next few months.
When Libreboot first started, coreboot did not have a fixed release scheduled.
It was purely rolling release. Coreboot however has been quite reliable with
its own release schedules in the past few years, making it viable for Libreboot
to also have a fixed schedule.

View File

@ -1,147 +0,0 @@
% New Libreboot release soon: ETA November 15th, 2021
% Leah Rowe
% 9 November 2021
**UPDATE2 on 16 November 2021**
**I've decided to abandon the stable release, and do a new testing release (one that is more or less stable in practise) once this bug is fixed. The new testing release will have a newer coreboot release, from November 2021, for all boards.**
**Stable releases must not be rushed.**
**UPDATE on 16 November 2021:**
**I've received reports on IRC that SpeedStep is broken in the Libreboot 20210522 release, on some GM45 laptops; W500 and T400 have been reported.**
**Since the release I'm working on is based heavily on 20210522, I'm holding back the Libreboot release to get this fixed.**
The original article, prior to the above update, is as follows:
Rapid progress is being made on the next release of Libreboot. The overall goal
of this upcoming release is stability; development was intentionally frozen
after the Libreboot 20210522 testing release, to allow time for people to submit
lots of bug reports. Sure enough, people submitted reports.
I've been fixing bugs and polishing up what's there, ready for another release.
You can already build Libreboot from the latest Git repository, and it's known
to be stable on all currently supported laptops. Desktops still require a bit
more polishing and tweaking.
Work done so far since the 20210522 release:
* `memtest86+` included on more ROMs by default (where text mode startup is used)
* `memtest86+`: Now coreboot's own fork is used, instead of upstream. This fork
works much more reliably on coreboot targets, when running on bare metal.
* More 16MB configs added, for more boards. This will be finished by the time
of the next release. Already, several older laptops such as the ThinkPad X60
or T60, have these configs in the latest `lbmk.git`. If you upgrade the
default SPI flash to 16MByte / 128MBit (maximum size possible), you can then
easily put an entire busybox+linux system in the flash.
* `coreboot`: Added persmule's 2016 patch to enable more SATA/eSATA ports on
ThinkPad T400. This change benefits T400S users.
* `grub.cfg`
* `grub.cfg`: LUKS setups are now detected on mdraid setups.
* `grub.cfg`: Default timeout changed to 10 seconds, instead of 1. This benefit
desktop users, who previously complained about not having time to respond if
they wanted to interact with the boot menu.
* `grub.cfg`: Performance optimization when scanning for encrypted LUKS volumes.
GRUB will stall a lot less often, and feel more responsive, when dealing with
LUKS-encrypted setups.
* `coreboot`: cstate 3 now supported on MacBook2,1 and Macbook1,1. This results
in lower CPU temperatures and higher battery life on idle.
* Reset bug fixed, on GM45 platforms (ThinkPad X200/T400/T500 and so on). These
laptops did not reliably reboot, on the Libreboot 20210522 testing release.
They now reboot reliably, with this fix. See:
<https://notabug.org/libreboot/lbmk/issues/3>
* `lbmk`: Use `env` instead of hardcoding the bash path, in bash scripts. This
should make the build system slightly more portable between distros.
* Turkish keyboard layout added on GRUB payloads
Further plans
-------------
The only major plans left before the actual release, are as follows:
* Add more 16MB configs
* Re-do desktop/server configs: currently, only text-mode startup is provided
and it is assumed that SeaBIOS will be the first payload, then you can use
onboard graphics or an add-on graphics card more easily. This is not ideal.
The configs will be split: corebootfb and textmode startup, or "normal" where
there is no video init from coreboot, and instead an option ROM can be loaded
from a graphics card.
* Random documentation improvements, especially the addition of ThinkPad X301
and G43T-AM3 documentation.
PS:
As some of you know, I run a company at <https://minifree.org/> selling laptops
with Libreboot pre-installed on them.
Although the new stable release isn't out yet, what's currently in the Libreboot
git repository is stable, as of November 3rd, 2021. Until that release comes
out, I'm giving customers a version of Libreboot build from `lbmk.git`. I will
immediately switch to the stable release when it comes out, but the only thing
that will change basically is the version number and build date printed by
the `lscoreboot` command in GRUB. I'm making no further changes to the laptops
until after the upcoming release.
Plans for after release
=======================
After the next stable release, I have the following immediate plans:
* Add a lot more boards from coreboot, because there are a lot more boards
ready to add in Libreboot. Mostly x4x intel platforms, same as on the Gigabyte
GA-G41M-ES2L board.
* u-root based boot experience (see below about BusyBox+Linux+Musl)
That's for 2021. The purpose of my 2021 efforts has been to reboot the Libreboot
project, adding all viable x86 targets from coreboot, and adding some nice
features. The upcoming stable release will be during November 2021, and I plan
to have the next stable release afterwards, released on 2 January 2022, but
with a possible early December or late November testing release inbetween.
The work never ends. From 2022 onwards, my focus will shift towards non-x86
targets. ARM and RISC-V are becoming increasingly more viable for the Libreboot
project these days, and I want to take advantage of that.
BusyBox+Linux+Musl
------------------
I've been studying Heads, LinuxBoot and coreboot's LinuxBoot integration.
I'm attempting to create my own busybox+linux distro, with musl libc, similar
to these projects. I want to do this so that I can provide u-root on 16MB ROM
configs in Libreboot.
Coreboot's own build system has a Makefile in it, defining how to build
LinuxBoot. LinuxBoot is another such distro.
u-root is a powerful bootloader written in Go, which runs in a minimal busybox
and linux environment. It provides many of the same features as GNU GRUB, while
also providing kexec based loading of Linux kernels. Because it's running on
a Linux kernel, that also means you get superior drivers. For example, Linux
has very mature LUKS drivers, but GRUB does not. Linux also has great netboot
features. u-root also implements a minimal UEFI environment.
More info here:
<https://github.com/u-root/u-root>
Info about LinuxBoot:
<https://www.linuxboot.org/>
In the future, I want u-root to become a standard feature in Libreboot. This
will not make it into the upcoming stable release, but I plan to put it in a
testing release afterwards.
oreboot project
---------------
Oreboot is a special fork of coreboot, re-written in Rust. Coreboot without C,
hence Oreboot. It focuses on RISC-V hardware:
<https://github.com/oreboot>
However, coreboot will still be used for most targets, including the current
x86 targets. I plan to integrate oreboot at a future date, separately, for
a few boards.