Wie installiere ich OpenWrt auf meiner FRITZ!Box?

4 Antworten

Die Anleitung ist ein Haufen Müll. Ich kann dir nicht garantieren, dass ich das richtig verstehe, und wenn es nicht funktioniert, könnte es sein, dass dein Router nicht mehr funktioniert. Ich würde dir dringend raten, eine alternative Methode zu haben, ins Internet zu kommen, falls irgendwas schief geht.

Zunächst noch eine Warnung: OpenWRT ist nicht völlig intuitiv zu bedienen, wenn du keine Ahnung von Netzwerken hast. Je nachdem, was du tun willst, erfordert das ein gewisses Maß an Einarbeitung. Wenn du einfach nur einen dummen Router + Wlan willst, sollte es aber nicht all zu kompliziert sein. Ob du klar kommst, hängt wohl vor allem von deiner Experimentierfreude ab. Aber wenn du mit der Anleitung hier klar kommst, sollte die Einrichtung auch machbar sein.

Als erstes brauchst du jedenfalls Linux, mit Windows wird das Ganze schwierig.

So weit ich das verstehe, sollte das dann folgender Maßen funktionieren:

Zunächst lädst du dir das hier herunter: https://downloads.openwrt.org/releases/21.02.0/targets/lantiq/xrx200/openwrt-21.02.0-lantiq-xrx200-avm_fritz7430-squashfs-sysupgrade.bin

Die Sachen, die ich in so einem Kasten schreibe, 
musst du immer ins Terminal eingeben. 
Und zwar alle in das selbe Terminal, 
und in der Reihenfolge, wie ich sie hier schreibe.
Du kopierst immer eine Zeile, fügst sie dann 
in das Terminal ein, und drückst Enter. 
Einfügen kannst du mit strg + großschreiben + v

Also, du fängst an mit:

mkdir ~/repo
cd ~/repo
git clone https://git.openwrt.org/openwrt/openwrt.git
mkdir files
cd files
wget https://downloads.openwrt.org/releases/21.02.0/targets/lantiq/xrx200/openwrt-21.02.0-lantiq-xrx200-avm_fritz7430-initramfs-kernel.bin
cd ~/repo/openwrt
./scripts/flashing/eva_ramboot.py 192.168.178.1 ~/repo/files/openwrt-21.02.0-lantiq-xrx200-avm_fritz7430-initramfs-kernel.bin

alternativ, wenn der letzte Befehl nicht klappt:

./scripts/flashing/eva_ramboot.py 169.254.120.1 ~/repo/files/openwrt-21.02.0-lantiq-xrx200-avm_fritz7430-initramfs-kernel.bin

Jetzt musst du warten.

ssh 192.168.1.1

Du solltest jetzt per ssh auf dem Router sein. Also deine Eingabezeile sollte anders aussehen, als vorher. Evtl. verstehe ich die Anleitung hier aber auch falsch. Vielleicht machst du auch sowas wie

telnet 192.168.1.1

Wenn das auch nicht geht, frag am besten mal in einem OpenWRT-Forum.

(Du kannst auch versuchen, das Systemupgrade einfach direkt zu flashen. Wenn du Glück hast (ich vermute, dass das "wahrscheinlich" schon passen sollte), sollte das auch funktionieren, ohne zu testen, ob der Wert stimmt. Ich kann dir da dann aber wirklich absolut gar nichts garantieren. Im schlimmsten Fall hast du danach einen teuren Briefbeschwerer.)

fritz_tffs_nand -d /dev/mtd1 -n linux_fs_start

In der Ausgabe solltest du irgendwie den Wert von linux_fs_start erkennen können. Er sollte 0 sein. Wenn ja, alles super, wenn nein musst du den auf 0 setzen: mit FTP, einem upgrade, oder indem du den router resettest.

Danach kannst du das neue image per Systemupgrade laden.

d.h. du wählst die Datei openwrt-21.02.0-lantiq-xrx200-avm_fritz7430-squashfs-sysupgrade.bin, die du dir ganz am Anfang heruntergeladen hast, einfach in der Weboberfläche als Upgrade aus.

Woher ich das weiß:Studium / Ausbildung – Informatik
SophieGermain 
Fragesteller
 27.02.2022, 16:08

Wow, vielen Dank! Das werde ich so ausprobieren. Für alle Fälle habe ich noch einen zweiten Router.

0
SophieGermain 
Fragesteller
 28.02.2022, 10:55

Update:

Leider klappt es immer noch nicht. Ich bekomme beim flashen (192.168.178.1) folgende Fehlermeldung:

