Merge branch 'master' into polish-cn-translation
commit
64584fd7d3
|
@ -455,7 +455,7 @@ example of the push pin as a proof of concept:
|
|||
|
||||
[You must flash it externally](spi.md)
|
||||
|
||||
#### ThinkPad X60/X60S/X60T/T60 with Lenovo BIOS {#flashprog_lenovobios}
|
||||
#### ThinkPad X60/X60S/X60T/T60 with Lenovo BIOS {#flashrom_lenovobios}
|
||||
|
||||
**WARNING: Libreboot 20231021 and likely older 2023 releases do not have the
|
||||
bootblock copied in release ROMs, so the bucts trick below will actually cause
|
||||
|
@ -470,9 +470,16 @@ And then do this:
|
|||
|
||||
(This was fixed in Libreboot 20231101)
|
||||
|
||||
**NOTE: the section below pertaining to 20160907 static binaries references
|
||||
flashrom. Libreboot recommends flashprog nowadays, but if you're using that
|
||||
utils archive, please note that it is from a time when Libreboot used
|
||||
flashrom. Use flashrom there as that's what included in those binaries.
|
||||
Libreboot does not currently document how to patch flashprog for sst/macronix
|
||||
on X60/T60, when going (in software) from lenovobios to libreboot.**
|
||||
|
||||
**NOTE: This section partially relates to `utils` release archive in
|
||||
Libreboot 20160907, which contains static compiled binaries for things like
|
||||
bucts and flashprog. It will *still* work on modern distros, and thus is
|
||||
bucts and flashrom. It will *still* work on modern distros, and thus is
|
||||
still referenced here. The `flash` script in that release can be used, with
|
||||
modern Libreboot ROMs. Current Libreboot releases do not include pre-compiled
|
||||
utilities, only ROMs.**
|
||||
|
@ -487,7 +494,7 @@ X60 BIOS password (Lenovo): you might find info here:
|
|||
<https://bios-pw.org/>
|
||||
|
||||
You can just get bucts from the libreboot project, same thing for the patched
|
||||
flashprog. In the Libreboot 20160907 release, there is a *utility* archive, which
|
||||
flashrom. In the Libreboot 20160907 release, there is a *utility* archive, which
|
||||
has statically compiled executables. They still work just fine on modern
|
||||
systems, and they can be used for this purpose.
|
||||
|
||||
|
@ -502,12 +509,12 @@ Here are a list of targets:
|
|||
and you will run it at 115200 baud rate. agetty/fgetty in Linux can give
|
||||
you a serial console in your OS)
|
||||
|
||||
Download and build flashprog, using the instructions
|
||||
on [the Git page](../../git.md), and download the `bucts` software using the
|
||||
notes on that very same page.
|
||||
|
||||
You can replace Lenovo BIOS with libreboot, using flashprog running on the host
|
||||
CPU. However, there are some considerations.
|
||||
You can replace Lenovo BIOS with libreboot, using flashrom running on the host
|
||||
CPU. However, there are some considerations. NOTE: needs patching for SST
|
||||
and macronix chips, but libreboot doesn't yet do this for flashprog. You can
|
||||
use the old Libreboot 20160907 sources to get the modified flashrom instead,
|
||||
which contains this patch - and static binaries are provided, for convenience;
|
||||
they will still work, due to libs being statically linked.
|
||||
|
||||
Firstly, make sure that the yellow CMOS battery is installed, and functioning
|
||||
correctly. You could check the voltage. The battery is a CR2032
|
||||
|
@ -518,7 +525,7 @@ load on it, which there will be. This coincell powers the real-time clock and
|
|||
CMOS memory).
|
||||
|
||||
Lenovo BIOS restricts write access, but there is a weakness in it. With a
|
||||
specially patched flashprog binary, you can easily flash it but the top 64KiB
|
||||
specially patched flashrom binary, you can easily flash it but the top 64KiB
|
||||
region of the boot flash, containing your bootblock, cannot be flashed just
|
||||
yet. However, there is a register called the *Backup Control* or *BUC* register
|
||||
and in that register is a status bit called *Top Swap* or *TS*.
|
||||
|
@ -532,12 +539,12 @@ program referenced below.
|
|||
The libreboot ROM images already have the upper 64KiB bootblock copied to the lower
|
||||
one, so you don't have to worry about copying it yourself.
|
||||
|
||||
If you build flashprog using the libreboot build system, there will be three
|
||||
If you use the Libreboot 20160907 utils archive, there will be three
|
||||
binaries:
|
||||
|
||||
* `flashprog`
|
||||
* `flashprog_i945_sst`
|
||||
* `flashprog_i945_mx`
|
||||
* `flashrom`
|
||||
* `flashrom_i945_sst`
|
||||
* `flashrom_i945_mx`
|
||||
|
||||
It's these last two binaries that you should use. Now compile bucts (just
|
||||
run `make` in the bucts source directory).
|
||||
|
@ -549,19 +556,19 @@ Run the bucts tool:
|
|||
Ensure that your CMOS battery is connected too. Now you must determine whether
|
||||
you have Macronix or SST. An X60/T60 thinkpad will have either an SST or a
|
||||
Macronix chip. The Macronix chip will have "MX" written on the chip. You will
|
||||
use `flashprog_i945_sst` for the SST chip, and `flashprog_i945_mx` for the
|
||||
use `flashrom_i945_sst` for the SST chip, and `flashrom_i945_mx` for the
|
||||
Macronix chip.
|
||||
|
||||
Now run flashprog (for SST):
|
||||
Now run flashrom from the Libreboot 20160907 utils archive (for SST):
|
||||
|
||||
sudo ./flashprog_i945_sst -p internal -w coreboot.rom
|
||||
sudo ./flashrom_i945_sst -p internal -w coreboot.rom
|
||||
|
||||
Or Macronix:
|
||||
|
||||
sudo ./flashprog_i945_mx -p internal -w coreboot.rom
|
||||
sudo ./flashrom_i945_mx -p internal -w coreboot.rom
|
||||
|
||||
NOTE: you *can* just run both. One of them will succeed. It is perfectly
|
||||
harmless to run both versions of flashprog. In fact, you should do so!
|
||||
harmless to run both versions of flashrom. In fact, you should do so!
|
||||
|
||||
You'll see a lot of errors. This is normal. You should see something like:
|
||||
|
||||
|
@ -589,28 +596,36 @@ Your flash chip is in an unknown state.
|
|||
If you see this, rejoice! It means that the flash was successful. Please do not
|
||||
panic. Shut down now, and wait a few seconds, then turn back on again.
|
||||
|
||||
**WARNING: if flashprog complains about `/dev/mem` access, please
|
||||
run `sudo ./bucts 0`. If flashprog is complaining about `/dev/mem`, it means
|
||||
**WARNING: if flashrom (from Libreboot 20160907 utils) complains
|
||||
about `/dev/mem` access, please
|
||||
run `sudo ./bucts 0`. If flashrom is complaining about `/dev/mem`, it means
|
||||
that you have `CONFIG_STRICT_DEVMEM` enabled in your kernel. Reboot with the
|
||||
following kernel parameter added in your bootloader: `iomem=relaxed` and try
|
||||
again with the above instructions. DO NOT continue until the above works, and
|
||||
you see the expected flashprog output as indicated above.**
|
||||
you see the expected flashrom output as indicated above.**
|
||||
|
||||
If you *did* run flashprog and it failed to flash, but you set bucts to 1 and
|
||||
If you *did* run flashrom and it failed to flash, but you set bucts to 1 and
|
||||
shut down, don't worry. Just remove the yellow coin-cell battery (it's underneath
|
||||
the keyboard, connected to the mainboard), wait a minute or two, reconnect the
|
||||
coin-cell and try again from scratch. In this instance, if flashprog didn't do
|
||||
coin-cell and try again from scratch. In this instance, if flashrom didn't do
|
||||
anything, and didn't flash anything, it means you still have Lenovo BIOS but
|
||||
if bucts is set to 1, you can flush it and set it back to 0. BUC.TS is stored in
|
||||
volatile memory, powered by that CR2032 coin-cell battery.
|
||||
|
||||
Assuming that everything went well:
|
||||
|
||||
Switch to flashprog now! (avoid flashrom)
|
||||
---------------------------------------
|
||||
|
||||
Flash the ROM for a second time. For this second flashing attempt, the upper
|
||||
64KiB bootblock is now read-write. Use the *unpatched* flashprog binary:
|
||||
|
||||
sudo ./flashprog -p internal -w libreboot.rom
|
||||
|
||||
NOTE: At this point, we recommend use of flashprog instead of flashrom, for
|
||||
the reasons mentioned in the [Libreboot 20240225
|
||||
release](../../news/libreboot20240225.md).
|
||||
|
||||
To reset bucts, do this:
|
||||
|
||||
sudo ./bucts 0
|
||||
|
|
|
@ -31,13 +31,13 @@ LIBREBOOT](news/safety.md).**
|
|||
GPG signing key
|
||||
---------------
|
||||
|
||||
**The latest release is Libreboot 20240126, under the `testing` directory.**
|
||||
**The latest release is Libreboot 20240225, under the `testing` directory.**
|
||||
|
||||
### NEW KEY
|
||||
|
||||
Full key fingerprint: `8BB1 F7D2 8CF7 696D BF4F 7192 5C65 4067 D383 B1FF`
|
||||
|
||||
This key is for Libreboot releases *after* the 20240126 release. It applies to
|
||||
This key is for Libreboot releases *after* the 20240225 release. It applies to
|
||||
all Libreboot releases from the year 2024, and it will expire (unless revoked
|
||||
early) on 26 December 2028.
|
||||
|
||||
|
@ -50,9 +50,9 @@ Libreboot releases are signed using GPG.
|
|||
Full key fingerprint: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856`
|
||||
|
||||
This key is for Libreboot releases *after* the 20160907 release, and up
|
||||
to the Libreboot 20240126 release. This key *expired* during December 2023,
|
||||
to the Libreboot 20240225 release. This key *expired* during December 2023,
|
||||
so you should use the *newer* key (see above) for the releases after
|
||||
Libreboot 20240126.
|
||||
Libreboot 20240225.
|
||||
|
||||
Download the key here: [lbkey.asc](lbkeyold.asc)
|
||||
|
||||
|
@ -83,7 +83,7 @@ there is a Git repository that you can download from. Go here:
|
|||
HTTPS mirrors {#https}
|
||||
-------------
|
||||
|
||||
**The latest release is Libreboot 20240126, under the `testing` directory.**
|
||||
**The latest release is Libreboot 20240225, under the `testing` directory.**
|
||||
|
||||
These mirrors are recommended, since they use TLS (https://) encryption.
|
||||
|
||||
|
@ -174,7 +174,7 @@ crontab. This page tells you how to use crontab:
|
|||
HTTP mirrors {#http}
|
||||
------------
|
||||
|
||||
**The latest release is Libreboot 20240126, under the `testing` directory.**
|
||||
**The latest release is Libreboot 20240225, under the `testing` directory.**
|
||||
|
||||
WARNING: these mirrors are non-HTTPS which means that they are
|
||||
unencrypted. Your traffic could be subject to interference by
|
||||
|
@ -188,7 +188,7 @@ if using HTTPS.
|
|||
FTP mirrors {#ftp}
|
||||
-----------
|
||||
|
||||
**The latest release is Libreboot 20240126, under the `testing` directory.**
|
||||
**The latest release is Libreboot 20240225, under the `testing` directory.**
|
||||
|
||||
WARNING: FTP is also unencrypted, like HTTP. The same risks are present.
|
||||
|
||||
|
|
|
@ -31,13 +31,13 @@ LIBREBOOT](news/safety.md).**
|
|||
Код підпису GPG
|
||||
---------------
|
||||
|
||||
**Останнім випуском є Libreboot 20240126, в директорії `testing`.**
|
||||
**Останнім випуском є Libreboot 20240225, в директорії `testing`.**
|
||||
|
||||
### НОВИЙ КЛЮЧ
|
||||
|
||||
Повний відбиток ключа: `8BB1 F7D2 8CF7 696D BF4F 7192 5C65 4067 D383 B1FF`
|
||||
|
||||
Вищезазначений ключ для Libreboot 20240126, та наступних випусків. This key
|
||||
Вищезазначений ключ для Libreboot 20240225, та наступних випусків. This key
|
||||
is applicable to any release made on or after the date: 28 December 2023. It
|
||||
will expire on 26 December 2028.
|
||||
|
||||
|
@ -50,9 +50,9 @@ will expire on 26 December 2028.
|
|||
Повний відбиток ключа: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856`
|
||||
|
||||
This key is for Libreboot releases *after* the 20160907 release, and up
|
||||
to the Libreboot 20240126 release. This key *expired* during December 2023,
|
||||
to the Libreboot 20240225 release. This key *expired* during December 2023,
|
||||
so you should use the *newer* key (see above) for the releases after
|
||||
Libreboot 20240126.
|
||||
Libreboot 20240225.
|
||||
|
||||
Завантажте ключ тут: [lbkey.asc](lbkeyold.asc)
|
||||
|
||||
|
@ -83,7 +83,7 @@ Libreboot 20240126.
|
|||
Дзеркала HTTPS {#https}
|
||||
-------------
|
||||
|
||||
**Останнім випуском є Libreboot 20240126, в директорії `testing`.**
|
||||
**Останнім випуском є Libreboot 20240225, в директорії `testing`.**
|
||||
|
||||
Дані дзеркала є рекомендованими, оскільки використовують TLS (https://) шифрування.
|
||||
|
||||
|
@ -174,7 +174,7 @@ crontab. Ця сторінка розповідає вам, як викорис
|
|||
Дзеркала HTTP {#http}
|
||||
------------
|
||||
|
||||
**Останнім випуском є Libreboot 20240126, під директорією `testing`.**
|
||||
**Останнім випуском є Libreboot 20240225, під директорією `testing`.**
|
||||
|
||||
УВАГА: ці дзеркала є не-HTTPS, що означає, що вони
|
||||
незашифровані. Ваш трафік може бути об'єктом втручання
|
||||
|
@ -188,7 +188,7 @@ crontab. Ця сторінка розповідає вам, як викорис
|
|||
Дзеркала FTP {#ftp}
|
||||
-----------
|
||||
|
||||
**Останнім випуском є Libreboot 20240126, під директорією `testing`.**
|
||||
**Останнім випуском є Libreboot 20240225, під директорією `testing`.**
|
||||
|
||||
УВАГА: FTP є також незашифрованим, подібно HTTP. Ті ж самі ризики присутні.
|
||||
|
||||
|
|
|
@ -21,9 +21,9 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic
|
|||
The founder and lead developer of Libreboot, Leah Rowe, also owns and operates
|
||||
Minifree; sales provide funding for Libreboot.
|
||||
|
||||
**NEUESTE VERSION: Die neueste Version von Libreboot ist 20240126, veröffentlicht
|
||||
am 26. January 2024.
|
||||
Siehe auch: [Libreboot 20240126 release announcement](news/libreboot20240126.md).**
|
||||
**NEUESTE VERSION: Die neueste Version von Libreboot ist 20240225, veröffentlicht
|
||||
am 25. February 2024.
|
||||
Siehe auch: [Libreboot 20240225 release announcement](news/libreboot20240225.md).**
|
||||
|
||||
Warum solltest Du *Libreboot* verwenden?
|
||||
----------------------------
|
||||
|
@ -71,7 +71,7 @@ musst Du zunächst Konfigurationen auf Experten Level durchführen,
|
|||
und zwar für Coreboot, GRUB sowie sämtliche Software die Du sonst noch verwenden
|
||||
möchtest um das ROM Image vorzubereiten. Mithilfe von *Libreboot* kannst Du
|
||||
sprichwörtlich von Git oder einem anderen Quell-Archiv herunterladen, anschliessend
|
||||
`make` ausführen, und es wird komplette ROM Images herstellen, ohne das Benutzer
|
||||
ein script ausführen, und es wird komplette ROM Images herstellen, ohne das Benutzer
|
||||
Eingaben oder Eingreifen von Nöten sind. Die Konfiguration wurde bereits im
|
||||
Vorfeld erledigt.
|
||||
|
||||
|
|
|
@ -19,8 +19,8 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic
|
|||
The founder and lead developer of Libreboot, Leah Rowe, also owns and operates
|
||||
Minifree; sales provide funding for Libreboot.
|
||||
|
||||
**NOUVELLE VERSION: La dernière version est [Libreboot 20240126](news/libreboot20240126.md), sortie
|
||||
le 26 January 2024.**
|
||||
**NOUVELLE VERSION: La dernière version est [Libreboot 20240225](news/libreboot20240225.md), sortie
|
||||
le 25 February 2024.**
|
||||
|
||||
Pourquoi devriez-vous utiliser *Libreboot*?
|
||||
-----------------------------------
|
||||
|
@ -68,7 +68,7 @@ en partant des bases, vous devez alors effectuer une configuration experte
|
|||
de Coreboot, GRUB et n'importe quel autre logiciel dont vous avez besoin
|
||||
afin de préparer la ROM. Avec *Libreboot*,
|
||||
vous pouvez télécharger la source depuis Git ou une archive, exécuter
|
||||
`make` etça compilera une image ROM entières. Le système de compilation
|
||||
and a script etça compilera une image ROM entières. Le système de compilation
|
||||
automatisé de Libreboot nommé `lbmk` (Libreboot MaKe), compile ces images
|
||||
ROM automatiquement, sans besoin d'entrées utilisateur or intervention
|
||||
requise. La configuration est faite à l'avance.
|
||||
|
|
|
@ -20,8 +20,8 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic
|
|||
The founder and lead developer of Libreboot, Leah Rowe, also owns and operates
|
||||
Minifree; sales provide funding for Libreboot.
|
||||
|
||||
**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 20240126, rilasciato il 26 January 2024.
|
||||
Vedi: [Libreboot 20240126 annuncio di rilascio](news/libreboot20240126.md).**
|
||||
**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 20240225, rilasciato il 25 February 2024.
|
||||
Vedi: [Libreboot 20240225 annuncio di rilascio](news/libreboot20240225.md).**
|
||||
|
||||
Per quale ragione utilizzare *Libreboot*?
|
||||
-----------------------------------------
|
||||
|
@ -66,7 +66,7 @@ compilazione automatico di Libreboot.
|
|||
Esattamente come *Alpine Linux* e' una *distribuzione Linux*, Libreboot e' una
|
||||
*distribuzione coreboot*. Per fare un immagine ROM da zero, hai bisogno di esperienza necessaria
|
||||
nel configurare coreboot, GRUB e qualunque altra cosa ti serve. Con *Libreboot*,
|
||||
che puoi scaricare da Git o da un archivio di codici sorgenti, puoi far partire `make`,
|
||||
che puoi scaricare da Git o da un archivio di codici sorgenti, puoi far partire *a script*,
|
||||
e questo mettera' su automaticamente le immagini ROM richieste. Un sistema di compilazione automatico,
|
||||
chiamato `lbmk` (Libreboot MaKe), mettera' su quelle immagini ROM automaticamente, senza troppi
|
||||
interventi da parte dell'utente. Le configurazioni di base sono gia' state previste in precedenza.
|
||||
|
|
|
@ -23,9 +23,9 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic
|
|||
The founder and lead developer of Libreboot, Leah Rowe, also owns and operates
|
||||
Minifree; sales provide funding for Libreboot.
|
||||
|
||||
**NEW RELEASE: The latest release is Libreboot 20240126, released on
|
||||
26 January 2024.
|
||||
See: [Libreboot 20240126 release announcement](news/libreboot20240126.md).**
|
||||
**NEW RELEASE: The latest release is Libreboot 20240225, released on
|
||||
25 February 2024.
|
||||
See: [Libreboot 20240225 release announcement](news/libreboot20240225.md).**
|
||||
|
||||
*We* believe the freedom to [study, share, modify and use
|
||||
software](https://writefreesoftware.org/), without any
|
||||
|
@ -121,8 +121,8 @@ In the same way that *Alpine Linux* is a *Linux distribution*, Libreboot is
|
|||
a *coreboot distribution*. If you want to build a ROM image from scratch, you
|
||||
otherwise have to perform expert-level configuration of coreboot, GRUB and
|
||||
whatever other software you need, to prepare the ROM image. With *Libreboot*,
|
||||
you can literally download from Git or a source archive, and run `make`, and it
|
||||
will build entire ROM images. An automated build system, named `lbmk`
|
||||
you can literally download from Git or a source archive, and run a simple script,
|
||||
and it will build entire ROM images. An automated build system, named `lbmk`
|
||||
(Libreboot MaKe), builds these ROM images automatically, without any user input
|
||||
or intervention required. Configuration has already been performed in advance.
|
||||
|
||||
|
|
|
@ -21,8 +21,8 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic
|
|||
The founder and lead developer of Libreboot, Leah Rowe, also owns and operates
|
||||
Minifree; sales provide funding for Libreboot.
|
||||
|
||||
**НОВИЙ ВИПУСК: Останній випуск Libreboot 20240126, випущено 26 січень 2024.
|
||||
Дивіться: [Оголошення про випуск Libreboot 20240126](news/libreboot20240126.md).**
|
||||
**НОВИЙ ВИПУСК: Останній випуск Libreboot 20240225, випущено 25 лютий 2024.
|
||||
Дивіться: [Оголошення про випуск Libreboot 20240225](news/libreboot20240225.md).**
|
||||
|
||||
Чому вам варто використовувати *Libreboot*?
|
||||
----------------------------
|
||||
|
@ -61,7 +61,7 @@ Coreboot помітно складний для встановлення для
|
|||
*дистрибутив coreboot*. Якщо ви хочете зібрати образ ROM з нуля, вам
|
||||
інакше довелось би виконати налаштування експертного рівня coreboot, GRUB та
|
||||
будь-якого іншого потрібного програмного забезпечення, для підготування образа ROM. З *Libreboot*,
|
||||
ви можете буквально завантажити з Git або архіву джерельного коду, та запустити `make`, і це
|
||||
ви можете буквально завантажити з Git або архіву джерельного коду, та запустити a script, і це
|
||||
побудує всі образи ROM. Автоматизована система побудови, названа `lbmk`
|
||||
(Libreboot MaKe), збирає ці образи ROM автоматично, без будь-якого вводу користувача
|
||||
або потрібного втручання. Налаштування вже виконано заздалегідь.
|
||||
|
|
|
@ -12,7 +12,7 @@ x-toc-enable: true
|
|||
Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有者和经营者;
|
||||
销售电脑为 Libreboot 提供资金。
|
||||
|
||||
**新版发布: 最新版本 Libreboot 20240126 已在 2024 年 01 月 24 日发布。详见: [Libreboot 20240126 发布公告](news/libreboot20240126.md).**
|
||||
**新版发布: 最新版本 Libreboot 20240225 已在 2024 年 02 月 25 日发布。详见: [Libreboot 20240225 发布公告](news/libreboot20240225.md).**
|
||||
|
||||
为什么要使用 *Libreboot*?
|
||||
----------------------------
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
libreboot20240225.md
|
||||
ports202402.md
|
||||
sourcehut.md
|
||||
libreboot20240126.md
|
||||
|
|
|
@ -0,0 +1,307 @@
|
|||
% Libreboot 20240225 released!
|
||||
% Leah Rowe
|
||||
% 25 February 2024
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
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
|
||||
GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy
|
||||
to use as possible for non-technical users.
|
||||
|
||||
Libreboot provides many additional benefits such as fast boot speeds, greater
|
||||
security and greater customisation, but the *primary* benefit
|
||||
is [software freedom](https://writefreesoftware.org/learn).
|
||||
|
||||
*This* new release, Libreboot 20240225, released today 25 February 2024, is
|
||||
a new *testing* release of Libreboot. The previous release was
|
||||
Libreboot 20240126, released on 26 January 2024. The most careful and
|
||||
iterative approach is being taken in current development, because a new stable
|
||||
release is to be made available by the summer of 2024. Much of Libreboot's
|
||||
current focus is purely on hardware support, since the build system is more
|
||||
or less stable at this point (owing to all of last year's major code audits).
|
||||
|
||||
Today's release has had some testing already, on most of the boards, and should
|
||||
run just fine. If you spot any issues, please report them on Libreboot's bug
|
||||
tracker.
|
||||
|
||||
Hardware supported in this release
|
||||
==================================
|
||||
|
||||
This release supports the following hardware:
|
||||
|
||||
### Servers (AMD, x86)
|
||||
|
||||
- [ASUS KFSN4-DRE motherboard](../docs/hardware/kfsn4-dre.md)
|
||||
- [ASUS KGPE-D16 motherboard](../docs/hardware/kgpe-d16.md)
|
||||
|
||||
### Desktops (AMD, Intel, x86)
|
||||
|
||||
- **[Dell OptiPlex 7020/9020 MT and SFF](../docs/hardware/dell9020.md) - Also [available to buy
|
||||
with Libreboot preinstalled](https://minifree.org/product/libreboot-9020/)** - Dell OptiPlex XE2 MT/SFF also known to work
|
||||
- [Acer G43T-AM3](../docs/hardware/acer_g43t-am3.md)
|
||||
- [Apple iMac 5,2](../docs/hardware/imac52.md)
|
||||
- [ASUS KCMA-D8 motherboard](../docs/hardware/kcma-d8.md)
|
||||
- Dell OptiPlex 7010 **MT** (known to work, using the T1650 ROM, but more
|
||||
research is needed)
|
||||
- [Dell Precision T1650](../docs/hardware/t1650.md)
|
||||
- [Gigabyte GA-G41M-ES2L motherboard](../docs/hardware/ga-g41m-es2l.md)
|
||||
- [HP Elite 8200 SFF/MT](../docs/hardware/hp8200sff.md) (HP 6200 Pro Business probably works too)
|
||||
- [HP Elite 8300 USDT](../docs/hardware/hp8300usdt.md)
|
||||
- [Intel D510MO and D410PT motherboards](../docs/hardware/d510mo.md)
|
||||
- [Intel D945GCLF](../docs/hardware/d945gclf.md)
|
||||
|
||||
### Laptops (Intel, x86)
|
||||
|
||||
- **[HP EliteBook 820 G2](../docs/hardware/hp820g2.md) - Also [available to buy with Libreboot
|
||||
preinstalled](https://minifree.org/product/libreboot-820/)**
|
||||
- **[Lenovo ThinkPad T440p](../docs/install/t440p_external.md) - Also [available
|
||||
to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-t440p/)**
|
||||
- **[Lenovo ThinkPad W541](../docs/install/ivy_has_common.md) - Also [available to
|
||||
buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)**
|
||||
- [Apple MacBook1,1 and MacBook2,1](../docs/hardware/macbook21.md)
|
||||
- [Dell Latitude E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel
|
||||
GPU](../docs/hardware/e6400.md)
|
||||
- [Dell Latitude E6420 (Intel GPU](../docs/hardware/e6420.md)
|
||||
- [Dell Latitude E6430 (Intel GPU](../docs/hardware/e6430.md)
|
||||
- [Dell Latitude E5520 (Intel GPU](../docs/hardware/e5520.md)
|
||||
- [Dell Latitude E5530 (Intel GPU](../docs/hardware/e5530.md)
|
||||
- [Dell Latitude E6520 (Intel GPU](../docs/hardware/e6520.md)
|
||||
- [Dell Latitude E6530 (Intel GPU](../docs/hardware/e6530.md)
|
||||
- [HP EliteBook 2170p](../docs/hardware/hp2170p.md)
|
||||
- [HP EliteBook 2560p](../docs/hardware/hp2560p.md)
|
||||
- [HP EliteBook 2570p](../docs/hardware/hp2570p.md)
|
||||
- [HP EliteBook 8460p](../docs/hardware/hp8460p.md)
|
||||
- [HP EliteBook 8470p](../docs/hardware/hp8470p.md)
|
||||
- [HP EliteBook 8560w](../docs/hardware/hp8560w.md)
|
||||
- [HP EliteBook Folio 9470m](../docs/hardware/hp9470m.md)
|
||||
- [Lenovo ThinkPad R400](../docs/hardware/r400.md)
|
||||
- [Lenovo ThinkPad R500](../docs/hardware/r500.md)
|
||||
- [Lenovo ThinkPad T400 / T400S](../docs/hardware/t400.md)
|
||||
- [Lenovo Thinkpad T420](../docs/install/ivy_has_common.md) (no install docs yet)
|
||||
- [Lenovo ThinkPad T420S](../docs/install/ivy_has_common.md) (no install docs yet)
|
||||
- [Lenovo ThinkPad T430](../docs/install/ivy_has_common.md) (no install docs yet)
|
||||
- [Lenovo ThinkPad T500](../docs/hardware/t500.md)
|
||||
- [Lenovo ThinkPad T520 / W520](../docs/install/ivy_has_common.md) (no install guide yet)
|
||||
- [Lenovo ThinkPad T530 / W530](../docs/install/ivy_has_common.md) (no install
|
||||
- Lenovo ThinkPad T60 (with Intel GPU)
|
||||
- [Lenovo ThinkPad W500](../docs/hardware/t500.md)
|
||||
- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/hardware/x200.md)
|
||||
- [Lenovo Thinkpad X220](../docs/install/ivy_has_common.md)
|
||||
- [Lenovo Thinkpad X220t](../docs/install/ivy_has_common.md)
|
||||
- Lenovo ThinkPad X230
|
||||
- [Lenovo Thinkpad X230](../docs/install/x230_external.md)
|
||||
- [Lenovo Thinkpad X230t](../docs/install/x230_external.md)
|
||||
- Lenovo ThinkPad X301
|
||||
- Lenovo ThinkPad X60 / X60S / X60 Tablet
|
||||
|
||||
### Laptops (ARM, with U-Boot payload)
|
||||
|
||||
- [ASUS Chromebook Flip C101 (gru-bob)](../docs/install/chromebooks.md)
|
||||
- [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md)
|
||||
|
||||
Work done since last release
|
||||
============================
|
||||
|
||||
With the exception of pico-serprog and replacing flashrom with flashprog (more
|
||||
on this later), the current upstream revisions remain unchanged, but this
|
||||
release has fixed a few issues and added more mainboards, relative to last
|
||||
month's release.
|
||||
|
||||
New mainboards
|
||||
--------------
|
||||
|
||||
* **HP EliteBook 8560w** - added to lbmk by Riku Viitanen, using the coreboot port
|
||||
written by Iru Cai, with Riku's MXM support added on top (more on this later)
|
||||
* **Dell Latitude E5520** - added to lbmk by Nicholas Chin, using his own coreboot
|
||||
port for this board (testing provided by `Minimum_Baseball_629` on reddit)
|
||||
* **Dell Latitude E5530** - added to lbmk by Nicholas Chin, using his own coreboot
|
||||
port for this board (testing provided by Martin Dawson)
|
||||
* **Dell Latitude E6520** - added to lbmk by Nicholas Chin, using his own coreboot
|
||||
port for this board (testing provided by Martin Dawson)
|
||||
* **Dell Latitude E6420** - added to lbmk by Nicholas Chin, using his own coreboot
|
||||
port for this board (testing provided by Martin Dawson)
|
||||
* **Dell OptiPlex 9020/7020 SFF** (and XE2 SFF) - added to lbmk by Leah Rowe, using
|
||||
the coreboot port implemented by Mate Kukri.
|
||||
* **Dell OptiPlex 9020/7020 MT** (and XE2 MT) - added to lbmk by Leah Rowe, using
|
||||
the coreboot port implemented by Mate Kukri - uses Haswell MRC, but testing
|
||||
was also done on Broadwell MRC (not yet added to lbmk due to lack of XHCI
|
||||
support in GRUB, whereas EHCI seems to work fine in the Haswell one - a patch
|
||||
was also [submitted](https://review.coreboot.org/c/coreboot/+/80717) to
|
||||
coreboot for review, fixing VGA decode on discrete graphics cards when the
|
||||
Broadwell MRC is used - this patch too is not yet included in Libreboot).
|
||||
|
||||
SeaBIOS MXM INT15H interrupt
|
||||
----------------------------
|
||||
|
||||
For Libreboot's new HP EliteBook 8560w support, MXM handling was added to
|
||||
SeaBIOS. This was performed by Riku Viitanen, who also wrote this tool:
|
||||
|
||||
<https://codeberg.org/Riku_V/mxmdump/>
|
||||
|
||||
These laptops use upgradeable graphics cards in an MXM slot. The MXM
|
||||
specification states that the MXM config can be provided in an i2c ROM (and
|
||||
Libreboot would not have to handle that) or, in some cases, may be provided
|
||||
in the main boot flash, and loaded using an INT15H interrupt.
|
||||
|
||||
The MXM config is used by the VGA Option ROM on the card, for configuring
|
||||
things like ports / power management. Without it, running the option ROM
|
||||
would result in an error on the screen, telling you that the MXM configuration
|
||||
was not loaded. In some cases, you may be able to modify the ROM to bypass it,
|
||||
or it would just "work" anyway - but with undefined behaviour.
|
||||
|
||||
With Riku's addition, this EliteBook 8560w now works perfectly. Coreboot has
|
||||
had a port for some time, but without the MXM support - for now, it is only
|
||||
available in SeaBIOS, so you must use *SeaBIOS* to run the VGA Option ROM (it
|
||||
cannot yet be done directly from coreboot).
|
||||
|
||||
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/`. Libreboot 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.
|
||||
|
||||
Pico-serprog updates
|
||||
--------------------
|
||||
|
||||
Riku Viitanen added support for controlling multiple chip-selects. With the
|
||||
new functionality, you can set unused chipselects high. This is useful when
|
||||
flashing externally on an Intel IFD-based system where the two flashes are
|
||||
connected, but without resistors between the shared data lines - on these
|
||||
systems, the other flash's chipselect is electrically *floating* which means
|
||||
it's in an undefined state; the new version allows you to control all of them,
|
||||
turning *off* the other chip. This is useful when flashing the ThinkPad W541.
|
||||
|
||||
Documentation is provided for this, in the pico-serprog README. Riku also
|
||||
fixed this issue:
|
||||
<https://codeberg.org/libreboot/lbmk/issues/182>
|
||||
|
||||
Riku also increased the default drive strength to 12mA on all RP2024 boards,
|
||||
increasing reliabily when externally flashing certain mainboards (e.g. PCH
|
||||
having low/no resistance on connections to the data lines for the flash).
|
||||
|
||||
Flashprog now used, instead of flashrom
|
||||
---------------------------------------
|
||||
|
||||
Nico Huber was unfairly banned from participation in the flashrom project, and
|
||||
went on to create a new project called [flashprog](https://flashprog.org/). The
|
||||
purpose of flashprog is to provide *stable* releases, with incremental
|
||||
development over time, maintaining support for newer chips/devices, while
|
||||
being careful not to break old ones. The new leadership of flashrom takes a
|
||||
far less conservative approach; flashprog was initially released as a project
|
||||
called *flashrom-stable*, and Nico was permitted to use the coreboot gerrit
|
||||
infrastructure - permission which was later revoked, leading to flashprog.
|
||||
|
||||
The new leader of flashrom accused Nico of foul behaviour, while not providing
|
||||
any evidence; this, at the same time that the two of them had seemingly
|
||||
incompatible assumptions about the future of the project. It's pretty clear
|
||||
what the real reason was for his *dismissal*, though the Libreboot project is
|
||||
not taking Nico's side simply for personal reasons - no, it is because Nico has
|
||||
a much better vision for the flashrom project, which he is now implementing in
|
||||
the new flashprog project.
|
||||
|
||||
Several developers have already jumped ship and went to work on flashprog.
|
||||
Nico's vision is a far more sensible one, and he has been invaluable to the
|
||||
Libreboot project over many years. He has *personally* provided me with help
|
||||
and advise on numerous occasions. He is also the author of the Roda RK9 port in
|
||||
coreboot, upon which Vladimir Serbinenko's ThinkPad X200 port was based - work
|
||||
which *defined* Libreboot in its early days, contributions for which I remain
|
||||
eternally grateful. I *know* Nico and trust him as a project leader. As a result,
|
||||
Libreboot withdraws its support and endorsement of flashrom - it will only
|
||||
promote flashprog from now on.
|
||||
|
||||
It's quite possible that *flashrom* has a future, but there's no reason why
|
||||
their changes cannot also be included in flashprog, if they are good changes,
|
||||
moving forward. Libreboot supports Nico's work out of principle, both on
|
||||
a social (community-led, anyone can participate in it) and technological
|
||||
perspective. This was done because, firstly Nico Huber is a better leader,
|
||||
and flashprog is very likely to become the dominant project in the future.
|
||||
|
||||
This is the *first* Libreboot release to include flashprog sources, instead
|
||||
of flashrom. Moving forward, we will *not* be providing support for flashrom.
|
||||
Only flashprog. Libreboot's distribution of flashprog *also* includes the
|
||||
macronix workaround (useful when externally flashing the ThinkPad X200).
|
||||
|
||||
Indeed, Nico's mentality has already proven to have merit; newer revisions of
|
||||
flashrom *break* internal flashing on ThinkPad X60 and T60, last time it was
|
||||
tested (some time during Q4 2023, on the latest git revision). Nico's flashprog
|
||||
is rock-solid on these older platforms, while having already added several major
|
||||
new features and hardware functionality - for instance, it has code for handling
|
||||
Riku Viitanen's recent changes on the RP2040 serprog images, for pulling unused
|
||||
chipselects high (useful on machines like ThinkPad W541 for external flashing).
|
||||
|
||||
Exact git log
|
||||
-------------
|
||||
|
||||
The following is an exact log of commits in the Git repository, on the master
|
||||
branch, relative to the previous January 2024 release:
|
||||
|
||||
```
|
||||
* d4d25993 Libreboot 20240225
|
||||
* 35e5464a config/vendor: fix entry for 9020sff
|
||||
* 53544ff3 disable hiding peg from mrc on dell 9020
|
||||
* 7073ba3e Merge pull request 'config/ifd/dell_ivybridge: Add ifd_nogbe' (#188) from nic3-14159/lbmk:add-dell-ivb-ifd-nogbe into master
|
||||
|\
|
||||
| * 75c9a2b1 config/ifd/dell_ivybridge: Add ifd_nogbe
|
||||
|/
|
||||
* 4680d154 ./update trees -u coreboot
|
||||
* 0add5571 NEW BOARD: dell 9020 optiplex sff
|
||||
* 4641d996 Merge pull request 'Add HP EliteBook 8560w, MXM' (#187) from Riku_V/lbmk:hp8560w into master
|
||||
|\
|
||||
| * f9ed92e4 Add HP EliteBook 8560w
|
||||
| * 4a9fca57 Patch SeaBIOS: Add MXM support
|
||||
* | b7bc713b update pico-serprog to new revision
|
||||
* | 31849194 Merge pull request 'Add Dell Latitude E5520' (#184) from nic3-14159/lbmk:latitude-ports into master
|
||||
|\ \
|
||||
| * | aadfa6bb config: Add Dell Latitude E5520
|
||||
| * | 381cb119 config/coreboot/default/patches : Renumber E6420, E6520, E5530 patches
|
||||
|/ /
|
||||
* | 06933491 coreboot/dell9020mt: disable pcie rebar
|
||||
* | a8435c4f remove coreboot/dell9020mtvga_12mb
|
||||
* | 872e3b92 Merge pull request 'update revision: pico-serprog' (#185) from Riku_V/lbmk:master into master
|
||||
|\|
|
||||
| * 0e3a5759 update revision: pico-serprog
|
||||
|/
|
||||
* 91792c0c update coreboot configs
|
||||
* 667854de Merge pull request 'Add Latitude E6420, E6520, and E5530' (#183) from nic3-14159/lbmk:latitude-ports into master
|
||||
|\
|
||||
| * eee22447 config: Add Dell Latitude E5530
|
||||
| * a5bfbe4d config: Add Dell Latitude E6520
|
||||
| * 617f2b88 config: Add Dell Latitude E6420
|
||||
* | abe33ce0 support making u-boot-only tarballs in releases
|
||||
* | 8e2e9735 add vga-only 9020 config
|
||||
* | dfad11f3 NEW BOARD: Dell OptiPlex 9020 MT (and 7020 MT)
|
||||
* | b2d8e118 import dell optiplex 7020/9020 patch from gerrit
|
||||
|/
|
||||
* 0c8fa201 update pico-serprog to Riku's new revision
|
||||
* 2ad52ed3 Merge pull request 'flashprog: apply the good old MX25 workaround' (#180) from Riku_V/lbmk:master into master
|
||||
|\
|
||||
| * 112d2a4e flashprog: apply the good old MX25 workaround
|
||||
|/
|
||||
* 77770f5a remove remaining flashrom remnants (use flashprog)
|
||||
* 36ddd6f6 update parabola dependencies for flashprog
|
||||
* 182a029f update arch dependencies for flashprog
|
||||
* e8523864 update trisquel dependencies for flashprog
|
||||
* 4131981c update debian dependencies for flashprog
|
||||
* af82d671 config/git: use flashprog instead of flashrom
|
||||
```
|
||||
|
||||
You may find archives of this release, by looking at the Libreboot download
|
||||
page. Support is available on IRC or Reddit if you need help.
|
||||
|
||||
NOTE: As in the previous release, HP 820 G2 images are not provided, because
|
||||
the inject scripts cannot currently produce a reliable checksum when inserting
|
||||
vendor files on these boards, due to the non-reproducible way in which the
|
||||
refcode file is compressed during insertion. Therefore, you
|
||||
must [build it from source](../docs/build/).
|
|
@ -12,7 +12,7 @@ Introduction
|
|||
implemented, and this page is still relevant for Libreboot 20231021. It applies
|
||||
to any system that requires vendor code to be inserted inside ROM images.**
|
||||
|
||||
(it also applies to Libreboot 20231101, 20231106 and 20240126)
|
||||
(it also applies to Libreboot 20231101, 20231106, 20240126 and 20240225)
|
||||
|
||||
**UPDATE (16 August 2023): This also applies to the recently added Dell
|
||||
Precision T1650 mainboard.**
|
||||
|
|
|
@ -2388,7 +2388,7 @@ Reported on T60. Another user reported on X60. Happened when booting from
|
|||
battery. On the X60 reported, booting with charger connected worked, but
|
||||
this GRUB error is produced when booting on battery.
|
||||
|
||||
Happens in 20240126. Does not happen in 20230625.
|
||||
Happens in 20240126 and 20240225. Does not happen in 20230625.
|
||||
|
||||
A bisect is indicated; possibly in GRUB, but if nothing is found there,
|
||||
then the bug will be in coreboot. Could be either of them.
|
||||
|
@ -2418,3 +2418,42 @@ out of date, for example only goes up to Broadwell even with the out of
|
|||
tree patches.
|
||||
|
||||
Port it to skylake and above.
|
||||
|
||||
interesting video
|
||||
=================
|
||||
|
||||
<https://www.youtube.com/watch?v=5qauRh7eTNY>
|
||||
|
||||
Automate testing
|
||||
================
|
||||
|
||||
Even though there's lots of error handling, it's better to be paranoid than
|
||||
brick users' machines.
|
||||
|
||||
Unit tests
|
||||
----------
|
||||
|
||||
- Build time or separate?
|
||||
- me_cleaner -c: checks that ime was inserted and has valid signatures
|
||||
|
||||
CI
|
||||
--
|
||||
|
||||
Preferably self-hosted. Run tests for every commit. There could be tests of
|
||||
different size, and even a periodic nightly release could be done.
|
||||
|
||||
Integrating this with an automated test stand would also be doable. At the
|
||||
very least, it would assure that the ROM images boot successfully.
|
||||
|
||||
Board status
|
||||
============
|
||||
|
||||
As the number of ports grows, it becomes harder to keep track of what works.
|
||||
Let's build a machine-readable repo documenting every release (or commit)
|
||||
on every board. What features/payloads work, maybe include errata text field.
|
||||
A HTML report could also be generated and published online.
|
||||
|
||||
On top of this, an easy to use installer could be developed. It would know
|
||||
to not install an unbootable (broken) ROM, and would inform users about any
|
||||
known problems and have meaningful options.
|
||||
|
||||
|
|
Loading…
Reference in New Issue