Diese Anleitung erklärt, wie ein ZTE MF289F mit Freifunk-Firmware bespielt wird.
Sie brauchen: ZTE MF289F, PC/Laptop mit Linux (diese Anleitung wurde mit Debian erstellt), USB zu TTL-Adapter, OpenWrt initramfs-Firmware (Kernel), Freifunk Aachen sysupgrade-Firmware, Kreuzschlitz-Schraubendreher, stumpfes Messer, Kleinteiletasse (anfangs leer) und ein LAN-Kabel

Demontage des Geräts:
- Gummifüße auf der Unterseite lösen und in die Kleinteiletasse legen (Falls dabei 2 kleine Folien zum Vorschein kommen diese abziehen und entsorgen)

- Deckel auf der Oberseite mit sanfter Gewalt und Nutzung des stumpfen (!!!) Messers lösen

- Auf Ober- und Unterseite jeweils die 2 Schrauben lösen und in die Kleinteiletasse legen

- Deckel auf der Unterseite lösen. Dazu kann es helfen, das Gerät etwas zu stauchen.


- Die nun sichtbaren 4 weiteren Schrauben lösen und in die Kleinteiletasse legen

- Die Schublade, auf der die Platine befestigt ist, sanft herausziehen


Installation:
- Laden Sie die OpenWrt initramfs-firmware (Kernel) herunter. Die englischsprachige Anleitung an der diese angelehnt ist, finden Sie hier im OpenWrt-Git.
- Laden Sie die Freifunk Aachen sysupgrade-firmware (Upgrade) herunter.
- Installieren Sie „screen“ (für später) und einen TFTP-Server, in dieser Anleitung nutzen wir dnsmasq:
sudo apt update
sudo apt install dnsmasq screen
- TFTP-Server nach dieser Anleitung einrichten. Dazu kann ein beliebiger Text-Editor wie nano, vim oder gedit mit Superuser-Rechten genutzt werden. Danach starten wir den Daemon neu mit
sudo systemctl restart dnsmasq
- Wir erstellen einen neuen Ordner ftpd:
sudo mkdir /var/ftpd
- Wir kopieren das initramfs-Image (in diesem Beispiel liegt es im Downloads Ordner) nach /var/ftpd/, ändern den Owner der Datei und des Ordners auf dnsmasq und überprüfen die Änderungen:
sudo cp Downloads/openwrt-xxx-ipq40xx-generic-zte_mf289f-initramfs-zImage.itb /var/ftpd/
sudo chown dnsmasq /var/ftpd/openwrt-xxx-ipq40xx-generic-zte_mf289f-initramfs-zImage.itb
sudo chown dnsmasq /var/ftpd/
ls -al /var/ftpd/
Die Ausgabe sollte ungefähr so aussehen:
drwxr-xr-x 2 dnsmasq root 4096 Mar 5 20:45 .
drwxr-xr-x 15 root root 4096 Mar 5 20:42 ..
-rw-r--r-- 1 dnsmasq root 6624692 Mar 5 20:45 openwrt-xxx-ipq40xx-generic-zte_mf289f-initramfs-zImage.itb
- Wir geben uns selbst die IP 192.168.0.2.

- Nun verbinden wir uns per USB zu TTL-Adapter mit dem Gerät.



- Der serielle Anschluss des ZTE hat von der Unterseite des Geräts gesehen die Reihenfolge Ground, RX, TX. Zum Verbinden stecken wir unsere Jumper-Kabel von der Unterseite gesehen in der Reihenfolge Ground, TX, RX in den Anschluss. Also stecken nun Ground an Ground, TX an RX und RX an TX. Das quadratische Loch bleibt frei.
- Nun verbinden wir unseren Computer per LAN-Kabel mit dem WAN/LAN 1-Port des ZTE.

