Freie initiale Firmware

Aus C3D2
Zur Navigation springen Zur Suche springen

Zum Ersatz von (üblicher Weise leider) nicht freier initialer Firmware (BIOS, UEFI & Co) gibt es freie Software, wie #coreboot (oder gar #Libreboot).

coreboot

Hardware für die Anwendung coreboot

Desktop
Laptop
Siehe auch
  • Lenovo ThinkPad X230
  • Lenovo ThinkPad T440p
Server

Betriebssystem für die Anwendung coreboot

Debian für die Anwendung coreboot

  • (aktuelles) Debian 9

pauschales Aktualisieren der Pakete

apt upgrade -y

Installieren vom Paket git, da ansonsten nicht einfach (per git) aus der Quelle von coreboot der Code für coreboot bezogen werden kann

apt install -y git

Beziehen vom Code bei der Quelle von coreboot

git clone https://review.coreboot.org/coreboot

Wechseln in das Verzeichnis mit dem Code für coreboot

cd coreboot/

Installieren von (für das Kompilieren von coreboot benötigten) Paketen, da ansonsten nicht kompiliert werden kann

apt install -y m4 bison flex clang zlib1g-dev gnat automake libncurses5-dev
make crossgcc CPUS=$(nproc)

die ROM chip size erhält man mit flashrom

apt install -y flashrom
flashrom --programmer internal

Enter the Mainboard menu.

make menuconfig
  • In Mainboard vendor select the vendor of your board.
  • In Mainboard model select your exact mainboard name.
  • In ROM chip size select the exact size of the flash ROM chip you want to flash the coreboot image on. (see output of flashrom command)

FreeBSD für die Anwendung coreboot

Testen!

pauschales Aktualisieren der Pakete

pkg upgrade -y

Installieren vom Paket git, da ansonsten nicht einfach (per git) aus der Quelle von coreboot der Code für coreboot bezogen werden kann

pkg install -y git

Beziehen vom Code bei der Quelle von coreboot

git clone https://review.coreboot.org/coreboot

Wechseln in das Verzeichnis mit dem Code für coreboot

cd coreboot/

Installieren von (für das Kompilieren von coreboot benötigten) Paketen, da ansonsten nicht kompiliert werden kann

pkg install -y bison m4 flex clang zlib1g-dev automake libncurses5-dev
  • gnat
    • gcc6-aux
gmake crossgcc

coreboot anwenden

BIOS durch coreboot ersetzen

Grundsätzliches
  • Klammern nur an den Rechner, wenn es vom Strom getrennt ist.
Vorbereitung
Rahmenbedingen (fürs beschriebene Vorgehen)
  • (aktuelles) Debian 9
  • ThinkPad T520
  • Board (via USB am Rechner von dem aus geschrieben werden soll und zum Anschließen der Klammern, die am Rechner hängen, der beschrieben werden soll)
    Typ?
    • WCH CH341A SPI programmer
  • Klammern
    Typ?


(optionale) Sicherung vom bestehenden BIOS
  • ein erstes Mal auslesen
  • ein weiteres Mal auslesen
  • die beiden (oder auch noch weiter Sicherungen) miteinander vergleichen, um sicherzustellen, dass nicht fehlerbehaftet Ausgelesen wurde

coreboot ändern

Rahmenbedingen (fürs beschriebene Vorgehen)
  • (aktuelles) Debian 9
  • ThinkPad T520


Libreboot

Hardware

#Hardware meint hier nicht die Geräte, die die freie initiale Firmware installiert bekommen sollen, sondern die #Hardware, die für das Installieren genutzt wird.

Im HQ gibt es (2019-09) eine Box EEPROM (ttyUSB)

Controller PL2303

  • Anschließen

(mit einem Fedora 30)

dmesg

[20854.366314] usb 1-2: new full-speed USB device number 12 using xhci_hcd
[20854.493877] usb 1-2: New USB device found, idVendor=067b, idProduct=2303, bcdDevice= 3.00
[20854.493884] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[20854.493888] usb 1-2: Product: USB-Serial Controller
[20854.493892] usb 1-2: Manufacturer: Prolific Technology Inc.
[20854.498017] pl2303 1-2:1.0: pl2303 converter detected
[20854.499556] usb 1-2: pl2303 converter now attached to ttyUSB0

Chromebook

Chromebooks sind Laptops und Tablets, die standardmäßig mit ChromeOS ausgeliefert werden. ChromeOS ist ein von Google entwickeltes Betriebssystem und daher nicht sehr nutzbar und privatsphärefreundlich. Zum glück können Chromebooks mithilfe von veränderter Firmware zu normalen Laptops umgewandelt werden, auf denen dann Linux, BSDs und andere herkömmliche Betriebsysteme installiert werden können. Wie das funktioniert wird auf folgenden Seiten beschrieben:

SuzyQable

Das SuzyQable im Space

Da firmware flashen generell immer ein gewisses Risiko birgt kann es sein, dass nach einem Flash der Laptop nicht mehr funktioniert, d.h. er ist gebricked. Allerdings ist das bei Chromebooks kein großes Problem, denn mit einem SuzyQ Debug Cable kann nach einem fehlgeschlagenen Flash ein Backup aufgespielt werden damit der Laptop wieder läuft.

Im Space haben wir so ein Kabel. Es ist im Kästchenschrank neben den Widerständen. Die Anleitung zum unbricken befindet sich hier: https://docs.chrultrabook.com/docs/unbricking/unbrick-suzyq.html

SuzyQable Tipps und Tricks

Das SuzyQable kommt meißtens in den obersten linken USB-C port des Chromebooks, der USB-A Port kommt an einen Rechner, den ihr zum flashen verwendet. Wenn das SuzyQable richtig verbunden ist sollte bei lsusb das folgende Gerät 18d1:5014 Google Inc. Cr50 erscheinen. Das SuzyQable ist unidirektional, das heißt wenn es nicht funktioniert, umdrehen (das kabel im Space ist nicht wirklich gut zu drehen, besser ist es das Chromebook umzudrehen).

In der Anleitung steht man soll folgenden command ausführen: echo "ccd open" | sudo tee -a /dev/ttyUSB0. Ich empfehle allerdings mit sudo screen /dev/ttyUSB0 zu arbeiten und im screen Fenster ccd open einzugeben, da man dann direkt sieht ob es funktioniert und nicht erst beim flashen merkt, ob etwas falsch ist.

Wenn bei einem Lenovo Thinkpad C13 Chromebook (kann auch bei anderen modellen funktionieren) nach dem flashen kein POST screen erscheint, kann die Batterie wieder eingesteckt, ein Ladekabel angesteckt und die Tastenkombination Escape + Reload (F3) + Power Button verwendet werden um das Gerät zum laufen zu kriegen.

Veranstaltungen

Veranstaltungen anderer

Konferenzen

Open Source Firmware Conference

Siehe auch