Tftp: Unterschied zwischen den Versionen

Aus Freifunk Dresden - Anwender-Wiki
Zur Navigation springen Zur Suche springen
(tftp server recovery)
 
(11 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 11: Zeile 11:
 
Linux-Rechner müssen im gleichen Subnetz liegen.
 
Linux-Rechner müssen im gleichen Subnetz liegen.
  
 +
'''Hinweis:''' <font color="blue">Cross-Over-LAN Kabel<br>
 +
Wenn ein normales Patchkabel nicht funktioniert, so konnte der Router im TFTP Mode die Leitungen nicht automatisch
 +
vertauschen. In diesem Fall muss ein Cross-Over-LAN Kabel verwendet werden.</font>
  
== Router verhält sich als tftp-Server (Beispiel TP-Link WR841) ==
+
== Router verhält sich als tftp-Client (Beispiel TP-Link WR841) ==
  
 
Router verhält sich als tftp Client:
 
Router verhält sich als tftp Client:
Zeile 27: Zeile 30:
 
Normalerweise wird bei der Installation des tftp-Servers (tftpd-hpa) ein Verzeichnis angelegt, in dem
 
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 [https://wiki.openwrt.org/toh/tp-link/tl-wr841nd#tftp_recovery_via_bootloader_for_v8_v9_v10_v11 openwrt.org:tftp_recovery_via_bootloader_for_v8_v9_v10_v11].
 
die Firmware mit einem speziellen Namen kopiert werden muss. Siehe dazu [https://wiki.openwrt.org/toh/tp-link/tl-wr841nd#tftp_recovery_via_bootloader_for_v8_v9_v10_v11 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
+
Es kann vorkommen, dass der Server zwar läuft, aber nicht mehr richtig arbeitet. In diesem Fall
muss man diesen Server beenden und kann diesen manuell im Fordergrund aufrufen.
+
muss man diesen Server beenden und kann diesen manuell im Vordergrund aufrufen.
  
  ps aux | grep tftp                        # zeigt den Prozess und seine Prozess-id
+
  killall -9 in.tftpd
kill <ProzessId>                          # ProzessId mit der zuvor angezeigten ersetzen.
 
 
  in.tftpd -lL --secure --address 192.168.0.66:69 /var/lib/tftpboot
 
  in.tftpd -lL --secure --address 192.168.0.66:69 /var/lib/tftpboot
 
                                            
 
                                            
Die firmware wird nach /var/lib/tftpboot kopiert und dabei umbenannt.
+
Die Firmware wird nach /var/lib/tftpboot kopiert und dabei umbenannt.
  
  cp openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin /var/lib/tftpboot/
+
  cp openwrt-ar71xx-generic-tl-wr841n-v8-squashfs-factory.bin /var/lib/tftpboot/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
+
''(Der Image Name kann sich unterscheiden! z.B. für den wr841n-v13 muss das Image zu `tp_recovery.bin` umbenannt werden.)''
losgelassen werden.  
+
 
 +
Nun muss der Router in den Update-Mode versetzt werden. Dazu den '''Reset-Knopf drücken, 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 und ebenfalls den Transfer der Firmware in den Router beobachten.
 
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.
Zeile 46: Zeile 48:
 
  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.
+
Der Router startet sich selber mehrfach neu, bitte abwarten bis die Weboberfläche via http://192.168.222.1/ verfügbar ist.
  
== Router verhält sich als tftp-Client (Beispiel Ubiquiti NanoStation M2 / Loco M2) ==
+
== Router verhält sich als tftp-Server (Beispiel Ubiquiti NanoStation M2 / Loco M2 / Ubnt UniFi-AP) ==
 
   
 
   
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.
+
Es gibt Router die den umgekehrten Weg gehen. Diese arbeiten dann als ftp-Server, man muss dann mit einem Client-Programm die Firmware aufspielen.
 
Hierfür braucht man dass entsprechende Client-Programm.
 
Hierfür braucht man dass entsprechende Client-Programm.
  
Zeile 57: Zeile 59:
 
Der Linux-Rechner muss eine IP aus dem Subnetz 192.168.1.x besitzen (aber nicht 192.168.1.20).
 
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
 
  ip addr add 192.168.1.31/24 dev eth0  # oder ifconfig eth0 192.168.1.254
 +
 +
Jetzt muss der Router in den Zustand gebracht werden, damit dieser als tftp server arbeitet und die Firmware flashen kann.<br/>
 +
# Router vom Strom nehmen.
 +
# kleinen Reset-Knopf drücken und halten. Dieser befindet sich hinter der Abdeckung zum Netzwerkanschluss.
 +
# Router einschalten und Reset-Knopf noch mindestens 25 s halten bis die LEDs zunächst 3/4/5 gleichzeitig blinken und anschließend 3/5 (rot und grün gleichzeitig) und 4/6 (orange und grün gleichzeitig) abwechselnd blinken. Nun kann der Reset-Knopf wieder losgelassen werden.
  
 
Die Firmware kann jeden beliebigen Namen haben, aber es ist einfacher diesen einfach zu halten. Dieser Name muss dann im zweiten Befehl verwendet werden.
 
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
+
  cp  openwrt-ar71xx-generic-ubnt-nano-m-squashfs-factory.bin firmware.bin
  echo -e "binary\nrexmt 1\ntimeout 60\ntrace\nput code.bin flash_update\n" | tftp 192.168.1.20
+
  echo -e "binary\nrexmt 1\ntimeout 300\ntrace\nput firmware.bin\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.
+
Der Router braucht einige Minuten, um die Firmware zu speichern, er startet anschließend selber mehrfach neu. Bitte warten bis die Weboberfläche via http://192.168.222.1/ verfügbar ist.

Aktuelle Version vom 1. Dezember 2021, 14:03 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.

Hinweis: Cross-Over-LAN Kabel
Wenn ein normales Patchkabel nicht funktioniert, so konnte der Router im TFTP Mode die Leitungen nicht automatisch vertauschen. In diesem Fall muss ein Cross-Over-LAN Kabel verwendet werden.

Router verhält sich als tftp-Client (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 der Server zwar läuft, aber nicht mehr richtig arbeitet. In diesem Fall muss man diesen Server beenden und kann diesen manuell im Vordergrund aufrufen.

killall -9 in.tftpd
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/wr841nv8_tp_recovery.bin

(Der Image Name kann sich unterscheiden! z.B. für den wr841n-v13 muss das Image zu `tp_recovery.bin` umbenannt werden.)

Nun muss der Router in den Update-Mode versetzt werden. Dazu den Reset-Knopf drücken, 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 mehrfach neu, bitte abwarten bis die Weboberfläche via http://192.168.222.1/ verfügbar ist.

Router verhält sich als tftp-Server (Beispiel Ubiquiti NanoStation M2 / Loco M2 / Ubnt UniFi-AP)

Es gibt Router die den umgekehrten Weg gehen. Diese arbeiten dann als ftp-Server, 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

Jetzt muss der Router in den Zustand gebracht werden, damit dieser als tftp server arbeitet und die Firmware flashen kann.

  1. Router vom Strom nehmen.
  2. kleinen Reset-Knopf drücken und halten. Dieser befindet sich hinter der Abdeckung zum Netzwerkanschluss.
  3. Router einschalten und Reset-Knopf noch mindestens 25 s halten bis die LEDs zunächst 3/4/5 gleichzeitig blinken und anschließend 3/5 (rot und grün gleichzeitig) und 4/6 (orange und grün gleichzeitig) abwechselnd blinken. Nun kann der Reset-Knopf wieder losgelassen werden.

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 firmware.bin
echo -e "binary\nrexmt 1\ntimeout 300\ntrace\nput firmware.bin\n" | tftp 192.168.1.20

Der Router braucht einige Minuten, um die Firmware zu speichern, er startet anschließend selber mehrfach neu. Bitte warten bis die Weboberfläche via http://192.168.222.1/ verfügbar ist.