hack-hro wiki
  • Kommentare
  • Geschützte Seite
  • Menu
    • Navigation
    • AktuelleÄnderungen
    • SeiteFinden
    • ÜbersichtsKarte
    • Help
    • HilfeInhalt
    • HilfeZurMoinWikiSyntax
    • Anzeige
    • Dateianhänge
    • Info
    • Rohform
    • Druckansicht
    • Actions
    • HoverCraft
    • GraphVizCleanup
    • Editieren
    • Laden
    • Speichern
  • Anmelden

Navigation

  • StartSeite
  • AktuelleÄnderungen
  • SeiteFinden
  • HilfeInhalt

Seiteninhalt hochladen

Sie können für die unten genannte Seite Inhalt hochladen. Wenn Sie den Seitennamen ändern, können Sie auch Inhalt für eine andere Seite hochladen. Wenn der Seitenname leer ist, leiten wir den Seitennamen vom Dateinamen ab.

Datei, aus der der Seiteninhalt geladen wird
Seitenname
Kommentar

hack-hro wiki:
  • Projekte
  • Libreboot

Info

Beschreibung
Libreboot is a free BIOS or UEFI replacement (free as in freedom); libre boot firmware that initializes the hardware and starts a bootloader for your operating system.
Kategorie
Basteln / Sicherheit
Beteiligte

Valy, Johannes, Lars, TomH

Status
Thinkpad X60s: 1
Start-Datum
2016-03
Letzte Aktivität
2017-02

Inhaltsverzeichnis

  1. Info
  2. Projekthintergrund/Motivation
  3. Materialien
  4. Ablauf
    1. Mit phyischem Zugang zum EEPROM-Chip
  5. Software
    1. libreboot-util
    2. flashrom
  6. Wissensquellen
  7. Anleitungen und Erfahrungen
    1. Befreiung eines X60s
      1. Download
      2. EEPROM auslesen
      3. Praktische Durchführung
    2. Befreiung eines X200
    3. Befreiung eines T400

Projekthintergrund/Motivation

Wir wollen unsere kompatiblen Geraete vom mitgelieferten unfreien BIOS/UEFI befreien und somit die Anzahl an potentiellen Backdoors an unserem Geraet zu reduzieren.

Materialien

  • "kaputtes" X200 zum Testen
  • ein X60s
  • Pomona 5252 (16-Pin)
  • Pomona 5250 (8-Pin)
  • SPI-Schnittstelle:
    • SPI-Host der spi-dev Schnittstelle bereitstellt (z.B. Raspberry-Pi)
    • vorhanden: Buspirate v4 -- Nutzbarkeit mit flashrom ist fuer BP v3 gegeben

Ablauf

Mit phyischem Zugang zum EEPROM-Chip

  1. Gerät ("target") öffnen, Chip freilegen
  2. auf Überträger ("host") flashrom installieren
  3. prüfen ob Kommunikation mit EEPROM-Chip möglich ist
  4. libreboot herunterladen und kompilieren
  5. libreboot-utils installieren (oder vorhandenes flashrom verwenden)
  6. Sicherungen:
    • alten Flash-Inhalt sichern (mehrach herunterladen und sicherheitshalber vergleichen)
    • MACs von allen Netzwerkschnittstellen aufschreiben
  7. Flashen des Libreboot's
  8. Freuen!

Software

libreboot-util

flashrom

  • Verwendung mit Buspirate ist möglich (als SPI/USB-Umsetzer)
    • mindestens Buspirate v3 wird unterstützt
      • Version 4 geht wohl auch: http://dangerousprototypes.com/forum/viewtopic.php?f=40&t=6668&sid=ae113e6422dbcbc77421faf6ee12c1c5

    • http://code.coreboot.org/p/flashrom/source/tree/HEAD/trunk/buspirate_spi.c

Wissensquellen

https://libreboot.org/docs/

Anleitungen und Erfahrungen

Befreiung eines X60s