- Nun schauen wir uns mit screen die serielle Verbindung an:
sudo screen /dev/ttyUSB0 115200,cs8,-ixon,-ixoff
Noch bleibt das terminal Fenster leer.
Sollte eine Fehlermeldung erscheinen, versuchen Sie, den USB-Stecker zu ziehen, wieder einzustecken und dann den Befehl erneut abzusenden.
- Nun stecken wir das Stromkabel in den ZTE, sodass das Gerät startet. Dank screen sehen wir den Bootvorgang. Wir brechen den Bootvorgang ab, wenn wir die Nachricht „Press ESC to abort autoboot in 0 seconds“ sehen, indem wir die ESC-Taste drücken. Danach führen wir folgende Befehle Zeile für Zeile aus. Dabei ist zu beachten, dass der Dateiname der itb-Datei mit der existierenden Datei von oben übereinstimmt.
setenv serverip 192.168.0.2
setenv ipaddr 192.168.0.1
set fdt_high 0x85000000
tftp openwrt-xxx-ipq40xx-generic-zte_mf289f-initramfs-zImage.itb
bootm $loadaddr

Wenn nun für eine Weile keine neuen Textausgaben in der Konsole erscheinen, drücken wir ENTER.
Wir sind nun in der Kommandozeile von OpenWRT.

- Wir stecken das LAN-Kabel nun von WAN/LAN1 um auf LAN2

- Außerdem ändern unsere IP von 192.168.0.2 auf 192.168.1.42.

- Wenn wir in der OpenWRT-Kommandozeile nun
ip a
eingeben, sehen wir, dass wir im gleichen Netz sind.

- Wir müssen ssh auf unserem Computer einrichten, falls noch nicht geschehen. Dazu führen wir in einem neuen Konsolenfenster folgende Befehle auf unserem Laptop aus:
sudo apt install openssh-server
sudo service ssh start
- Als Nächstes machen wir ein Backup von zwei Partitionen der Original-Firmware. Dazu führen wir in der OpenWRT-Kommandozeile folgende Befehle aus (Benutzername myname durch Benutzernamen des Laptop-Linux ersetzen):
cat /dev/mtd16 > /tmp/mtd16.bin
scp /tmp/mtd16.bin myname@192.168.1.42:/home/myname/
rm /tmp/mtd16.bin
cat /dev/mtd17 > /tmp/mtd17.bin
scp /tmp/mtd17.bin myname@192.168.1.42:/home/myname/
rm /tmp/mtd17.bin

- Jetzt löschen wir die Original-Firmware. Dazu führen wir in der OpenWRT-Kommandozeile nacheinander folgende Befehle aus:
ubiattach -m 17
ubirmvol /dev/ubi0 -N ubi_rootfs
ubirmvol /dev/ubi0 -N ubi_rootfs_data

Der letzte Befehl könnte diesen Fehler werfen, den wir ignorieren:
ubirmvol: error!: cannot find UBI volume "ubi_rootfs_data"
error 2 (No such file or directory)
- Nun kopieren wir die Freifunk-Gluon-Firmware vom Laptop auf den ZTE (angenommen die Firmware liegt im Downloads-Ordner), indem wir in der Konsole des Laptop-Systems folgenden Befehl ausführen:
scp -O Downloads/gluon-ffac-xxx-zte-mf289f-sysupgrade.bin root@192.168.1.1:/tmp/

- Zum Schluss installieren wir die Freifunk-Firmware auf dem ZTE. Dazu führen wir folgenden Befehl in der OpenWRT-Kommandozeile aus:
sysupgrade -n /tmp/gluon-ffac-xxx-zte-mf289f-sysupgrade.bin

- Ab jetzt können wir den ZTE im Config-Modus unter der IP 192.168.1.1 einrichten.
- Zum Schluss muss der ZTE noch in umgekehrter Reihenfolge der Demontageanleitung wieder montiert und mit einem Freifunk-Aachen Sticker versehen werden. Das Wiedereinsetzen der „Schublade“ kann etwas knifflig sein, hier bitte wenig bis keine Gewalt anwenden, es geht leicht wenn man es richtig macht.