Libreboot-Bootreihenfolge festlegen (Beispiel IBM X200)

WICHTIG: Dieser Beitrag ist in seiner Entwurffassung veröffentlicht und dient vorrangig als Unterstützung bei der autonomen Lösungssuche durch den Leser. Der Beitrag erfüllt nicht die üblichen Qualitätsstandards dieses Blogs und erfordert damit ein tieferes Verständnis der Zusammenhänge. Falsch angewendete Befehle können zu unerwünschten Problemen wie Datenverlust führen oder gar irreparable Defekte verursachen.

The easiest way to find the available boot methods is to look for “Searching bootorder for” in the SeaBIOS debug output.
- https://seabios.org/Runtime_config#Configuring_boot_order (web-archive)

if .. you get an error related to /dev/mem access, you should reboot with iomem=relaxed kernel parameter before running flashprog
On NetBSD and OpenBSD systems, the equivalent to iomem=relaxed in this case is kernel.securelevel=-1;
- https://libreboot.org/docs/install/devmem.html#devmem-access-error

Liste der Bootgeräte aus SeaBIOS-Log lesen

SeaBIOS has the ability to output diagnostic messages.
On coreboot these messages are generally written to the “cbmem” console (CONFIG_DEBUG_COREBOOT).
One can obtain the cbmem tool from the coreboot repository and run “cbmem -c” to view the SeaBIOS diagnostic messages.
- https://seabios.org/Debugging#Diagnostic_information

cbmem -c | grep '^Searching bootorder' |sort|uniq > /tmp/mybootlist.txt

Hinweis: Bei US-Keyboard-Layouts befindet sich Zirkumflex (^) auf Umschalt+6.

Liste der Bootgeräte nach Bedarf ordnen

${EDITOR:-vi} /tmp/mybootlist.txt

Aktuelle Firmware sichern

You should still make several dumps, even if you’re flashing internally, to ensure that you get the same checksums. Check each dump using sha1sum
- https://libreboot.org/docs/install/#howto-readwriteerase-the-boot-flash

flashrom -p internal -r ~/dump.bin

Firmware-ROM herunterladen

There are two possible flash chip sizes for the X200: 4MiB (32Mbit) or 8MiB (64Mbit). This can be identified by the type of flash chip below the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16.
- https://libreboot.org/docs/install/x200.html#open-source-biosuefi-firmware

Beispiellink zu Firmware: https://mirrors.mit.edu/libreboot/stable/20241206/roms/libreboot-20241206rev11_x200_4mb.tar.xz

  1. Firmware-ROM entpacken (tar xvf ...)
  2. Gewünschte ROM nach /tmp kopieren: (cp ...corebootfb.rom /tmp/)

Liste der Boot-Geräte in Firmware-ROM einfügen

Kommando cbfstool aus Paket coreboot-utils

cbfstool corebootfb.rom add -f mybootlist.txt -n bootorder -t raw
cbfstool corebootfb.rom print

BIOS mit modifizierter Firmware flashen

Kommando flashrom aus Paket fwupd

flashrom -p internal -c "MX25L3205(A)" -w /tmp/corebootfb.com