Traceback (most recent call last):
  File "/home/user/repo/openwrt/./scripts/flashing/eva_ramboot.py", line 28, in <module>
    ftp = FTP(args.ip, 'adam2', 'adam2')
  File "/usr/lib64/python3.9/ftplib.py", line 121, in __init__
    self.connect(host)
  File "/usr/lib64/python3.9/ftplib.py", line 158, in connect
    self.sock = socket.create_connection((self.host, self.port), self.timeout,
  File "/usr/lib64/python3.9/socket.py", line 844, in create_connection
    raise err
  File "/usr/lib64/python3.9/socket.py", line 832, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

Gleichfalls bei 169.254.120.1, mit dem Unterschied, dass in der letzten Zeile dies steht:

OSError: [Errno 113] No route to host

Der PC ist per Ethernet mit dem Router verbunden. W-Lan ist aus. Im Forum habe ich gelesen, ich solle eine statische IP-Adresse einrichten. Wie mache ich das? Oder hat dieser Fehler einen anderen Grund?

0
SophieGermain 
Fragesteller
 09.03.2022, 11:32

Ich habe verschiedene Laptops mit unterschiedlichen Betriebssystemen. Alle geben den gleichen Fehler. Zurzeit nutze ich Debian. Der Befehl netstat -nr gibt diesselbe IP-Adresse heraus, es kann also nicht daran liegen. Zudem habe ich das FTP-Protokoll aktiviert, was das Problem leider nicht behoben hat.

Zuletzt habe ich im OpenWrt-Forum nachgefragt, wie du es empfohlen hast. Niemand antwortet dort. Was kann ich tun? Fällt dir noch etwas ein? Oder soll ich mir lieber einen anderen Router besorgen? Wenn ja, welchen?

0
Waldelb3  09.03.2022, 18:13
@SophieGermain
Zudem habe ich das FTP-Protokoll aktiviert, was das Problem leider nicht behoben hat.

Das stimmt nicht. Der neue Fehler (aus der PM), sagt Login incorrect. Das heißt, dass das Aktivieren funktioniert hat. Die Frage ist jetzt nur noch, warum das Passwort im Skript nicht stimmt.

0
Waldelb3  09.03.2022, 18:18
@SophieGermain

Kannst du das Passwort in der Weboberfläche irgendwo ändern?

Wenn ja:

Nutzername: adam2
Passwort: adam2 
0

Als erstes sollte bei einer Fritzbox sichergestellt werden, dass der Urzustand wieder hergestellt werden und man sich danach wieder mit dem Provider verbinden kann.

Bei AVM gibt es für jede Fritzbox ein Programm, das die Box auf Werkseinstellungen mit der neuesten Firmware zurücksetzt. Für die FB7430 ist es dieses:

https://download.avm.de/fritzbox/fritzbox-7430/deutschland/recover/

Dieses Programm herunterladen und auf dem Rechner speichern.

Der nächste Schritt ist die Box auf die aktuelle Firmware bringen, in diesem Fall 7.29, damit sie auf dem selben Stand ist wie das Recover.

Danach ein Backup der Fritzbox-Einstellungen anlegen, damit falls einem OpenWrt nicht gefällt oder etwas schief geht die Box nicht von neuem eingerichtet werden muss.

Erst danach sollte die Umstellung auf OpenWrt vorgenommen werden.

Steht doch auf der Seite:

see git-commit
The installation method is described in the git-commit which added support 1) for this device.
See table below for the respective commit for your device.

Und da findet sich der Commit:

https://git.openwrt.org/?p=openwrt/openwrt.git;a=commit;h=6c85a449a988876fdfd4ce84d6aa5ffe4a2820c1

Und darin findet sich:

