OpenWrt auf dem RavPower RP-WD03: Extroot & Swap retten den FileHub (Anleitung)

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 in kernel um.
  • Und openwrt-21.02.x-…-rootfs.bin exakt in rootfs.
  • Wichtig unter Windows: Achtet darauf, dass keine versteckte Dateiendung wie .bin oder .txt angehängt wird (die Datei darf am Ende einfach nur kernel und rootfs heiß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.

  1. Power-Button des WD03 gedrückt halten, bis die erste weiße LED aufleuchtet.
  2. Sofort danach zusätzlich den Reset-Knopf (mit einer Büroklammer) drücken und beide Knöpfe gedrückt halten.
  3. Im Logfenster des TFTP-Tools auf dem PC solltet ihr nun sehen, dass die Datei kernel erfolgreich an den Router übertragen wird.
  4. 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:

  1. Partition 1 (Swap): 512 MB, Dateisystem linux-swap
  2. 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

openwrt-21.02.1-ramips-mt7620-ravpower_rp-wd03-squashfs-kernel.bin.zip

Umbenennen in kernel

openwrt-21.02.1-ramips-mt7620-ravpower_rp-wd03-squashfs-rootfs.bin.zip

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!

Von Tobi

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert