Mit dem Skript 'flashdumper.sh' können die Befehlsfolgen aus dem c't Artkile "Organspende -
TP-Link WR841N: RAM und Flash aufrüsten" halbautomatisiert abgearbeitet werden.
- Unterschiedlicheste Flash-Programmer können verwendet werden.
- Das Skript ermöglicht automatisiert das Herunterladen von U-Boot-Bootloader-Images aus dem Internet.
- Das Skript speichert die ausgelesenen Router-Flash-Dumps und die generierten Speicherabbilder in separat benannte Ordner.
- Bereits abgespeicherte Speicherabbilder können nachträglich zum Flashen verwendet werden.
- Zu verwendene Freifunk-Sysupgrade-Images müssen vorab manuell in einen Ordner abgelegt werden.
Das im Skript verwendete Tool 'flashrom' unterstützt unterschiedlichste Flash-Programmer.
Neben einem Raspberry Pi, in Kombination mit der im c't Artikel beschriebenen GPIO-Kontaktierung, können weiterhin viele kostengünstige USB-Programmer verwendet werden (wie z.B. CH341a-basierte Programmer). Dieses ermöglicht das einfache Programmieren von Flash-Bausteinen mit einem Linux oder macOS Computer. Das Skript ist in Bezug auf die Programmer-Hardware leicht erweiterbar.
In der Datei interface.cfg werden Informationen zum eingestellten Flash-Programmer abgelegt und bei jedem Neustart wieder eingelesen. Ist die Datei nicht vorhanden, so wird sie bei Bedarf automatisch angelegt.
Das Skript legt eigenständig folgende Unterordner an:
| Unterordner | Inhalt |
|---|---|
| ./uboot-images/ | Hier werden U-boot-Images geladen/erwartet |
| ./basis-firmware/ | Hier werden die Basis-Firmware-Images (Sysupgrades) erwartet |
| ./router-flash-dumps/wr841n-vXY-MACAdresse/ | Hier werden u.a. ausgelesene Router-spezifische Dumps abgelegt |
| ./flash-modified/ | Hier werden neu generierte Router-Flash-Speicherabbilder abgelegt |
In den einzelnen Verzeichnissen unterhalb von ./router-flash-dumps/ werden folgende namentlich vereinheitlichte Router-spezifische Dateien abgelegt:
| Dateiname | Inhalt |
|---|---|
| flashdump.bin | Ausgelesener 4MB Flash-Dump |
| artdump.bin | Extrahierte ART-Partition mit Kalibierungsdaten |
| uboot.bin | Router-spezifischer U-Boot-Loader |
| gluonsysupgrade.bin | Basis-Firmware (Sysupgrade der ausgewählten OpenWrt-/Gluon-Firmware) |
'sudo' muss installiert sein. Der aktuelle User muss entsprechend zugewiesen sein.
'dialog' muss installiert sein.
sudo apt update && sudo apt install dialog
Das Tool 'flashrom' muss nach der Anleitung des c't Artikels installiert sein.
sudo apt update && sudo apt install git libpci-dev libusb-1.0 libusb-dev
cd
git clone https://github.com/flashrom/flashrom
cd flashrom
make && sudo make install
'dialog' muss installiert sein.
brew install dialog
Das Tool 'flashrom' muss installiert sein.
brew install flashrom