lantiq: add support for AVM FRITZ!Box 7430
Hardware:
- SoC: Lantiq VRX 220
- CPU: 2x MIPS 34Kc 500 MHz
- RAM: 128 MiB 250 MHz
- Flash: 128 MiB NAND
- Ethernet: Built-in Fast Ethernet switch, 4 ports used
- Wifi: Atheros AR9381-AL1A b/g/n with 2 pcb/internal and 1 external antennas
- USB: 1x USB 2.0
- DSL: Built-in A/VDSL2 modem
- DECT: Dialog SC14441
- LEDs: 1 two-color, 4 one-color
- Buttons: 1x DECT, 1x WIFI
- Telephone connectors: 1 FXS port via TAE or RJ11 connector
With the exception of FXS/DECT everything works
(there are no drivers for AVM's FXS or DECT implementation),
DSL is yet untested.
Installation:
Boot up the device and wait a few seconds. Run the eva_ramboot.py script
in scripts/flashing/ to load the initramfs image on the device:
$ ./scripts/flashing/eva_ramboot.py 192.168.178.1 <path to your initramfs image>
If the script fails to reach the device, maybe try 169.254.120.1.
Wait until booting is complete. You should now be able to reach your device
under the default ip address 192.168.1.1.
Before flashing, check if linux_fs_start is not set to 1 in the tffs partition:
$ fritz_tffs_nand -d /dev/mtd1 -n linux_fs_start
If linux_fs_start is 1, you will need to reset it to 0, either by FTP,
upgrading FritzOS or doing a recovery.
Now you should be able to flash the device using sysupgrade.
Signed-off-by: Leon Maurice Adam <leon.adam@aol.de>
Acked-by: Aleksander Jan Bajkowski <A.Bajkowski@stud.elka.pw.edu.pl>
[drop BOARD_NAME, use wpad-basic-wolfssl, drop 4.19, drop dts-v1,
remove model prefix from LED names]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

Bist du dir sicher, dass du das Ding flashen willst? Ich hoffe, es ist nicht deine FritzBox!, die du fürs Internet brauchst :D

SophieGermain 
Fragesteller
 26.02.2022, 17:44

Ich kann mit diesem Linux-Jargon nicht viel anfangen, tut mir leid. Könntest du es vielleicht etwas eingehender erklären? Und warum fragst du, ob ich es wirklich flashen will? Ist das keine sinnvolle Idee? Warum denn nicht? Hast du bereits Erfahrung damit?

0
julihan41  26.02.2022, 18:16
@SophieGermain
Könntest du es vielleicht etwas eingehender erklären?

Leider nicht, weil ich das bei einer Fritz!Box noch nicht gemacht habe und auch nicht vorhabe. Da solltest du dich eher an das OpenWRT-Forum wenden, denn GuteFrage ist da nicht für geeignet.

Und warum fragst du, ob ich es wirklich flashen will? Ist das keine sinnvolle Idee? Warum denn nicht? Hast du bereits Erfahrung damit?

Die Idee an sich kann gut oder schlecht sein.

  • Wenn du dabei einen Fehler machst, kann es sehr gut sein, dass du das Gerät hinterher nicht mehr nutzen kannst, bis du den Fehler behebst.
  • Wenn du dich auskennst oder das Gerät eh nur in der Ecke steht und nicht gebraucht wird, dann sehe ich da keine Probleme mit ;) Selbst wenn was schief läuft, ist nichts schlimmes passiert.

Das Flashen ist dann eine sinnvolle Idee, wenn dein Gerät keine Updates mehr erhält oder du Funktionen von OpenWRT benötigst / nutzen willst, die die Fritz!Box nicht bereit stellt oder wenn du einfach rumspielen und dabei lernen willst.

0
Waldelb3  27.02.2022, 00:37
@julihan41

Ein FOSS System auf dem Router zu haben ist auch in sich selbst eine sinnvolle Sache. Persönlich würde ich dem FritzOS nicht trauen.

0
Waldelb3  27.02.2022, 00:33

Wie verstehst du "You should now be able to reach your device under the default ip address 192.168.1.1."?

Meint der da, man soll sich per ssh verbinden?

0

Die zweite Voraussetzung ist, etwas über den Aufbau der Funktionsweise neuerer Fritzboxen zu wissen.

Die Fritzbox startet zuerst ein kleines Betriebssystem (EVA) mit einem FTP-Server, dieses lädt danach erst das eigentliche Fritz!OS. Diese neueren Boxen haben zwei Partitionen und man kann bei einem fehlgeschlagenem Update, z.B. wieder auf die Firmwareversion davor zurück"schalten". Dies geht dann in dem kleinen Betriebssystem (EVA) mit dem FTP-Server.

Um OpenWRT auf die FB zu flashen, muss die Box im EVA-Loader angehalten werden. Mit dem Recover-Programm einer anderen Fritzbox (z.B. FB7590) geht das am einfachsten:

https://download.avm.de/fritzbox/fritzbox-7590/deutschland/recover/

weil man nur Fritzboxen mit dem richtigen Programm recovern kann.

Dieser EVA-Loader kann IP-Adressen nicht automatisch verteilen und funktioniert nur, wenn die Box mit einem Netzwerkkabel mit dem Rechner verbunden ist. Und der Rechner eine IP-Adresse aus dem selben Netzwerk-Segment 192.168.178.X hat (z.B. 192.168.178.2 / 255.255.255.0).

Nun die Box stromlos machen und das Recover der 7590 starten und den Anweisungen folgen, bis dort steht, dass es das falsche Programm ist.

Erst jetzt geht es mit:

 ./scripts/flashing/eva_ramboot.py 192.168.178.1 <path to your initramfs image>

das OpenWrt geflasht werden kann.

Wenn die FB im Fritz!OS hochgefahren ist, lässt sich OpenWrt nicht flashen.

P.S.: Inzwischen gibt es OpenWrt 21.02.2:

https://downloads.openwrt.org/releases/21.02.2/targets/lantiq/xrx200/openwrt-21.02.2-lantiq-xrx200-avm_fritz7430-squashfs-sysupgrade.bin