Der RavPower RP-WD03 FileHub ist ein geniales Stück Hardware – Powerbank, SD-Kartenleser und Mini-Router in einem. Doch die originale Firmware ist alt und stark eingeschränkt. Die Lösung? OpenWrt.
Allerdings hat das Gerät eine massive Schwachstelle: Mit nur 32 MB RAM und 8 MB Flash-Speicher bricht der Router unter modernen OpenWrt-Versionen (wie 21.02) sofort zusammen. Ein einfaches opkg update reicht aus, um das System wegen akutem Speichermangel (Out of Memory) absacken zu lassen.
In diesem Beitrag zeige ich euch, wie ihr OpenWrt 21.02 via TFTP flasht und das Gerät anschließend mit Extroot und Swap über eine SD-Karte so erweitert, dass euch nie wieder der Speicherplatz ausgeht.
Die Ausgangslage: Warum ohne SD-Karte nichts geht
Der offizielle OpenWrt-Support hat Geräte mit der sogenannten „4/32-Regel“ (4 MB Flash, 32 MB RAM) eigentlich aussortiert. Wer dennoch eine aktuelle Version nutzt, stellt fest: Die Weboberfläche (LuCI) belegt fast den gesamten RAM, Änderungen lassen sich kaum speichern.
Die Rettung liegt im integrierten SD-Kartenslot des WD03. Wir lagern den Arbeitsspeicher (Swap) und das Systemverzeichnis (Extroot) komplett auf eine SD-Karte aus.
Schritt 0: Das Fundament – OpenWrt via TFTP flashen
Da die originale Weboberfläche von RavPower oft zickt, flashen wir den Router direkt über den integrierten Bootloader. Dafür braucht ihr einen PC mit Ethernet-Anschluss und ein Netzwerkkabel.
1. Die richtige Firmware finden
Auf der offiziellen OpenWrt-Downloadseite sucht ihr für die Version 21.02 nach dem Target ramips/mt7620 und ladet die passenden Images für den RavPower RP-WD03 herunter.
(i) Es gibt leider nur noch Sysupgrade-Versionen im Archiv die wir nicht gebrauchen können. Die genannte Version habe ich selbst gehostet, ihr findet sie am Ende des Artikels unter Downloads.
Dort warten zwei .bin-Dateien:
...-squashfs-kernel.bin...-squashfs-rootfs.bin
2. Das Image für den Bootloader vorbereiten
Der Bootloader des RavPower ist wählerisch. Er sucht beim Start nach einem ganz bestimmten Dateinamen.
- Benennt die heruntergeladene Datei (z. B.
openwrt-21.02.x-...-kernel.bin) exakt inkernelum. - Und
openwrt-21.02.x-…-rootfs.binexakt inrootfs. - Wichtig unter Windows: Achtet darauf, dass keine versteckte Dateiendung wie
.binoder.txtangehängt wird (die Datei darf am Ende einfach nurkernelundrootfsheißen).
3. Den TFTP-Server am PC einrichten
Installiert ein kleines, kostenloses TFTP-Server-Programm auf dem PC (unter Windows empfiehlt sich Tftpd64).
- Legt die umbenannte Dateien direkt in das Hauptverzeichnis (Root-Ordner) des TFTP-Servers.
- Konfiguriert die Netzwerkkarte des PCs auf eine feste IP-Adresse:
10.10.10.254
4. Den Flash-Vorgang starten
Verbindet den PC per LAN-Kabel mit dem (noch ausgeschalteten) RavPower.
- Power-Button des WD03 gedrückt halten, bis die erste weiße LED aufleuchtet.
- Sofort danach zusätzlich den Reset-Knopf (mit einer Büroklammer) drücken und beide Knöpfe gedrückt halten.
- Im Logfenster des TFTP-Tools auf dem PC solltet ihr nun sehen, dass die Datei
kernelerfolgreich an den Router übertragen wird. - Kurz danach wird
rootfsübertragen.
Wichtig: Dieser Schritt ist der heikelste Punkt der ganzen Anleitung. Wenn die Knopf-Kombination nicht im richtigen Moment erfolgt oder der Transfer mittendrin abbricht, kann der Router in einem nicht bootfähigen Zustand hängen bleiben („brick“). Am besten den Vorgang bei Fehlschlag einfach nochmal von vorn starten (Router stromlos machen, TFTP-Server-Log prüfen, erneut versuchen), statt während der Übertragung selbst einzugreifen. Solange kein Transfer läuft, ist in der Regel noch nichts verloren.
Sobald der Transfer abgeschlossen ist, lasst den Router für ca. 3–5 Minuten absolut in Ruhe. Er flasht das Image im Hintergrund und startet danach automatisch neu. Sobald er wieder da ist, erreicht ihr die OpenWrt-Oberfläche im Browser unter der IP 192.168.1.1.
Schritt 1: SD-Karte am PC vorbereiten
Da der Router im Werkszustand zu wenig RAM hat, um Partitionierungstools auszuführen, muss die SD-Karte (z. B. 64 GB) vorab am PC (mit GParted oder MiniTool Partition Wizard) aufgeteilt werden:
- Partition 1 (Swap): 512 MB, Dateisystem
linux-swap - Partition 2 (Extroot): Der gesamte restliche Speicher (z. B. 58 GB), Dateisystem
ext4
Danach kommt die Karte in den ausgeschalteten FileHub.
Schritt 2: Treiber & USB-Erkennung nachinstallieren
Nach dem ersten Flash via TFTP verbindet ihr euch per SSH auf den Router (192.168.1.1). Um die USB- und SD-Schnittstellen anzusprechen, müssen die Treiber manuell installiert werden:
opkg install kmod-sdhci mmc-utils kmod-mmc kmod-fs-ext4 kmod-usb-storage block-mount
Tipp: Kein großes System-Update an dieser Stelle machen, sonst stürzt der Router ab, bevor die Treiber installiert sind!
Ein anschließendes block info zeigt uns, dass die SD-Karte als USB-Gerät erkannt wurde: /dev/sda1 ist der Swap, /dev/sda2 ist unser ext4-Speicher.
Schritt 3: Den virtuellen RAM (Swap) zünden
Damit der Router beim Kopieren der Daten stabil bleibt, wird sofort die Swap-Partition aktiviert:
swapon /dev/sda1
Ein Kontrollblick mit free -h zeigt: Der Arbeitsspeicher wurde erfolgreich um 512 MB erweitert. Der Router atmet spürbar auf!
Damit der Swap den Neustart übersteht, tragt ihn fest in die UCI-Konfiguration ein (ersetzt die UUID mit eurer eigenen aus block info):
uci -q delete fstab.swap
uci set fstab.swap="swap"
uci set fstab.swap.uuid="DEINE_SWAP_UUID"
uci set fstab.swap.enabled="1"
uci commit fstab
Schritt 4: Extroot einrichten (Unendlich Speicherplatz)
Jetzt wird das Hauptverzeichnis /overlay auf die große Partition der SD-Karte umgebogen, damit sich Software ohne Limit installieren lässt.
Zuerst die Konfiguration schreiben (UUID der ext4-Partition eintragen):
uci -q delete fstab.extroot
uci set fstab.extroot="mount"
uci set fstab.extroot.uuid="DEINE_EXT4_UUID"
uci set fstab.extroot.target="/overlay"
uci set fstab.extroot.enabled="1"
uci commit fstab
Ganz wichtig: Vor dem Neustart müssen die bestehenden Konfigurationen und Passwörter auf die SD-Karte kopiert werden:
mount /dev/sda2 /mnt
cp -a /overlay/. /mnt/
umount /mnt
Das Ergebnis: Ein Mini-Router auf Steroiden
Nach einem beherzten reboot und dem erneuten Login zeigt ein df -h im Terminal, ob sich die Mühe gelohnt hat. Das Ergebnis kann sich sehen lassen:
Filesystem Size Used Available Use% Mounted on
/dev/sda2 57.8G 1.6M 54.8G 0% /overlay
overlayfs:/overlay 57.8G 1.6M 54.8G 0% /
Fast 55 Gigabyte freier Speicherplatz auf einem Gerät, das ab Werk nur 8 Megabyte hatte! Ab jetzt läuft die Kiste absolut stabil und im Paketmanager wartet die gesamte OpenWrt-Software-Welt darauf, ausprobiert zu werden.
Habt ihr auch noch so einen alten FileHub herumliegen? Welche Software würdet ihr darauf installieren? Im nächsten Beitrag stelle ich noch ein paar Projekte vor und versuche mich außerdem an einem eigenen kleinen Heartbeat-Projekt.
Downloads
Umbenennen in kernel
Umbenennen in rootfs
☕ Hat dir dieser Beitrag geholfen?
Ich stecke viel Herzblut und Zeit in diesen Blog. Wenn du mir danke sagen möchtest, kannst du mir hier einen virtuellen Kaffee spendieren: buymeacoffee oder Ko-fi. Vielen Dank für deine Unterstützung!
