TP-Link WR841ND/Flash und RAM erweitern bis v12

Aus wiki.freifunk.net
Wechseln zu: Navigation, Suche

Der TP-Link WR841ND hat bis auf die Version 13 nur 4MB FlashROM und 32MB RAM, was für einige Freifunk-Communities zu wenig ist und in neueren OpenWrt-Versionen nicht mehr unterstützt wird.

Mit Lötkenntnissen und wenigen Werkzeugen ist es aber möglich, die Versionen bis v12.x auf 16MB Flash und 64MB RAM aufzurüsten.

Vorgehen

Der 8-Pin-SPI-Flash-Chip wird gegen z.B. einen Winbond W25Q128 (16MB), der 66-Pin-RAM-Chip gegen einen SK Hynix HY5DU121622DTP-D43 ersetzt. Beide Chips sind für Cent-Beträge zu bekommen.

Beim Flash-Chip ist zu beachten, dass bestimmte Infos (die Atheros Radio Test/ART-Partition) aus dem alten Chip ausgelesen und in den neuen Chip übertragen werden müssen. Das kann u.a. mit einem Kabel und einem Raspberry Pi gemacht werden (ggf. einen 4,7µF-Kondensator nahe des Chips in die Stromversorgung schalten), mit einem üblichen C232HM-DDHSL-0-Kabel (Infos) oder anderer Programmier-Hardware, die vom Flashrom-Tool unterstützt wird. Der Chip kann recht bequem noch im eingelöteten Zustand mit einem SOIC-8-Clip verbunden werden.

Das Entlöten des RAM-Chips funktioniert nur gut mit einem Heißluft-Lötkolben. Ein günstiger guter Vertreter ist z.B. der Yinhua 968DA. Zum (Ent-)Löten empfehlen sich eine 0,1mm-Lötspitze sowie eine 1mm-45-Grad-Lötspitze. Auch 2mm-Entlötlitze und No-Clean-Flussmittel sollten vorhanden sein.

ART auslesen

Die ART-Daten können auf verschiedene Weise ausgelesen werden. Es empfiehlt sich, ART vor dem Auslöten des Flash-Chips auszulesen, falls der Chip das Auslöten nicht übersteht.

  • Per SPI/Flashrom-Tool, angeschlossen per SIOC-8-Clip
    • flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000 -r flashdump.bin (spidev entsprechend setzen), mehrmals ausführen und überprüfen, ob die ausgelesenen Dateien identisch sind.
    • dd ibs=1k skip=4032 if=flashdump.bin of=artdump.bin zum Extrahieren der ART-Daten, die sich in den letzten 64k des ROMs befinden.
  • Per SSH auf der Root-Konsole des Routers
    • dd if=/dev/mtd4 of=/tmp/artdump.bin, kopieren auf den PC dann per SCP.

Neues ROM zusammenstellen

  1. Neuen passenden Bootloader herunterladen: wget -O uboot.bin http://derowe.com/u-boot/stable/tp-link-tl-wr841n-vVERSION.bin
  2. Passende Firmware herunterladen; z.B. ein zur Router-Version passendes OpenWrt-Image in der sysupgrade-Variante.
  3. Leere neue ROM-Datei (16MB) erstellen: dd if=/dev/zero ibs=1k count=16384 | tr "\000" "\377" > out.bin
  4. ART in die neue ROM-Datei hineinkopieren: dd conv=notrunc obs=1k seek=16320 if=artdump.bin of=out.bin
  5. Bootloader einfügen: dd conv=notrunc if=uboot.bin of=out.bin
  6. Firmware einfügen: dd conv=notrunc obs=1k seek=128 if=openwrt.bin of=out.bin
  7. MAC-Adresse (siehe Aufdruck des Routers) einfügen: printf "\xaa\xbb\xcc\xdd\xee\xff" | dd conv=notrunc bs=1 seek=130048 count=6 of=out.bin
  8. Versionsnummer des Routers einfügen: printf '\x08\x41\x00\x<VERSION>\x00\x00\x00\x01' | dd conv=notrunc bs=1 seek=130304 count=8 of=out.bin mit VERSION z.B. 09 für v9.x bzw. 10 für v10.x.

Neues ROM flashen

Den neuen Flash-Chip (bei ausgeschalteten Geräten) verbinden und per flashrom -p linux_spi:dev=/dev/spidev0.0,spispeed=1000 -w out.bin (spidev entsprechend setzen) programmieren.

Auslöten der alten/Einlöten der neuen Chips

Im Forum gibt es ein Video dazu. Der Lötkolben und der Heißluftlötkolben sollten auf ca. 350°C eingestellt sein.

Weitere Infos