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
Revision 5 vom 2017-02-16 00:27:27
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