Libreboot – Installation auf einem Thinkpad X200

März 19th, 2018 § 0 comments § permalink

Was ist Libreboot?

Libreboot ist ein Fork des etwas bekannteren Coreboot. Beide sind freier, open-source Ersatz für proprietäre BIOS (aka das Ding, was immer kommt, wenn ihr euren PC bootet).

Und warum das ganze?

Ihr habt also auf eurem Rechner Linux laufen, und denkt jetzt seid ihr sicher vor Trojanern und Rootkits? Tja, da muss ich euch enttäuschen. Auf so einem BIOS-Chip sind meist mindestens 4MB Platz. Manchmal auch 8MB, manchmal 16MB. Da passt verdammt viel drauf – zur Visualisierung: Auf einem Freifunk-Router mit 4MB läuft ein komplettes Linux. Und was ist jetzt auf diesem doofen Chip? Das weiß leider niemand außer dem Hersteller, denn so ist das nunmal mit proprietärer Software. Auf fast allen Thinkpads ist da schonmal Computrace – eine nette kleine Spyware mit Rootkit und eigenem TCP/IP-Stack. Die telefoniert nach Hause und fragt regelmäßig einen Server in Kalifornien, ob das Thinkpad als gestohlen gemeldet wurde. Tolles Feature für Firmenkunden. Doofer Bug für alle, die Datenschutz cool finden. Mit einer einfachen Neuinstallation eures Systems werdet ihr die nicht los – denn die ist auf dem BIOS-Chip. Und die hat immer Root – denn sie ist noch eine Ebene über dem System. Allein das war für mich genug um den Mist zu ersetzen.

Dann ist da noch die nette Sache mit den whitelists: An sich ist miniPCI ein Standard. Ihr solltet also jegliche miniPCI-Karte in euren Rechner einbauen können, und das muss laufen. Tut es aber nicht – weil euer BIOS nach der Lenovo-Herstellerkennung sucht – und wenn es die nicht findet, verweigert es den Bootvorgang. Und wenn ihr jetzt die serienmäßige Broadcom-WLAN-Karte durch eine bessere ersetzen wollt? Tja, doof gelaufen.

Und wie mache ich das jetzt?

Tja, das ist jetzt der schwierige Part. Denn ihr müsst direkt an die Hardware – theoretisch könntet ihr den Chip auch einfach über Software neu beschreiben, aber leider hat der (zumindest bei Lenovo) einen Schreibschutz, der nur extern umgangen werden kann. Wenn ihr dann erst mal Libreboot installiert habt, könnt ihr den Schreibschutz auch deaktiveren – und in Zukunft direkt auf den Chip zugreifen.

Ihr braucht also ein passendes Programmiergerät – das kann z.B. ein Raspberry Pi sein, oder ein Bus Pirate.

In diesem Beispiel benutze ich einen Raspberry, weil der eben gerade da war. :) Mittlerweile gibt im Maschinenraum aber auch wieder einen Bus Pirate.

Raspberry vorbereiten:

- Raspbian Lite runterladen: https://www.raspberrypi.org/downloads/raspbian/
- auf SD-Karte (>4gb) kopieren, z.B. $ dd bs=1M if=[IMG] of=[DEVICE]
- SSH aktivieren: Datei namens SSH in Boot-Partition anlegen
- SD-Karte in den Raspberry stecken, Ethernet anschließen, Netzteil anschließen
- die IP rausfinden (z.B. auf der Oberfläche des Routers nachschauen)
- Terminal öffnen und verbinden: ssh pi@your.pi.address -p 22 (passwort: raspberry)
- $ sudo raspi-config
- Expand Filesystem, Change Locale (de_DE.UTF-8 UTF-8), en_GB.UTF-8, timezone einstellen, aktivieren: SSH server, SPI, I2C
- $ sudo apt-get update && sudo apt-get dist-upgrade && reboot
- $ sudo apt-get update && sudo apt-get install libftdi1 libftdi-dev libusb-dev libpci-dev subversion libusb-1.0-0-dev
Flashrom installieren:
- $ svn co https://code.coreboot.org/svn/flashrom/trunk flashrom
- $ cd flashrom
- $ make
- $ sudo make install

