Moin Freifunker,
dank des tollen Videos von @Manawyrm (vielen Dank dafür!), war ich nun auch in der Lage einen TL-WR841 mit größerem Flash Speicher auszustatten. Wenn alles klappt und man die entsprechende Freifunk Firmware schon vorbereitet hat, ist das eine Sache von vielleicht 30min.
Vorbereitungen:
Benötigte Skills:
- Löten
- Gluon kompilieren
- Routergehäuse halbwegs zerstörungsfrei öffnen
- Serielle Konsole
Einkaufsliste:
- EZP2010 Programmer (oder der teurere MiniPro TL866)
- SOP8 DIP8 Socket Adapter
- Winbond SPI Chip Typ: 25Q64FV (8MB) oder 25Q128FV (16MB) auch 25QxxBV Versionen sind möglich (vgl.: GitHub - pepe2k/u-boot_mod: U-Boot 1.1.4 modification for routers)
- 4-polige Stiftleiste
Werkzeug:
- Lötkolben mit feiner Spitze
- Entlötlitze
- Flussmittel
- Lötzinn
- Pinzette
- Kreuzschraubendreher
- Hebelwerkzeug
Systemvoraussetzungen:
- Windows ab 7
- EZP2010 v3.0 Software
- MiniPro v6.50 Software
- Putty
- WinSCP/Filezilla
- SSH Zugriff auf den Router (installierte OpenWRT/Lede/Freifunk Firmware)
- U-Boot_mod ([GitHub - pepe2k/u-boot_mod: U-Boot 1.1.4 modification for routers][1])
1 Gluon kompilieren
Nachfolgend werden die Änderungen für 2016.2.4 beschrieben.
Änderungen für Lede sind im Video erläutert
Datei:
openwrt/target/linux/ar71xx/image/Makefile
Füge ein:
define Device/tl-wr841n-8mb-v9
$(Device/tplink-8mlzma)
BOARDNAME := TL-WR841N-v9
DEVICE_PROFILE := TLWR8418MB
TPLINK_HWID := 0x08410809
endef
TARGET_DEVICES += tl-wr841n-8mb-v9
Anmerkungen:
Hier wurde ein 841v9 modifiziert. Andere Versionen müssen entsprechend dem o.g. Schema ergänzt werden.
Anders als bei Lede darf BORDNAME nicht verändert werden, da sonst der Kernel nicht bootet. Es darf kein _ verwendet werden.
Datei:
targets/ar71xx-generic/profiles.mk
Füge hinzu:
# TL-WR841N/ND 8MB v9
$(eval $(call GluonProfile,TLWR8418MB))
$(eval $(call GluonModel,TLWR8418MB,tl-wr841n-8mb-v9,tp-link-tl-wr841n-nd-8mb-v9))
Datei:
openwrt/target/linux/ar71xx/base-files/lib/ar71xx.sh
Füge unter tplink_board_detect() { hinzu:
"084108"*)
model="TP-Link TL-WR841N/ND 8MB"
;;
Anmerkung:
Gluon kann nun kompiliert werden. Nur das Factory Image wird 8MB groß sein. Ich habe die HW ID unmittelbar nach 0841 geändert. Standardmäßig ist hier 00 vorgegeben, ich habe dort 08 für 8MB Flash gesetzt. 16 (16MB) wären ebenfalls möglich.
2 System- und ART-Partition sichern
Per SSH auf den Router einloggen und die System- und ART-Partition ins Temp Verzeichnis kopieren. Sollte auf dem Router noch keine SSH fähige Firmware installiert sein, muss dies zuvor nachgeholt werden.
cat /dev/mtd0 > /tmp/mtd0.bin
cat /dev/mtd4 > /tmp/mtd4.bin
Beide Dateien dann mittels SCP vom Router auf den Rechner kopieren.
3 Flash-Chip auslöten.
Anleitung siehe Video.
4 Neues U-Boot Image erstellen
U-Boot_mod muss nun passend für euren Router kompiliert werden. Für die aktuelleren 841er Modelle bietet der Entwickler [fertige Images][2] an, welche wir hier auch verwenden. Da die Software vom EZP2010 nur den kompletten Speicher auf einmal beschreiben kann, müssen wir einen kleinen Umweg über MiniPro gehen.
4.1 MiniPro
- MiniPro öffnen
- Select IC->Search and Select IC
- Search Device: 25QxxYY (euer Flashtyp z.B. 25Q64FV) → Select
- Open → mtd0.bin → Enter
- Gehe zu Adresse: 01FD00
- ersetze in Spalte zwei 00 durch 08 ein (08 für 8MB Flash)
- Open → u-boot_mod__tp-link_tl-wr841n_v9__20170413__git_master-7e7a2ab4.bin (Clear Buffer when loading the file: disabled) → Enter
- File->Save->merged.bin
4.2 EZP2010
Der EZP liegt vor euch, die Aufschrift ist lesbar, der USB Anschluss zeigt nach links. Der SOP Adapter wird in den oberen Bereich des Stecksockels eingesteckt. Die Beschriftung des SOP Adapter ist lesbar. Der SPI Chip wird mit der Punkt Markierung nach oben links eingesetzt.
4.2.1 Treiber Signatur von Windows 10 abschalten
- Eingabeaufforderung im Administratormodus öffnen
bcdedit /set testsigning on
shutdown -r -t 1
- Nach dem Reboot kann der EZP Treiber installiert werden.
4.2.2 SPI beschreiben
- EZP2010 Programmer öffnen
- Detect (Chiptyp wird erkannt, auf Richtigkeit prüfen!)
- Erase (kann bei leeren Chips entfallen)
- Load → merged.bin
- Prog
- Verify
5 Flash Chip und serielle Konsole einlöten
Anleitung siehe Video. Zusätzlich die Stiftleiste für die Serielle Konsole einlöten.(Siehe: Router Recovery - TFTP Pushbutton und TTL (Serial Recovery))
6 Firmware flashen
6.1 Webserver
Den Router starten und sich per serieller Konsole einloggen. Den Bootprozess mit einem Tastendruck abbrechen und den Webserver starten.
httpd
6.2 Die ART Partition mtd4.bin wiederherstellen:
http://192.168.1.1/art.html
6.3 Firmware flashen
http://192.168.1.1/
Das Freifunk/OpenWrt/Lede Image laden.
7 Nachbereitung
Der Router startet nun etwas länger als gewöhnlich, da das integrierte JEDEC Script nun noch die Dateistruktur auf die neue Flashgröße anpasst.
df -h
Zeigt nun unter overlayfs:/overlay den verfügbaren Speicherplatz im Flash an.
Happy Hacking!
Abgeleitet aus:
WR841N - SPI Bausteine austauschen / Flash aufrüsten:
Weitere Details: https://tbspace.de/wr84116mbflashmod.html
[1]: GitHub - pepe2k/u-boot_mod: U-Boot 1.1.4 modification for routers
[2]: http://projects.dymacz.pl/?dir=u-boot_mod