Troisdorf-Unbricking: Unterschied zwischen den Versionen
Zeile 32: | Zeile 32: | ||
Der UART-USB-Konverter dient der Verbindung des Routers über dessen [[https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmiter serielle UART-Schnittstelle]] mit einem Computer. Günstige Konverter auf Basis des Chips [[http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx CP210x]] finden sich auf eBay. | Der UART-USB-Konverter dient der Verbindung des Routers über dessen [[https://de.wikipedia.org/wiki/Universal_Asynchronous_Receiver_Transmiter serielle UART-Schnittstelle]] mit einem Computer. Günstige Konverter auf Basis des Chips [[http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx CP210x]] finden sich auf eBay. | ||
[[File: | [[File:tp-uart-konverter.jpg|thumb|UART-USB-Adapter auf Basis des Chips CP210x]] | ||
Das obige Bild zeigt einen Konverter auf Basis eines CP210x, an welchem ein passendes Adapter-Kabel aufgesteckt ist. Das Adapterkabel verbindet RX, TX und GND des seriellen Anschlusses des Routers mit dem Konverter. Hierbei ist zu beachten, daß RX des Konverters mit TX des Routers und TX des Konverters mit RX des Routers verbunden werden muß (Kreuzung). '''VCC wird nicht verbunden!''' | Das obige Bild zeigt einen Konverter auf Basis eines CP210x, an welchem ein passendes Adapter-Kabel aufgesteckt ist. Das Adapterkabel verbindet RX, TX und GND des seriellen Anschlusses des Routers mit dem Konverter. Hierbei ist zu beachten, daß RX des Konverters mit TX des Routers und TX des Konverters mit RX des Routers verbunden werden muß (Kreuzung). '''VCC wird nicht verbunden!''' | ||
Zeile 38: | Zeile 38: | ||
Die Schematik des Adapterkabels ist in folgender Abbildung dargestellt. | Die Schematik des Adapterkabels ist in folgender Abbildung dargestellt. | ||
[[File: | [[File:adapterkabel.png|thumb|Adapterkabel zwischen Router und Konverter (schematisch). Bitte die konkrete Reihenfolge der Pins des Adapters beachten!]] | ||
Viele der UART-USB-Adapter haben eine Stiftleiste. Es bietet sich also an, das Adapterkabel an beiden Enden mit passenden Buchsenleisten vorzusehen. | Viele der UART-USB-Adapter haben eine Stiftleiste. Es bietet sich also an, das Adapterkabel an beiden Enden mit passenden Buchsenleisten vorzusehen. |
Version vom 28. Juli 2015, 17:09 Uhr
Bemerkungen
Obwohl das Flashen von Routern mit der Freifunk-Firmware einfach ist, kann es vorkommen, daß das Flashen schiefläuft. Das Ergebnis ist dann ein Router ohne Firmware, auf den ein Zugriff über WLAN oder Ethernet nicht mehr möglich ist ("gebrickter" Router). Allerdings ist häufig der Bootloader [uboot] noch funktionstüchtig. Über eine serielle Schnittstelle kann man auf die Konsole des uboot zugreifen und eine Firmware auf das Gerät nachladen ("debricken").
Um Zugriff auf die serielle Schnittstelle zu bekommen, muß das Routergehäuse geöffnet werden. Außerdem muß eine Stiftleiste auf die Platine des Routers gelötet werden. Über einen Pegelwandler kann dann die serielle Schnittstelle des Routers mit einem Computer verbunden werden. Dann kann mit Hilfe eines Terminalprogramms eine Verbindung mit der Konsole des uboot hergestellt werden.
Über die Konsole von uboot kann dem Router eine IP-Adresse zugewiesen werden. Außerdem wird eine IP-Adresse eines Computers angegeben. Auf diesem Computer muß man einen [tftp]-Server aktivieren, über welchem dem Router die passenden Firmware-Datei angeboten wird.
Dieses Howto beschreibt das Unbricken des Routers TP-Link TP-WR841n(d), Version 9. Unterschiede beim Debricken anderer TP-Link Router werden ergänzt.
Benötigte Hilfsmittel
Für das Debricken eines Routers werden benötigt:
- Kreuzschraubendreher zum Öffnen des Routergehäuses
- Stiftleiste Rastermaß 2,54mm, 1-reihig, 4-polig
- Lötkolben und Lötzinn
- Ein Netzwerkkabel zur Verbindung des Routers mit dem Computer via Ethernet
- Ein UART-USB-Konverter als Pegelwandler und Seriell-USB-Konverter. Sehr günstige Konverter auf Basis des Chips CP210x gibt es z.B. bei [eBay]. Außerdem wird ein passendes Kabel zwischen Konverter und Router benötigt (siehe unten).
Anlöten der Stiftleiste auf die Platine des Routers
Nach dem Öffnen des Routers ist die serielle Schnittstelle des Routers zugänglich. Es handelt sich um eine viepolige Reihe von Lötpads. Beim TP-WR841 v9 ist der Anschluß mit J3 bezeichnet. Bei diesem und vielen anderen Routern von TP-Link ist die Belegung der Schnittstelle wie folgt (dicken weißen Balken an einem Ende des Anschlusses beachten):
Auf die Oberseite der Routerplatine (Bestückungsseite) wird nun die 4-polige Stiftleiste eingelötet. Das Ergebnis sieht dann wie im folgenden Bild aus:
Vorbereitung des UART-USB-Konverters
Der UART-USB-Konverter dient der Verbindung des Routers über dessen [serielle UART-Schnittstelle] mit einem Computer. Günstige Konverter auf Basis des Chips [CP210x] finden sich auf eBay.
Das obige Bild zeigt einen Konverter auf Basis eines CP210x, an welchem ein passendes Adapter-Kabel aufgesteckt ist. Das Adapterkabel verbindet RX, TX und GND des seriellen Anschlusses des Routers mit dem Konverter. Hierbei ist zu beachten, daß RX des Konverters mit TX des Routers und TX des Konverters mit RX des Routers verbunden werden muß (Kreuzung). VCC wird nicht verbunden!
Die Schematik des Adapterkabels ist in folgender Abbildung dargestellt.
Viele der UART-USB-Adapter haben eine Stiftleiste. Es bietet sich also an, das Adapterkabel an beiden Enden mit passenden Buchsenleisten vorzusehen.
Verbindung des Routers mit dem Computer
Der Router wird auf zweierlei Arten mit dem Computer verbunden:
- Mittels des UART-USB-Konverters zur Verbindung mit der Konsole des Bootloaders uboot
- Mittels Netzwerkkabel zur Übertragung der Firmware-Datei auf den Router via tftp-Protokoll.
UART-USB-Konverter
Ggf. ist für den UART-USB-Konverter ein passender Treiber für das jeweilige Betriebssystem des Computers zu installieren.
Den Router über das Adapter-Kabel und den Konverter mit dem USB-Port des Computers verbinden. Den Router zunächst nicht einschalten.
Ethernet-Kabel
Das Ethernet-Kabel wird am Router an einem der gelben Netzwerk-Ports angeschlossen sowie am Computer. Anschließend wird der Computer auf eine feste IP-Adresse konfiguriert.
Linux
Netzwerkeinstellungen und tftp-Server
Zunächst werden alle IP-Adressen des Ethernet-Devices des Computers zurückgesetzt und eine statische IP-Adresse gesetzt. Hierzu benötigt man den Device-Namen des Ethernet-Devices (z.B. eth0 oder enp0s25). Der Name läßt sich über das Kommando
# ifconfig
ermitteln. Für das Device (hier: eth0) werden dann zunächst alle IP-Adressen gelöscht und anschließend eine feste IP-Adresse (hier: 192.168.3.2/24) gesetzt:
# ip addr flush dev eth0 # ip addr add 192.168.3.2/24 dev eth0
Die korrekte Einstellung kann mit
# ifconfig
überprüft werden.
Für den tftp-Client und -Server empfiehlt sich das Paket atftp.
Jetzt wird ein Verzeichnis für den tftp-Server angelegt:
# mkdir /var/tftpd # chown 777 /var/tftpd
Nun muß eine passende Firmware für den Router heruntergeladen werden - am besten gleich die passende [Freifunk-Firmware]. Bitte die genaue Angabe der Modellversion des Routers beachten und die Factory-Version der Firmware verwenden! Die Firmware-datei kann direkt in das tftp-Verzeichnis heruntergeladen werden und sollte aus praktischen Gründen einen kurzen Dateinamen haben (hier: firmware.bin):
# cd /var/tftpd # wget <URL Firmware> -O firmware.bin
Jetzt muß der tftp-Server gestartet werden:
# atftpd --daemon /var/tftpd/
Ob der tftp-Server ordnungsgemäß funktioniert, kann man testen, indem man einen tftp-Client auf dem Computer startet und versucht, die Firmware-Datei herunterzuladen:
$ atftp 192.168.3.2 tftp> get firmware.bin tftp>
Ggf. ist in der Firewall des Computers der UDP-Port 69 für den tftp-Server zu öffnen.
UART-USB-Konverter
Unter Linux kann das ordnungsgemäße Erkennen des Konverters überprüft werden, in dem man nach dem Einstecken in einen USB-Steckplatz in einem Terminalfenster den folgenden Befehl eingibt:
$ dmesg
Üblicherweise wird der Konverter als Schnittstelle /dev/ttyUSB0 erkannt. Es ist sicherzustellen, daß der jeweilige Benutzer Zugriff auf diese Schnittstelle hat.
Nun wird ein geeignetes Terminalprogramm benötigt. In einem grafischen System empfiehlt sich [gtkTerm], in einem textbasierten System [minicom].
gtkTerm
In gtkTerm sind die Verbindungsparameter unter Configuration --> Port wie folgt einzustellen:
- Port: /dev/ttyUSB0 (siehe Ausgabe von dmesg)
- Baud rate: 115200
- Parity: none
- Bits: 8
- Stopbits: 1
- Flow control: none
Nun den Router anschalten. Es sollten lesbare Zeichen im Terminalprogramm erscheinen (Konsole von uboot).
Wenn nun die Meldung
Autobooting in 1 seconds
erscheint, schnell die Zeichen
tpl
eingeben, um den Bootvorgang zu unterbrechen. Nun setzen wir einige Parameter:
> setenv ipaddr 192.168.3.1 > setenv serverip 192.168.3.2
Die Einstellungen können mit
> printenv
überprüft und ggf. erneut gesetzt werden. Nun holen wir das Firmware-File vom tftp-Server:
> tftpboot 0x80000000 firmware.bin
Und jetzt schreiben wir das Image in den Flash-Speicher:
> erase 0x9f020000 +0x3c0000 ... > cp.b 0x80000000 0x9f020000 0x3c0000 > bootm 0x9f020000
Nach Eingabe des letzten Befehls bootet der Router (hoffentlich) in den Setup-Modus der Freifunk-Firmware.
Die statische IP-Adresse am Ethernet-Port des Computers kann nun entfernt werden
# ip addr flush dev eth0
und die Adresse wie gewohnt vom Router bezogen werden. Falls dies ordnungsgemäß funktioniert, kann nun auch der Konverter samt Adapter-Kabel vom Router entfernt werden.
Windows
Unter Windows ist das Vorgehen prinzipiell analog wie unter Linux. Im Gerätemanager ist zu klären, unter welcher COM-Schnittstelle der Konverter verfügbar ist. Als Terminalprogramm empfiehlt sich [PuTTY].
Tipps
- Damit ein Benutzer in Linux Zugriff auf eine serielle Schnitstelle hat, muß dieser abhängig von der eingesetzten Linux-Distribution Mitglied in den Gruppen uucp, dialout bzw. tty sein.
- Das ordnungsgemäße Funktionieren von Terminalprogramm und Konverter kann man dadurch überprüfen, daß man RX und TX des Konverters mittels eines Drahtstücks kurzschließt (Loopback). Wenn man nun beliebige Zeichen in das Terminalprogramm eingibt, so erscheinen diese wiederum im Terminalprogramm. Ist im Terminalprogramm "lokales Echo" aktiviert, erscheinen die Zeichen doppelt.