Libreboot-ROM-Image vorbereiten (auf dem PC):

- Utils & ROMs runterladen: http://mirror.helium.in-berlin.de/libreboot/stable/20160907/
- Ordner erstellen als Zwischenspeicher: # mkdir ~/work
- Entpacken: # cd ~/work && tar -xvJf ~/Downloads/libreboot_r20160907_util.tar.xz
- Bios-Chip-Größe rausfinden: # sudo dmidecode | grep ROM\ Size

- dementsprechend dafür passendes ROM aussuchen
- MAC-Adresse des Rechner finden: ifconfig eth0
- MAC-Adresse passend einfügen: # cd ~/work/libreboot_r20160907_util/ich9deblob/x86_64 ; # sudo ./ich9gen --macaddress XX:XX:XX:XX:XX:XX
- ins ROM kopieren: bei 8mb-rom: # dd if=ich9fdgbe_8m.bin of=<pfad zur vorlage> bs=1 count=12k conv=notrunc ; bzw. 4mb: # dd if=ich9fdgbe_4m.bin of=<pfad zur vorlage> bs=1 count=12k conv=notrunc
- auf den Pi kopieren: # scp ~/work/libreboot.rom pi@your.pi.address:~/flashrom/libreboot.rom

Pi ausschalten:
pi# sudo shutdown now -hP

Installation:

Thinkpad zerlegen, Chip finden, Nummer/Typ aufschreiben, entsprechend anschließen: http://netzfueralle.blog.rosalux.de/2016/05/15/libreboot-auf-lenovo-thinkpad-x200/#raspberry_pi_mit_dem_romchip_verkabeln
https://github.com/bibanon/Coreboot-ThinkPads/wiki/X200-X201-Hardware-Flashing-with-Raspeberry-Pi
(Chip-Namen: https://www.flashrom.org/Supported_hardware)

Pi booten, per ssh anmelden
pi# cd ~/flashrom
pi# ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 --chip <your_chip_name> -r romread1.rom
pi# ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 --chip <your_chip_name> -r romread2.rom
pi# ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 --chip <your_chip_name> -r romread3.rom
pi# sha512sum romread*.rom
-> checksum gleich? -> cool, rom speichern als backup
-> dann flashen:
pi# ./flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=512 --chip <your_chip_name> -w libreboot.rom
-> ok? -> dann Pi aus, alles gut! Ansonsten eben nochmal.

Yeah! Freiheit!

Mehr Infos und das ganze in live und Farbe gibt's am 18.04. in unserem Workshop zum Thema.

Vortrag zu CC-Lizenzen von Konrad Behr

Februar 27th, 2018 § 0 comments § permalink

Leider kommt der Beitrag etwas spät und wir hätten das ganze auch etwas besser ankündigen können... aber so zumindest das "Review"...

» Read the rest of this entry «

Vortrag: Open Hardware & co – 28.2. ab 21Uhr

Februar 27th, 2018 § 0 comments § permalink

Um die Freie-Software/Open-Source/Lizenzen-Reihe im Maschinenraum fortzusetzten gibt's am Mittwoch ab 21Uhr einen Vortrag & anschließende Diskussion zu Open Hardware.

Kommt vorbei & lernt was & diskutiert mit!

Labornetzteil Korad KD6005P unter Linux verwenden

Januar 24th, 2018 § 0 comments § permalink

Der Maschinenraum hat seit Dezember auch ein todschickes Labornetzteil für all eure Projekte!

Wir haben uns damals bewusst für ein Modell mit serieller Schnittstelle (inkl. USB-Anschluss) entschieden, weil wir gerne mit sowas spielen. :)
Das Netzteil kann also live-Daten ausgeben (ihr könnt den Stromverbrauch verfolgen usw.) und ist komplett vom Rechner aus fernsteuerbar.

