Tftp: Unterschied zwischen den Versionen

Aus Freifunk Dresden - Anwender-Wiki
Zur Navigation springen Zur Suche springen
(tftp client recovery)
 
(tftp server recovery)
Zeile 12: Zeile 12:
  
  
== Router verhält sich als tftp Server (Beispiel TP-Link WR841) ==
+
== Router verhält sich als tftp-Server (Beispiel TP-Link WR841) ==
 
 
apt-get install tftp-hpa
 
  
 
Router verhält sich als tftp Client:
 
Router verhält sich als tftp Client:
Zeile 41: Zeile 39:
 
  mv /var/lib/tftpboot/openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin wr841nv8_tp_recovery.bin
 
  mv /var/lib/tftpboot/openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin wr841nv8_tp_recovery.bin
  
 +
Nun muss der Router in den Update-Mode versetzt werden. Dazu den '''Reset-Knopf drücken und halten, und anschließend den Router einschalten'''. Der Reset-Knopf kann nach einigen Sekunden
 +
losgelassen werden.
  
Mit [http://de.wikipedia.org/wiki/tcpdump tcpdump] kann man sich die Client-Anfrage an den Server (Linux-Rechner) anzeigen lassen.
+
Mit [http://de.wikipedia.org/wiki/tcpdump tcpdump] kann man sich die Client-Anfrage an den Server (Linux-Rechner) anzeigen lassen und ebenfalls den Transfer der Firmware in den Router beobachten.
 
  > tcpdump -tni any host 192.168.0.66
 
  > tcpdump -tni any host 192.168.0.66
 
  IP 192.168.0.86.3792 > 192.168.0.66.69:  43 RRQ "wr841nv9_tp_recovery.bin" octet timeout 2
 
  IP 192.168.0.86.3792 > 192.168.0.66.69:  43 RRQ "wr841nv9_tp_recovery.bin" octet timeout 2
 +
 +
Der Router startet sich selber mehrmals neu. Bitte warten biss die Weboberfläche via http://192.168.1.1/ verfügbar ist.
 +
 +
== Router verhält sich als tftp-Client (Beispiel Ubiquiti NanoStation M2 / Loco M2) ==
 +
 +
Es gibt Router, die den umgekehrten Weg gehen. Diese arbeitenn dann als ftp-Server und man muss dann mit einem Client-Programm, die Firmware aufspielen.
 +
Hierfür braucht man dass entsprechende Client-Programm.
 +
 +
apt-get install tftp-hpa
 +
 +
Der Linux-Rechner muss eine IP aus dem Subnetz 192.168.1.x besitzen (aber nicht 192.168.1.20).
 +
ip addr add 192.168.1.31/24 dev eth0  # oder ifconfig eth0 192.168.1.254
 +
 +
Die Firmware kann jeden beliebigen Namen haben, aber es ist einfacher diesen einfach zu halten. Dieser Name muss dann im zweiten Befehl verwendet werden.
 +
cp  openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin code.bin
 +
echo -e "binary\nrexmt 1\ntimeout 60\ntrace\nput code.bin flash_update\n" | tftp 192.168.1.20
 +
 +
Der Router startet sich selber mehrmals neu. Bitte warten biss die Weboberfläche via http://192.168.1.1/ verfügbar ist.

Version vom 24. Oktober 2016, 19:10 Uhr

Recovery mit TFTP und Bootloader

Wenn der Router aus irgend einem Grund nicht mehr über die Konfigurationsseite des Routers und auch nicht über den Failsafe-Mode (via sysupgrade) die firmware aktzeptiert, so kann versucht werden, die Firmware via des Bootloaders zu laden. Die meisten Router können in einen Zustand gebracht werden, bei dem sich der Router entweder als tftp-Client oder tftp-Server verhält. Dies ist abhänig vom Gerät und kann auf openwrt.org eingesehen werden. Wenn der Router in einem der beiden Modi läuft, so besitzen diese eine IP Adresse (oder der Server muss eine bestimmte IP Adresse besitzen), die von der gewohnten IP abweicht. Beide Geräte, Router und Linux-Rechner müssen im gleichen Subnetz liegen.


Router verhält sich als tftp-Server (Beispiel TP-Link WR841)

Router verhält sich als tftp Client: Dieses Beispiel gilt NUR für den TP-Link TL-WR841 V8,V9,V10,V11. (openwrt.org:tftp_recovery_via_bootloader_for_v8_v9_v10_v11)

Zuerst muss auf dem Linux-Rechner der tftp-Server installiert sein.

apt-get install tftpd-hpa

Der Linux-Recher muss die IP 192.168.0.66 besitzen. Der Router selber nimmt sich die 192.168.0.86

ip addr add 192.168.0.66/24 dev eth0

Normalerweise wird bei der Installation des tftp-Servers (tftpd-hpa) ein Verzeichnis angelegt, in dem die Firmware mit einem speziellen Namen kopiert werden muss. Siehe dazu openwrt.org:tftp_recovery_via_bootloader_for_v8_v9_v10_v11. Es kann vorkommen, dass dieser Server zwar läuft, aber nicht mehr richtig arbeitet. In diesem Fall muss man diesen Server beenden und kann diesen manuell im Fordergrund aufrufen.

ps aux | grep tftp                        # zeigt den Prozess und seine Prozess-id
kill <ProzessId>                          # ProzessId mit der zuvor angezeigten ersetzen.
in.tftpd -lL --secure --address 192.168.0.66:69 /var/lib/tftpboot
                                          

Die firmware wird nach /var/lib/tftpboot kopiert und dabei umbenannt.

cp openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin /var/lib/tftpboot/
mv /var/lib/tftpboot/openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin wr841nv8_tp_recovery.bin

Nun muss der Router in den Update-Mode versetzt werden. Dazu den Reset-Knopf drücken und halten, und anschließend den Router einschalten. Der Reset-Knopf kann nach einigen Sekunden losgelassen werden.

Mit tcpdump kann man sich die Client-Anfrage an den Server (Linux-Rechner) anzeigen lassen und ebenfalls den Transfer der Firmware in den Router beobachten.

> tcpdump -tni any host 192.168.0.66
IP 192.168.0.86.3792 > 192.168.0.66.69:  43 RRQ "wr841nv9_tp_recovery.bin" octet timeout 2

Der Router startet sich selber mehrmals neu. Bitte warten biss die Weboberfläche via http://192.168.1.1/ verfügbar ist.

Router verhält sich als tftp-Client (Beispiel Ubiquiti NanoStation M2 / Loco M2)

Es gibt Router, die den umgekehrten Weg gehen. Diese arbeitenn dann als ftp-Server und man muss dann mit einem Client-Programm, die Firmware aufspielen. Hierfür braucht man dass entsprechende Client-Programm.

apt-get install tftp-hpa

Der Linux-Rechner muss eine IP aus dem Subnetz 192.168.1.x besitzen (aber nicht 192.168.1.20).

ip addr add 192.168.1.31/24 dev eth0  # oder ifconfig eth0 192.168.1.254

Die Firmware kann jeden beliebigen Namen haben, aber es ist einfacher diesen einfach zu halten. Dieser Name muss dann im zweiten Befehl verwendet werden.

cp  openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin code.bin
echo -e "binary\nrexmt 1\ntimeout 60\ntrace\nput code.bin flash_update\n" | tftp 192.168.1.20

Der Router startet sich selber mehrmals neu. Bitte warten biss die Weboberfläche via http://192.168.1.1/ verfügbar ist.