MetaFlash: Unterschied zwischen den Versionen
A (Diskussion | Beiträge) |
Pl (Diskussion | Beiträge) (→Details: add fancy link) |
||
(10 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 5: | Zeile 5: | ||
|involved=[[User:A]] | |involved=[[User:A]] | ||
|startdate=15.03.2014 | |startdate=15.03.2014 | ||
− | |status= | + | |status=Gestohlen, Neue Spende willkommen |
|wtf=SPI Programmierer | |wtf=SPI Programmierer | ||
|lastupdate=16.03.2014 <!-- if lastupdate is not set manually, the date will be set automatically to the date of the latest wikiapage --> | |lastupdate=16.03.2014 <!-- if lastupdate is not set manually, the date will be set automatically to the date of the latest wikiapage --> | ||
Zeile 11: | Zeile 11: | ||
}} | }} | ||
− | Das MetaLab hat jetzt den MetaFlash, einen aus einem Raspberry Pi & (im Moment) einem Breadboard bestehenden SPI Programmierer. Der MetaFlash befindet sich in der µC | + | Das MetaLab <s>hat jetzt den MetaFlash</s>'''wurde gestohlen''', einen aus einem Raspberry Pi (Rev B) & (im Moment) einem Breadboard bestehenden SPI Programmierer. Der MetaFlash befindet sich in der µC programmers-Lade im [[WhateverLab]]. Bisherig einziger Anwendungszweck: BIOS/UEFI SPI Chips neu programmieren. Im Moment können damit nur 8-pin DIP SPI Chips programmiert werden. Als in Wien lebender Mensch ist man nun also nicht mehr an kommerzielle Anbieter gebunden um sein BIOS flashen zu können. |
+ | |||
+ | [[Datei:MetaFlash-PCB.png|miniatur|rechts|Erstes PCB für die Schaltung.]] | ||
= Anschlüsse, Verdrahtung, Spezifikationen = | = Anschlüsse, Verdrahtung, Spezifikationen = | ||
Zeile 54: | Zeile 56: | ||
Der Programmierer wurde nach einer Anleitung von [http://www.win-raid.com/t58f16-Guide-Recover-from-failed-BIOS-flash-using-Raspberry-PI.html win-raid.com] zusammengestöpselt, welche auf der [http://flashrom.org/RaspberryPi Raspberry Pi Doku von flashrom.org] basiert. | Der Programmierer wurde nach einer Anleitung von [http://www.win-raid.com/t58f16-Guide-Recover-from-failed-BIOS-flash-using-Raspberry-PI.html win-raid.com] zusammengestöpselt, welche auf der [http://flashrom.org/RaspberryPi Raspberry Pi Doku von flashrom.org] basiert. | ||
+ | Es gibt [https://github.com/bibanon/Coreboot-ThinkPads/wiki/Hardware-Flashing-with-Raspberry-Pi hier] eine Auflistung der Pinouts "gängiger" Embedded Boards | ||
= Anleitung = | = Anleitung = | ||
Zeile 61: | Zeile 64: | ||
== Raspberry/MetaFlash Vorbereitung == | == Raspberry/MetaFlash Vorbereitung == | ||
− | # Raspberry Pi mit MetaFlash verdrahten (sollte bereits der Fall sein) | + | # Raspberry Pi GPIO Pins mit MetaFlash Breadboard verdrahten (sollte bereits der Fall sein) |
# Raspbian auf eine SD Karte einspielen | # Raspbian auf eine SD Karte einspielen | ||
# Ethernet anschließen | # Ethernet anschließen | ||
Zeile 83: | Zeile 86: | ||
== ROM Binary Vorbereitung == | == ROM Binary Vorbereitung == | ||
− | # UEFI bzw. BIOS ROM Datei organisieren. Zum Beispiel | + | # UEFI bzw. BIOS ROM Datei organisieren. Zum Beispiel von der Homepage des Mainboard Herstellers. |
# Mit [http://forums.mydigitallife.info/threads/48979-UEFITool-UEFI-firmware-image-viewer-and-editor UEFITool] sicherstellen dass das ROM das Format "Intel image" oder "XX region has intersection with YY region" (Bei Gigabyte Mainboards) hat. | # Mit [http://forums.mydigitallife.info/threads/48979-UEFITool-UEFI-firmware-image-viewer-and-editor UEFITool] sicherstellen dass das ROM das Format "Intel image" oder "XX region has intersection with YY region" (Bei Gigabyte Mainboards) hat. | ||
# Wenn nein, mittels "Extract body" in UEFITool den capsule header entfernen, dann nochmal überprüfen. | # Wenn nein, mittels "Extract body" in UEFITool den capsule header entfernen, dann nochmal überprüfen. | ||
Zeile 92: | Zeile 95: | ||
== ROM flashen == | == ROM flashen == | ||
+ | # Raspberry Pi vom Strom nehmen | ||
# Der SPI Chip muss mit dem MetaFlash Breadboard verbunden werden. Der Pin 1 des SPI Chips sollte dabei mit dem Steckplatz 1e am Breadboard verbunden sein und der Pin 5 mit dem Steckplatz 4f. (Die restlichen 6 Verbindungen sollten somit logisch sein: 2-->2e, 3-->3e, 4-->4e, 7-->2f, 6-->3f) | # Der SPI Chip muss mit dem MetaFlash Breadboard verbunden werden. Der Pin 1 des SPI Chips sollte dabei mit dem Steckplatz 1e am Breadboard verbunden sein und der Pin 5 mit dem Steckplatz 4f. (Die restlichen 6 Verbindungen sollten somit logisch sein: 2-->2e, 3-->3e, 4-->4e, 7-->2f, 6-->3f) | ||
# Dazu gibt es 2 Möglichkeiten: | # Dazu gibt es 2 Möglichkeiten: | ||
Zeile 102: | Zeile 106: | ||
# Stromversorgung sicherstellen, Stoßgebete an alle zuhörenden Mächte des Universums absenden & den Flash Vorgang starten: <code>sudo flashrom -w /foo/bar/YOUR_ROM_GOES.HERE -V -p linux_spi:dev=/dev/spidev0.0</code> | # Stromversorgung sicherstellen, Stoßgebete an alle zuhörenden Mächte des Universums absenden & den Flash Vorgang starten: <code>sudo flashrom -w /foo/bar/YOUR_ROM_GOES.HERE -V -p linux_spi:dev=/dev/spidev0.0</code> | ||
# It's NOT hung. Flash+Verify brauchen approximately forever. | # It's NOT hung. Flash+Verify brauchen approximately forever. | ||
− | # You're done. <code>sudo shutdown now</code>, Chip entnehmen bzw. Verbindung trennen, testen. | + | # You're done. <code>sudo shutdown now</code>, Strom abstecken, Chip entnehmen bzw. Verbindung trennen, testen. |
# Wer bei einem ASRock Mainboard jetzt durch eine fehlende Firewire GUID belästigt wird, schaut bitte [https://www.youtube.com/watch?v=XWA7LaFut1c hier] | # Wer bei einem ASRock Mainboard jetzt durch eine fehlende Firewire GUID belästigt wird, schaut bitte [https://www.youtube.com/watch?v=XWA7LaFut1c hier] | ||
= Potential MetaFlash Improvements / TODO = | = Potential MetaFlash Improvements / TODO = | ||
− | * Der MetaFlash muss neu etikettiert werden, das alte Label wurde noch erstellt als der MetaFlash namenlos war | + | <strike>* Der MetaFlash muss neu etikettiert werden, das alte Label wurde noch erstellt als der MetaFlash namenlos war</strike> |
+ | ** Erledigt -[[Benutzer:A|A]] ([[Benutzer Diskussion:A|Diskussion]]) 20:55, 18. Mär. 2014 (CET) | ||
* Der MetaFlash verfügt momentan über keine dezidierte SD Karte, dadurch muss sich jeder Raspbian immer neu aufsetzen. | * Der MetaFlash verfügt momentan über keine dezidierte SD Karte, dadurch muss sich jeder Raspbian immer neu aufsetzen. | ||
− | * Aus dem vorherig genannten Punkt ergibt sich dass der MetaFlash keine statische IP im Metalab hat. Das ist auch lästig, weil man dadurch immer Monitor & Tastatur jagen muss, oder nach zur MAC gehörenden IP fahnden muss. | + | * Aus dem vorherig genannten Punkt ergibt sich dass der MetaFlash keine statische IP im Metalab hat. Das ist auch lästig, weil man dadurch immer Monitor & Tastatur jagen muss, oder nach der zur MAC gehörenden IP fahnden muss. |
* Die Oberseite des Gehäuses des Raspberry Pi der für den MetaFlash verwendet wird hat keine Aussparung für den Raspberry Pi GPIO Anschluss & kann dadurch nicht verwendet werden. Sollte sich (sofern das Material geeeignet ist) via [[CNC-Fräse|Geil-o-mat]], [[Laser|Lazzor]] oder ansonsten via Handarbeit beheben lassen. | * Die Oberseite des Gehäuses des Raspberry Pi der für den MetaFlash verwendet wird hat keine Aussparung für den Raspberry Pi GPIO Anschluss & kann dadurch nicht verwendet werden. Sollte sich (sofern das Material geeeignet ist) via [[CNC-Fräse|Geil-o-mat]], [[Laser|Lazzor]] oder ansonsten via Handarbeit beheben lassen. | ||
* Die Entkopplung via Elko ist zwar funktionsfähig, aber nicht perfekt. Eigentlich sollte hier ein Elko in Parallelschaltung mit einem Keramik Kondensator verwendet werden. Ist aber eigentlich wurscht. | * Die Entkopplung via Elko ist zwar funktionsfähig, aber nicht perfekt. Eigentlich sollte hier ein Elko in Parallelschaltung mit einem Keramik Kondensator verwendet werden. Ist aber eigentlich wurscht. | ||
Zeile 114: | Zeile 119: | ||
* Der MetaFlash kann momentan nur 8-pin DIP SPI Chips flashen. Eigentlich sollte sich das aber auf beliebige Chip-Dimensionen erweitern lassen. | * Der MetaFlash kann momentan nur 8-pin DIP SPI Chips flashen. Eigentlich sollte sich das aber auf beliebige Chip-Dimensionen erweitern lassen. | ||
* Der MetaFlash verwendet momentan direkt Jumper-Drähte zum Anschluss an den Raspberry Pi. Ein Header wäre hier hübscher. | * Der MetaFlash verwendet momentan direkt Jumper-Drähte zum Anschluss an den Raspberry Pi. Ein Header wäre hier hübscher. | ||
− | * Ein SOIC Clip wäre für fix verlötete/nicht gesockelte Chips praktisch. | + | <strike>* Ein SOIC Clip wäre für fix verlötete/nicht gesockelte Chips praktisch.</strike> |
− | + | ** [[Benutzer:Mzeltner|m]] besitzt einen solchen, könnte man auf Anfrage borgen | |
− | |||
− | |||
− | [[ | ||
[[Kategorie:Inventar]] | [[Kategorie:Inventar]] | ||
[[Kategorie:WhateverLab]] | [[Kategorie:WhateverLab]] | ||
[[Kategorie:Projekte]] | [[Kategorie:Projekte]] |
Aktuelle Version vom 10. Februar 2016, 15:23 Uhr
Sprache: | Deutsch |
---|
MetaFlash | |
Gestartet: | 15.03.2014 |
Involvierte: | User:A |
Status: | Gestohlen, Neue Spende willkommen |
Beschreibung: | SPI Programmierer |
Shutdownprozedur: | |
Zuletzt aktualisiert: | 16.03.2014 |
Das MetaLab hat jetzt den MetaFlashwurde gestohlen, einen aus einem Raspberry Pi (Rev B) & (im Moment) einem Breadboard bestehenden SPI Programmierer. Der MetaFlash befindet sich in der µC programmers-Lade im WhateverLab. Bisherig einziger Anwendungszweck: BIOS/UEFI SPI Chips neu programmieren. Im Moment können damit nur 8-pin DIP SPI Chips programmiert werden. Als in Wien lebender Mensch ist man nun also nicht mehr an kommerzielle Anbieter gebunden um sein BIOS flashen zu können.
Anschlüsse, Verdrahtung, Spezifikationen
Verdrahtung
RPi header | SPI flash | Jumper-Wire |
---|---|---|
17 | Vcc 3.3V | Blue |
19 | DI / MOSI | Purple |
21 | DO / MISO | Grey |
23 | SCK | White |
25 | GND | Black |
24 | /CS / CS# | Green |
Details
Die MAC des verwendeten Raspberry Pi: b8:27:eb:c1:8e:3e
Der Programmierer wurde nach einer Anleitung von win-raid.com zusammengestöpselt, welche auf der Raspberry Pi Doku von flashrom.org basiert. Es gibt hier eine Auflistung der Pinouts "gängiger" Embedded Boards
Anleitung
Um mit dem MetaFlash einen UEFI SPI Chip neu zu programmieren:
Raspberry/MetaFlash Vorbereitung
- Raspberry Pi GPIO Pins mit MetaFlash Breadboard verdrahten (sollte bereits der Fall sein)
- Raspbian auf eine SD Karte einspielen
- Ethernet anschließen
- Entweder Monitor & Tastatur finden, oder später irgendwie via MAC die IP finden
- Raspberry Pi einschalten & einloggen, entweder lokal oder via ssh
- Sicherstellen dass die neueste Raspbian Version läuft. Wenn nicht-->
apt-get dist-upgrade
sudo apt-get install pciutils-dev
sudo apt-get install zlib1g-dev
sudo apt-get install build-essential
sudo apt-get install subversion
cd ~
svn co svn://flashrom.org/flashrom/trunk flashrom
cd flashrom
make
- Neuen Club-Mate holen
sudo make install
sudoedit /etc/modprobe.d/raspi-blacklist.conf
- -->Den Eintrag "blacklist spi-bcm2708" mit einem # auskommentieren
sudo shutdown -r now
ROM Binary Vorbereitung
- UEFI bzw. BIOS ROM Datei organisieren. Zum Beispiel von der Homepage des Mainboard Herstellers.
- Mit UEFITool sicherstellen dass das ROM das Format "Intel image" oder "XX region has intersection with YY region" (Bei Gigabyte Mainboards) hat.
- Wenn nein, mittels "Extract body" in UEFITool den capsule header entfernen, dann nochmal überprüfen.
- Den OPROMs des UEFI vielleicht ein Update spendieren wenn es sich um ein AMI UEFI handelt, mittels UBU
- Sicherstellen dass der SPI Chip für das Mainboard vorgesehen ist
- Sicherstellen, dass das ROM Binary file /exakt/ die Kapazität des SPI Chips hat
ROM flashen
- Raspberry Pi vom Strom nehmen
- Der SPI Chip muss mit dem MetaFlash Breadboard verbunden werden. Der Pin 1 des SPI Chips sollte dabei mit dem Steckplatz 1e am Breadboard verbunden sein und der Pin 5 mit dem Steckplatz 4f. (Die restlichen 6 Verbindungen sollten somit logisch sein: 2-->2e, 3-->3e, 4-->4e, 7-->2f, 6-->3f)
- Dazu gibt es 2 Möglichkeiten:
- Den SPI Chip direkt in das Breadboard stecken (Vorsichtig, aber bis zum Anschlag!), d.h. die SPI Chip Kerbe zeigt dabei vom Breadboard weg
- Den SPI Chip via Jumper-Drähten an das Breadboard anschließen. Bei Mainboards mit nicht-gesockeltem Chip kann das zwangweise notwendig sein. Siehe dazu ISP auf flashrom.org
- ROM Datei auf den Raspberry Pi transferieren
modprobe spi_bcm2708
modprobe spidev
- Man KÖNNTE jetzt den Inhalt des Chips mittels
sudo flashrom -E -V -p linux_spi:dev=/dev/spidev0.0
löschen, das sollte aber nicht notwendig sein. Es sei hier nur erwähnt. - Stromversorgung sicherstellen, Stoßgebete an alle zuhörenden Mächte des Universums absenden & den Flash Vorgang starten:
sudo flashrom -w /foo/bar/YOUR_ROM_GOES.HERE -V -p linux_spi:dev=/dev/spidev0.0
- It's NOT hung. Flash+Verify brauchen approximately forever.
- You're done.
sudo shutdown now
, Strom abstecken, Chip entnehmen bzw. Verbindung trennen, testen. - Wer bei einem ASRock Mainboard jetzt durch eine fehlende Firewire GUID belästigt wird, schaut bitte hier
Potential MetaFlash Improvements / TODO
* Der MetaFlash muss neu etikettiert werden, das alte Label wurde noch erstellt als der MetaFlash namenlos war
- Erledigt -A (Diskussion) 20:55, 18. Mär. 2014 (CET)
- Der MetaFlash verfügt momentan über keine dezidierte SD Karte, dadurch muss sich jeder Raspbian immer neu aufsetzen.
- Aus dem vorherig genannten Punkt ergibt sich dass der MetaFlash keine statische IP im Metalab hat. Das ist auch lästig, weil man dadurch immer Monitor & Tastatur jagen muss, oder nach der zur MAC gehörenden IP fahnden muss.
- Die Oberseite des Gehäuses des Raspberry Pi der für den MetaFlash verwendet wird hat keine Aussparung für den Raspberry Pi GPIO Anschluss & kann dadurch nicht verwendet werden. Sollte sich (sofern das Material geeeignet ist) via Geil-o-mat, Lazzor oder ansonsten via Handarbeit beheben lassen.
- Die Entkopplung via Elko ist zwar funktionsfähig, aber nicht perfekt. Eigentlich sollte hier ein Elko in Parallelschaltung mit einem Keramik Kondensator verwendet werden. Ist aber eigentlich wurscht.
- Der MetaFlash verwendet momentan ein Breadboard. Das ist wackelig und fehleranfällig. Irgendwann sollte man hierzu vielleicht eine Platine ätzen.
- Der MetaFlash kann momentan nur 8-pin DIP SPI Chips flashen. Eigentlich sollte sich das aber auf beliebige Chip-Dimensionen erweitern lassen.
- Der MetaFlash verwendet momentan direkt Jumper-Drähte zum Anschluss an den Raspberry Pi. Ein Header wäre hier hübscher.
* Ein SOIC Clip wäre für fix verlötete/nicht gesockelte Chips praktisch.
- m besitzt einen solchen, könnte man auf Anfrage borgen