DD-WRT auf einer Nokia IP130 installieren

Aus Laub-Home Wiki

Image auf HDD oder CompactFlash Card flashen

Als erstes wird das richtige Image benötigt, welches ihr hier bekommt:

Einfach nach der richtigen Box suchen und das "DD-WRT X86 Public Serial: Console image dd-wrt_public_serial.image" herunterladen.
Hier der Link:

So nun wird ein USB to IDE Adapter benötigt um die 2,5" HDD oder wahlweise eine CF Card mit IDE Adapter, an den PC anzuschließen.

Linux/OSx

Unter Linux oder OSx kann das Image mittels dd übertragen werden:

dd if=dd-wrt_public_serial.image of=/dev/usbdisk

Achtung!!! bei falsch Angabe des richtigen of Devices kann es zu Datenverlust kommen. Bitte wirklich das richtige Device auswählen!!!

Windows

Unter Windows wird das kleine Tool "physdiskwrite" benötigt, dies bekommt ihr hier:

Einfach das Tool herunterladen und ausführen. Es sollten nun alle verfügbaren Laufwerke angezeigt werden. Hier bitte mit der Rechte Maustaste das gewünschte Device auswählen und Image laden anklicken, dann das Image File auswählen und fertig.
Das ganze geht auch unter Windows per Kommandozeile:
Dazu einfach das Image File in den selben Ordner legen wie die physdiskwrite.exe, via Start --> Ausführen cmd in die Konsole gehen und in das richtige Verzeichnis (in dem die Dateien liegen) wechseln:

cd PATHTOFILES
physdiskwrite -u dd-wrt_public_serial.image

Einbau der HDD/CF Card und Booten

Nachdem die Karte oder die HDD geflasht wurde einfach wieder einbauen und die Box booten. Dabei sollte ein Netzwerkkabel mit eth1 (LAN II) verbunden sein. Die Festplatte sollte hörbar booten und bei meinem CF Card Adapter veriet eine LED das die Karte bootet.

Erster Zugriff

Nach kurzer Zeit (ca. 20s) sollte die Box via Ping erreichbar sein. Der Rechner von dem aus die Box konfiguriert wird, muss sich natürlich im selben Subnetz wie die Box befinden, also im 192.168.1.0/24 Netz. Die Box selbst ist dann via:

  • http://192.168.1.1

erreichbar.
Die Login Standard Daten lauten:
Benutzer: root
Passwort: admin
Nun kann die Box nach belieben konfiguriert werden.

Festplatte voll ausnutzen

Will man die Volle Festplattengröße der Box ausnutzen um zum Beispiel Backups via Rsync darauf zulegen, muss die 3te Partition vergrößert werden. Leider ist das Image, welches man auf die Platte bzw. CF-Card einspielt, mit 4 primären Platte ausgestattet, bei denen nur die 1ste und die 3te Partition überhaupt ein lesbares Filesystem haben. Das Ziel ist es die 3te Partition zu vergrößern, da diese als /usr/local automatisch gemountet wird und somit ohne weiteres als Speicherplatz nutzbar ist.
Um die Festplatte zu vergrößern nutzt am besten eine Ubuntu Installation oder die Ubuntu Live CD. Hier sollte dann das kleine Tool gparted nachinstalliert werden. nun geht wie folgt vor:

  • Booten des Ubuntu Linux (geht auch in einer VM)
  • Anschließen der HDD oder CF-Card (in der VM dann durchreichen)
  • Backup der 4ten Partition im Terminal:
sudo dd if=/dev/sdb4 of=sdb4.image
  • Öffnen von GParted (System-->Systemverwaltung-->Gparted Festplattenpartitionierung)
  • Löschen der 4ten Partition (/dev/sdb4)
  • Vergrößern der 3ten Partition (es müssen mindestens 2MB frei bleiben für die 4te Partition)
  • Anlegen der 4ten Partition (hier kann der Rest verwendet werden, nicht formatieren auswählen)
  • Änderungen Anwenden (APPLY oder Alle Operationen ausführen)
  • Backup Image der 4ten Partition zurückspielen
