= 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:: [[Nutzer/Valy | Valy]], [[Nutzer/Josch | Johannes]], [[Nutzer/Lars | Lars]], [[Nutzer/TomH | TomH]] Status:: Thinkpad X60s: 1 Start-Datum:: 2016-03 Letzte Aktivität:: 2017-02 <> = 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 [[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 == ---- KategorieProjekt