Download

  • download libreboot_src.tar.xz from libreboot.org/download

  • Build-Dependencies via $libreboot/resources/scripts/helpers/build/dependencies/{parabola|trisquel7} installieren (als root - oder die Paketliste extrahieren)
    • extrahieren der Build-Dependencies für Debian/Trisquel: sed -n 's/^.*apt-get .* install//p' resources/scripts/helpers/build/dependencies/trisquel7 | tr '\n' ' '

    • aktuell (2016) sind es: wget git base-devel libstdc++5 arm-none-eabi-gcc libpciaccess ncurses doxygen iasl gdb flex bison autogen m4 autoconf help2man freetype2 automake fuse fuse-exfat xz gawk device-mapper libtool python bdf-unifont pciutils zlib libftdi libftdi-compat

  • get all the source code and patch: ./download -y all

EEPROM auslesen

  • flashrom -p internal -r original.bin
    • falls es einen mmap-Fehler gibt, dann folge der flashrom-FAQ: füge zur Kernel-Kommandozeile iomem=relaxed hinzu

    • da die EEPROM-Flash-Erkennung mit dem Lenovo-Original-BIOS nicht spontan funktioniert, müssen wir entweder das mit libreboot mitgeliefert flashrom verwenden (hier: flashrom/i686/flashrom_lenovosst_macronix) oder die ID manuell angeben: flashrom -f -c MX25L1605

    • Schreibzugriff (im X60s direkt) scheint mit dem generischen flashrom-Werkzeug nicht möglich zu sein; mit dem libreboot-flashrom klappt es wohl

Praktische Durchführung

  1. ersten Teil des Flash (bis auf die letzten 64k) überschreiben:

    ./flash i945lenovo_firstflash ../libreboot_r20160907_grub_x60/x60_deqwertz_txtmode.rom
  2. sich über die scheinbare Fehlermeldung wundern (welche nur einer Besonderheit des Schreibschutzes für en EEPROM-Chips aufgrund des alten Lenovo-BIOS geschuldet ist)
  3. ausschalten, kurz warten, wieder anschalten
  4. großartige Erleichterung, weil wunderbar flott das neue grub des coreboot-BIOS sichtbar wird
  5. auch die letzten 64k des Flash überschreiben:

    ./flash i945lenovo_secondflash ../libreboot_r20160907_grub_x60/x60_deqwertz_txtmode.rom
  6. ausschalten, kurz warten, wieder anschalten
  7. weiterhin läuft alles ganz wunderbar
  8. Wechsel vom Text-Modus auf den Vesa-Modus (mehr Buntheit beim Booten):

    ./flash update ../libreboot_r20160907_grub_x60/x60_deqwertz_vesafbmode.rom
  9. ausschalten, kurz warten, wieder anschalten

Fazit: das war ganz schön aufregend - aber die coreboot- und libreboot-Menschen haben den Ablauf wirklich sehr leicht gemacht!

attachment:libreboot_x60s_vesa.jpg

Befreiung eines X200

Eine Anleitung dafür gibt es beim Libreboot-Projekt.

  • das X200 muss wohl aufgeschraubt werden, um an das BIOS zu kommen
  • Spezifika zu X200'ern: https://libreboot.org/docs/hcl/x200.html#x200s

  • es gibt drei verschiedene BIOS-Chip-Gehäuseformen: SOIC-16, SOIC-8 (Notebook aufschrauben und nachsehen) und WSON (beim X200S und beim X200Tablet)

    • bei SOIC-16 und SOIC-8 müssen entsprechende IC-Kontaktierungsklammern verwendet werden
    • bei WSON müssen Kabel angelötet werden
    • unterschiedliche Beschaltung der Klammern mit Signalen vom Flashgerät

  • als Flashgerät wird in der Anleitung ein Beagle Bone Black (BBB) verwendet – dies muss für seine Aufgabe vorbereitet werden

Befreiung eines T400


KategorieProjekt

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01