sudo if=sdb4.image of=/dev/sdb4
  • Dann die Platte aushängen, in die Box einbauen und booten.
  • Nun sollte /usr/local vergrößert sein
df -h

Rsync für Backups einrichten

Will man auf den DD-WRT Router Backups von Dateien speichern, kann man dies mittels Rsync machen. Dies muss natürlich erst installiert werden. Ich habe einiges auprobiert und auch versucht direkt rsync zu mit dem ipkg online zu installieren, leider stürzte die Rsync Version ständig mit folgender Fehlermeldung ab:

rsync: line 1: syntax error: "(" unexpected

Hier meine Lösung:
Ich nutze die Pakete von

diese Funktionieren auf der Nokia Box. Als Vorbereitung hierfür muss folgender Befehl via HTTP Gui als Startup Befehl gespeichert und auch gleich ausgeführt werden:

mount -o bind /usr/local/ /jffs/

Nun via Telnet oder SSH auf die Box verbinden, einloggen und die Rsync Pakete herunterladen. Dann einfach mittels ipkg installieren. Folgende Fehler können hierbei ignoriert werden:

RROR: File not found: //usr/local/lib/ipkg/lists/whiterussian
       You probably want to run `ipkg update'
ERROR: File not found: //usr/local/lib/ipkg/lists/non-free
       You probably want to run `ipkg update'
ERROR: File not found: //usr/local/lib/ipkg/lists/backports
       You probably want to run `ipkg update'
cd /jffs
wget http://downloads.openwrt.org/backfire/10.03/x86/packages/librsync_0.9.7-
4_x86.ipk
wget http://downloads.openwrt.org/backfire/10.03/x86/packages/rsync_3.0.7-1_x
86.ipk
wget http://downloads.openwrt.org/backfire/10.03/x86/packages/libpopt_1.7-5_x
86.ipk
ipkg install rsync_3.0.7-1_x86.ipk
ipkg install libpopt_1.7-5_x86.ipk 
ipkg install librsync_0.9.7-4_x86.ipk

Nun sollte ein Aufruf von rsync --help eine Ausgabe aller Parameter ausgeben.

Was nun beim Rsync Befehl auf der Remoteseite beachtet werden muss, ist das die PATH und LIBRARY Variablen nicht gesetzt werden wenn man sich mittels Rsync verbinden will. Ergebnis ist, das man nach dem Einloggen den folgenden Fehler erhält:

rsync: can't load library 'libpopt.so.0'

um die /etc/profile Datei zu laden muss der Rsync Befehl durch den folgenden Parameter erweitert werden:

--rsync-path='source /etc/profile && rsync'

Beispiel:

rsync -avz --rsync-path='source /etc/profile && rsync' /a hostname:/b

Rsync als Daemon auf dem DD-WRT Router

Um Rsync als Daemon laufen zu lassen ist als erstes eine Konfigurationsdatei mit folgendem Inhalt nötig:
/usr/local/rsync/rsyncd.conf

[Backup]
comment = Backup Rsync
path = /usr/local/data
use chroot = yes
read only = no
write only = yes
list = yes
uid = root
gid = root
strict modes = yes
hosts allow = 192.168.1.10
ignore errors = no
ignore nonreadable = yes
transfer logging = no
timeout = 6000
refuse options = checksum dry-run
dont compress = *.jpg *.avi *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz

Nun kann man das ganze mit folgendem Befehl starten:

rsync --daemon --config=/usr/local/rsync/rsyncd.conf

Will man dies Bootresistent machen, einfach den Befehl in das Startupskript in der Webgui einfügen.

OpenVPN via DD-WRT

Hier die Anleitung für das OpenVPN:

Quellen