Hier mal eine kleine Dokumentation, wie das unter Linux so läuft (theoretisch auch auf Mac OS und Windows, aber das ist euer Problem):

Die Original-Software ist...nunja, Original-Software eben. Die bauen Hardware, nicht Software. Das zeigt sich. Außerdem läuft die nur unter Windows 98.
Aber da haben nette Leute was schönes gebaut! Freie Software ist doch was tolles.
Heißt LabPowerQT, könnt ihr hier runterladen:
https://github.com/crapp/labpowerqt/releases
Zum direkt benutzen gibt's die AppImage-Version. Die muss nach Download evtl. noch ausführbar gemacht werden, also ab ins terminal eures vertrauens und
chmod +x /pfadzurdatei/LabPowerQt-x86_64.AppImage
Und wenn ihr schonmal im Terminal seit, könnt ihr gleich kucken ob ihr auf das Netzteil zugreifen dürft:
- Netzteil über USB anschließen, Netzteil einschalten
dmesg | tail (falls das nicht läuft, muss noch ein sudo davor - zumindest bei debian)
- da seht ihr dann, als was das Netzteil angesprochen wird, bei mir z.B. ttyACM0

- mal kucken, welche Benutzergruppen da drauf zugreifen dürfen:
ls -l /dev/ttyACM0

- hier müsste ich also in der Gruppe dialout sein, also:
usermod -a -G dialout euer-benutzername

Jetzt das Programm starten, dann direkt zu File->Settings->Device->Add.
Ein bisschen klicken, dann kommen die Einstellungen:

Die Spannung könnt ihr auf 61 setzen, der Rest müsste den Voreinstellungen entsprechen.

Im nächsten Schritt auf "Test Connection" klicken -> läuft!

Zum Verbindung aufbauen müsst ihr jetzt noch im Programm auf das Steckersymbol oben links doppelklicken.
Und dann läufts! Alles was orange ist, lässt sich über Doppelklick auswählen und einstellen, z.B. auch akustische Warnungen beim Überschreiten eines bestimmten Wertes, etc..

Viel Spaß beim Rumspielen!

Maschinenraum Kennenlerntreffen am 06.12.2017

Dezember 2nd, 2017 § 0 comments § permalink

Hallo an alle!

Pünktlich zum sich nährenden Jahresende und zum Nikolaus, wollen wir euch am 06.12.2017 ab 16:00 ganz herzlich einladen um den Maschinenraum und die Initiativmitglieder kennenzulernen
Kommt einfach vorbei und löchert uns mit Fragen oder quatscht mit uns über eure Ideen und Projekte, die wir eventuell zusammen umsetzen können. Eventuell kann sich der ein oder andere sogar vorstellen, die Initiativarbeit im ehrenamtlichen Rahmen fortzuführen....

Der 06.12. hält aber noch mehr für euch bereit! Außer unsererem "Tag der offenen Tür", ist in der M18 auch noch die Initiativen-Weihnachtsfeier, was euch die Möglichkeit gibt mit den anderen Initiativen des StuKo ein bisschen in weihnachtliche Stimmung zu kommen.

 

Noch einmal zum Mitschreiben:
WAS? --> Maschinenraum Kennenlerntreffen
Und WO? --> In der M18 (Haus der Studierenden Marienstraße 18)
Aber ab WANN denn? --> ab 16:00!
Und muss ich was wissen oder mitbringen? --> Nein, gute Laune und ein bisschen Interesse. Wenn ihr Lust habt schaut euch doch einfach unseren Blog an um ein groben Eindruck zu bekommen, was unter anderem im Maschinenraum passiert.

Where Am I?

You are currently browsing the Open Source category at maschinenraum.