Größe: 894
Kommentar:
|
← Revision 6 vom 2017-02-16 00:33:52 ⇥
Größe: 5491
Kommentar: Bild vergrößert
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 1: | Zeile 1: |
/* HINWEIS. Dies ist eine Vorlage, die du selbst ausfüllen musst. */ /* Dazu einfach den Text in (Klammern) durch entsprechenden Text ersetzen. */ |
|
Zeile 5: | Zeile 3: |
Kategorie:: Basteln /Sicherheit Beteiligte:: [[vm069]] Status:: Angefangen |
Kategorie:: Basteln / Sicherheit Beteiligte:: [[Nutzer/Valy | Valy]], [[Nutzer/Josch | Johannes]], [[Nutzer/Lars | Lars]], [[Nutzer/TomH | TomH]] Status:: Thinkpad X60s: 1 |
Zeile 10: | Zeile 7: |
Letzte Aktivität:: 2016-03 | Letzte Aktivität:: 2017-02 |
Zeile 14: | Zeile 11: |
= Erstes Treffen 09-03-2016 |
|
Zeile 17: | Zeile 12: |
Wir wollen unsere kompatiblen Geraete vom mitgelieferten unfreien BIOS/UEFI befreien und somit die Anzahl an potentiellen Backdoors an unserem Geraet zu reduzieren. | Wir wollen unsere kompatiblen Geraete vom mitgelieferten unfreien BIOS/UEFI befreien und somit die Anzahl an potentiellen Backdoors an unserem Geraet zu reduzieren. |
Zeile 20: | Zeile 15: |
* "kaputtes" X200 zum Testen * ein X60s |
|
Zeile 22: | Zeile 19: |
* SPI-Schnittstelle: * SPI-Host der spi-dev Schnittstelle bereitstellt (z.B. Raspberry-Pi) * vorhanden: Buspirate v4 -- Nutzbarkeit mit flashrom ist fuer BP v3 gegeben |
|
Zeile 23: | Zeile 24: |
= Wissensquellen = | = 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 = |
Zeile 25: | Zeile 48: |
= Anleitungen und Erfahrungen = == Befreiung eines X60s == === Download === * download libreboot_src.tar.xz from [[https://libreboot.org/download/ | 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 [[https://www.flashrom.org/FAQ|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|{{attachment:libreboot_x60s_vesa.jpg||width=50%}}]] == Befreiung eines X200 == Eine Anleitung dafür gibt es beim [[https://libreboot.org/docs/install/x200_external.html | 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 == |
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
- Status
- Thinkpad X60s: 1
- Start-Datum
- 2016-03
- Letzte Aktivität
- 2017-02
Inhaltsverzeichnis
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
- Gerät ("target") öffnen, Chip freilegen
- auf Überträger ("host") flashrom installieren
- prüfen ob Kommunikation mit EEPROM-Chip möglich ist
- libreboot herunterladen und kompilieren
- libreboot-utils installieren (oder vorhandenes flashrom verwenden)
- Sicherungen:
- alten Flash-Inhalt sichern (mehrach herunterladen und sicherheitshalber vergleichen)
- MACs von allen Netzwerkschnittstellen aufschreiben
- Flashen des Libreboot's
- 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
- mindestens Buspirate v3 wird unterstützt
Wissensquellen
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
ersten Teil des Flash (bis auf die letzten 64k) überschreiben:
./flash i945lenovo_firstflash ../libreboot_r20160907_grub_x60/x60_deqwertz_txtmode.rom
- sich über die scheinbare Fehlermeldung wundern (welche nur einer Besonderheit des Schreibschutzes für en EEPROM-Chips aufgrund des alten Lenovo-BIOS geschuldet ist)
- ausschalten, kurz warten, wieder anschalten
- großartige Erleichterung, weil wunderbar flott das neue grub des coreboot-BIOS sichtbar wird
auch die letzten 64k des Flash überschreiben:
./flash i945lenovo_secondflash ../libreboot_r20160907_grub_x60/x60_deqwertz_txtmode.rom
- ausschalten, kurz warten, wieder anschalten
- weiterhin läuft alles ganz wunderbar
Wechsel vom Text-Modus auf den Vesa-Modus (mehr Buntheit beim Booten):
./flash update ../libreboot_r20160907_grub_x60/x60_deqwertz_vesafbmode.rom
- 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!
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