FTP-Server auf dem Linksys WRT54GL mit DD-WRT Firmware und 1GB Mini-SD-Karte

Primär aus Gründen der Erweiterbarkeit sowie der Möglichkeit, alternative Firmwares (z.B. Tomato, OpenWRT, DD-WRT, FreeWRT, …) zu benutzen und somit den Funktionsumfang des Routers erheblich zu erhöhen, habe ich mir vor 83 Tagen (Uptime des Routers, er läuft seitdem ohne das geringste Problem) einen Linksys WRT54GL zugelegt.  Sekundär, um einen „featurearmen“ Speedport in Rente – Pardon Altersteilzeit – zu schicken, er dient immerhin noch als Modem für den WRT54GL. ;-)

Die Standard-Firmware von Linksys wurde lediglich einmal durchgeklickt und dann gleich durch DD-WRT ersetzt.  Eine Online-Demo zu dieser Firmware ist unter dd-wrt.com/demo erreichbar. Der Router selbst kann direkt über das Webinterface geflasht werden. Wird die Firmware über das Original Linksys-Webinterface eingespielt, ist darauf zu achten, erst die Firmware „dd-wrt.vxx_mini_generic.bin“ zu installieren, da standardmäßig keine Firmware > 3,0 MB erlaubt ist. Wurde der Router erfolgreich mit dieser Firmware geflasht, kann dann bei Bedarf auch die Firmware „dd-wrt.vxx_std_generic.bin“ geflasht werden. „xx“ steht bei der jeweiligen Firmware für die Versionsnummer.

Nach dem Flashen ist der Router über das Webinterface sowie SSH (nach Aktivierung des SSH-Daemon im Webinterface) über die IP 192.168.1.1, den Benutzer root sowie das Default-Passwort admin erreichbar.

DD-WRT bietet unter anderem die Möglichkeit, eine SD-Karte in Verbindung mit dem Router zu nutzen. Der Router muss dazu zuerst um einen entsprechenden SD-Slot erweitert werden. Die Überlegung war zuerst, aus einem defekten Cardreader den SD-Slot auszulöten und ihn in den Linksys WRT54GL einzubauen. Ich hatte auch schon mit dem entlöten begonnen, als mein Blick auf einen Mini-SD zu SD-Adapter fiel. Warum nicht einfach auf den Adapter löten und eine Mini-SD benutzen? Der Adapter würde dabei dann als Slot dienen. Zudem ist ein solcher Adapter stabiler als ein entlöteter SD-Slot und bietet außerdem noch größere Pins, welches das Löten erheblich vereinfacht. Gesagt, getan! Eine 1GB Mini-SD Karte hatte ich sowieso noch von meinem alten Nokia N73 übrig.

Pinbelegung (Pin 1 – Pin 9) des Mini-SD zu SD-Adapters (bzw. SD-Karte), wobei Pin 8 sowie Pin 9 nicht benötigt werden:

Pin-Zuordnung SD-Karte / Linksys WRT54GL:

Pin Nr. Pin SD-Karte Pin WRT54GL
1 CS GPIO7
2 DI (Data In) GPIO2
3 VSS (GND) GND
4 VDD 3,3V
5 CLK (Clock) GPIO3
6 VSS2 (GND) GND
7 DO (Data Out) GPIO4
8 DAT1
9 DAT2

Am Router selbst werden 6 Pins auf der Platine benötigt:

Der angelötete Mini-SD Adapter wurde mit doppelseitigem Klebeband direkt auf die Lan Ports gesetzt:

Am Gehäuse des Linksys musste nur noch eine Nut mit den Abmessungen des Slots herausgefeilt werden. Fertig zusammengebaut sieht bei mir das ganze dann so aus:



Nach dieser Modifikation wird die SD-Karte auch direkt im Webinterface richtig erkannt:

Alles schön und gut, jetzt hat der Router eine 1GB Mini-SD Karte, doch für was kann diese jetzt genutzt werden? Dank der DD-WRT Firmware (Linuxbasierend) ist es nun ohne weiteres möglich, z.B. einen kleinen FTP-Server auf dem WRT54GL laufen zu lassen. Ich selbst habe zum FTP-Server „vsftpd“ gegriffen.

Um Ipkg-Pakete installieren zu können, muss folgende Dateistruktur auf der SD-Karte angelegt werden:

mkdir /mmc/jffs
mkdir /mmc/jffs/tmp
mkdir /mmc/jffs/tmp/ipkg

Nun kann der vsftpd-Server über folgenden Befehl heruntergeladen und installiert werden:

 ipkg -d /mmc/jffs install http://downloads.openwrt.org/whiterussian/packages/vsftpd_2.0.4-1_mipsel.ipk

