Tftp: Unterschied zwischen den Versionen

Aus Freifunk Dresden - Anwender-Wiki
Zur Navigation springen Zur Suche springen
Zeile 26: Zeile 26:
  
 
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 einen speziellem 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
 
  ps aux | grep tftp                        # zeigt den Prozess und seine Prozess-id
Zeile 34: Zeile 34:
 
  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/
 
  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
+
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.  
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 45:
 
  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 mehrmfach neu, bitte abwarten bis 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) ==
 
== Router verhält sich als tftp-Client (Beispiel Ubiquiti NanoStation M2 / Loco M2) ==

Version vom 25. Februar 2017, 22:28 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 einen speziellem 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.

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, 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 mehrmfach neu, bitte abwarten bis 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

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 25s halten bis die LEDs abwechselnd blinken und dann loslassen

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 60\ntrace\nput firmware.bin\n" | tftp 192.168.1.20

Der Router braucht einige Minuten, um die Firmware zu speichern und startet sich anschliessend selber mehrmals neu. Bitte warten biss die Weboberfläche via http://192.168.1.1/ verfügbar ist.