3. PLC Firmware
An die Firmware des Adapters von Devolo zu kommen ist in meinen Augen der schwierigste Schritt. Aber auch hier hat der findige Andre Borie mit seinem Skript dLAN-1200-ac-firmware-downloader eine pfiffige Lösung geschaffen. Nachfolgende Erläuterungen nutzen die Logik und Struktur des Skripts, ohne es aber direkt zu benutzen.
3.1 Beschaffung des Debian-Pakets von Devolo
Die Firma Devolo hinterlegt ein Debian Paket mit der aktuellen Adapter-Firmware (siehe Link unten) auf Ihrem Webserver. Bemerkenswert ist jedoch, dass zum gleichen Zeitpunkt eine neuere Variante der Firmware direkt auf der Geräteseite von Devolo, nämlich Version 5.8.5 (siehe Link unten) hinterlegt war. Bitte beachten Sie aber, dass diese Version als Binärdatei vorliegt, daher ist etwas anders zu verfahren.
Zunächst beschaffen wir die aktuelle Version des Debian Pakets.
Dazu rufen wir in einem Webbrowser die URL https://update.devolo.com/linux2/apt/pool/main/d/devolo-firmware-dLAN1200-wifiac/ auf. Dies kann auch auf einem anderen Rechner geschehen, da wir lediglich um den kompletten Pfad der Firmware benötigen.

Nachdem wir den Pfad notiert oder in die Zwischenablage kopiert haben, können wir das Paket von der Webseite herunterladen. Dies funktioniert an der Kommandozeile mit dem Befehl curl. Zunächst legen wir aber ein temporäres Verzeichnis dLAN an, da wir viele, im Zuge der folgenden Arbeitsschritte erstellen, Dateien später nicht mehr benötigen.
user@linux:~/openwrt$ mkdir -p /tmp/dlan
user@linux:~/openwrt$ curl -o /tmp/dlan/devolo-firmware-dlan1200-wifiac_5.6.1-1_i386.deb https://update.devolo.com/linux2/apt/pool/main/d/devolo-firmware-dlan1200-wifiac/devolo-firmware-dlan1200-wifiac_5.6.1-1_i386.deb
Anschließend befindet sich die Firmware im Verzeichnis /tmp/dLAN
user@linux:~/openwrt$ ls -ls /tmp/dlan
insgesamt 15172
15172 -rw-rw-r-- 1 stq stq 15534228 Apr 29 14:35 devolo-firmware-dLAN1200-wifiac_5.6.1-1_i386.deb
3.2 Extraktion der Firmware
user@linux:~/openwrt$ dpkg -x /tmp/dlan/devolo-firmware-dlan1200-wifiac_5.6.1-1_i386.deb /tmp/dlan
user@linux:~/openwrt$ ls -ls /tmp/dlan
insgesamt 15176
15172 -rw-rw-r-- 1 stq stq 15534228 Apr 29 14:35 devolo-firmware-dLAN1200-wifiac_5.6.1-1_i386.deb
4 drwxr-xr-x 3 stq stq 4096 Nov 4 2020 firmware
Im Ordner /tmp/dLAN/firmware/devolo-firmware-dLAN1200-wifiac finden wir die Datei delos_dLAN-1200-ac_5.6.1_2020-10-23.bin.dvl. Diese muss nun mit dem Tool binwalk weiter entpackt werden. Dann listen wir den extrahierten Verzeichnisinhalt auf.
user@linux:~/openwrt$ binwalk /tmp/dlan/firmware/devolo-firmware-dlan1200-wifiac/delos_dlan-1200-ac_5.6.1_2020-10-23.bin.dvl -e -C /tmp/dlan
Falls die Firmware BIN-Format (wie aktuell die Firmware 5.8.5) vorliegt, dann spart man sich das Extrahieren aus dem Debian-Paket. Die BIN-Datei legen wir alternativ zur obigen im Ordner /tmp/dLAN ab und extrahieren z.B. mit folgendem Befehl:
user@linux:~/openwrt$ binwalk /tmp/dlan/delos_dlan-1200-ac_5.8.5_2021-10-08.bin -e -C /tmp/dlan/
Für den Devolo dLAN 1200+ Wifi AC benötigen wir die folgenden beiden Dateien aus dem Unterverzeichnis /tmp/dLAN/EXTRAHIERTE_FIRMWARE_PFAD/squashfs-root/lib/firmware/plc/dLAN-pro-1200-ac der extrahierten Firmware:
- MAC-7500-v2.8.0-01-NW6__-X-CS.nvm
- qca7500-pib15-devolo-mt2673.pib
Diese beiden Dateien kopieren wir in die Dateistruktur des OpenWRT build systems. Bei der Firmware, welche aus dem Debian Archiv extrahiert wurde, sähe der Befehl wie folgt aus:
user@linux:~/openwrt$ cp /tmp/dlan/firmware/devolo-firmware-dlan1200-wifiac/_delos_dlan-1200-ac_5.6.1_2020-10-23.bin.dvl.extracted/squashfs-root/lib/firmware/plc/dlan-pro-1200-ac/{*mt2673.pib,MAC-7500-v2.8.0-01-NW6__-X-CS.nvm} feeds/dlan/dlan-fw/qca/devolo,dlan-pro-1200plus-ac/
Für die aus der BIN-Datei extrahierte Firmware muss der Kopierbefehl leicht angepasst werden:
user@linux:~/openwrt$ cp /tmp/dlan/_delos_dlan-1200-ac_5.8.5_2021-10-08.bin.extracted/squashfs-root/lib/firmware/plc/dlan-pro-1200-ac/{*mt2673.pib,MAC-7500-v2.8.0-01-NW6__-X-CS.nvm} feeds/dlan/dlan-fw/qca/devolo,dlan-pro-1200plus-ac/
Die Pfade können mit jeder neuen Firmwareversion natürlich leicht schwanken, die grundsätzliche Vorgehensweise ist jedoch gleich.