Zusätzlich benöftigt der vsftpd-Server noch die Library uclibc:

 ipkg -d /mmc/jffs install http://downloads.openwrt.org/whiterussian/packages/uclibc_0.9.27-9_mipsel.ipk

Die Konfigurationsdatei für den FTP-Server kann mit dem Editor vi bearbeitet werden:

vi /mmc/jffs/etc/vsftpd.conf

Hier eine Beispielkonfiguartion, welche auch Anonymen Zugriff erlaubt:

  anon_mkdir_write_enable=YES
  anon_upload_enable=YES
  no_anon_password=YES
  anon_world_readable_only=NO
  # leave this as / needs to be nonwritable
  anon_root=/
  # you might have to make this dir
  secure_chroot_dir=/jffs/var/run/vsftpd
  ftp_username=root
  nopriv_user=root
  background=YES
  listen=YES
  anonymous_enable=YES
  local_enable=YES
  write_enable=YES
  local_umask=022
  check_shell=NO
  dirmessage_enable=YES
  ftpd_banner=ROUTER

Über ein Startscript (z.B. gespeichert unter /mmc/ftpstartup) werden nach einer Wartezeit von 60 Sekunden zuerst die beiden Ordner /jffs und /opt gemountet, dann der Benutzer nobody angelegt und anschließend der vsftpd-Server mit uclibc gestartet:

sleep 60
 
mount -o bind /mmc /jffs
mount -o bind /mmc/opt /opt
 
echo "nobody:Password:0:0:User,,,:/mmc:/bin/sh" >> /tmp/etc/passwd 
 
export LD_PRELOAD='/mmc/jffs/lib/libuClibc-0.9.27.so'
/mmc/jffs/usr/sbin/vsftpd /mmc/jffs/etc/vsftpd.conf
unset LD_PRELOAD
env > /dev/null

Damit das Script auch bei jedem Start ausgeführt wird, muss es im Webinterface noch unter Administration/Diagnose/Kommandozeile eingetragen werden:

/mmc/ftpstartup

Dieser FTP-Server erreicht bei mir einen Durchsatz von ca. 400 KB/s. Um kleinere Dateien im Netzwerk oder Internet auszutauschen, reicht dies locker aus. Auch können z.B. per SSH und wget Downloads direkt auf dem Router gestartet werden, ohne dass hierzu extra ein PC laufen muss. In Verbindung mit einem Dyndns-Client auf dem Router können solche Downloads auch über das Internet von jedem beliebigen SSH-Client aus gestartet werden. Bis man(n) dann Zuhause ist, ist der Download schon auf dem eigenen Router. ;-)

11 Gedanken zu „FTP-Server auf dem Linksys WRT54GL mit DD-WRT Firmware und 1GB Mini-SD-Karte

  1. Hallo,
    habe hiermit Schwierigkeiten,
    mein SD Karten Mod funktioniert.
    Wenn ich versuche mit mk.. die Verzeichnisse zu erzeugen werden diese nicht angelegt, habe das dann per SCP erledigt.

    Wenn ich nun versuche die Dateien per ipkg-Befehl herunter zu laden, kommen nur jeweils drei Fehler
    und ich soll „ipkg update“ ausführen wo anscheinend auch nichts passiert ?

  2. Hallo Marabel,

    wo hast du versucht, die Befehle einzugeben? Über das Webinterface?
    Falls ja, würde ich dir empfehlen, den SSH-Server auf dem Router zu aktivieren, um eine Verbindung von einem SSH-Client aus zum Router aufbauen zu können.
    Über das Webinterface fehlen dir die benötigten Rechte.

    MfG Manuel

  3. Hallo!
    Besteht die Möglichkeit, einen adaptierten WRT54GL mit SD Card Slot zu bestellen? Meine Lötfähigkeiten würden wahrscheinlich die Platine zerstören….
    lg, BurnD

  4. Moin! Ich habe einen Linksys WRT54G Router. Darauf läuft v24 preSP2 Build 14896 von 2010-08-09. Dazu meine Frage: Ist das die aktuellste Version? Oder gibt es eine Neuere? Ich finde dazu nix im Netz.

  5. hallo,
    install per LAN
    Linksys WRT54G/GL/GS
    DD-WRT v24-sp2 (08/07/10) std – build 14896
    nun habe ich dieses Problem beim ipkg_update: Error downloading http://downloads.openwrt.org/backports/rc5/Packages to /jffs/usr/lib/ipkg/lists/backports:
    ERROR: File not found: /jffs/usr/lib/ipkg/lists/backports
    bzw.
    ipkg_update:
    Error downloading http://downloads.openwrt.org/backports/rc5/Packages to /jffs/usr/lib/ipkg/lists/backports
    ??? kannst Du es, bitteschön, erklären ?
    herzlichen Dank

Schreibe einen Kommentar

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