attachment:debian-baby.png
Hier wird die Debian Installation für ein Linksys NSLU2 (Network Storage Link USB 2.0) beschrieben. Dazu findet sich schon reichlich Doku (siehe [#quellen Quellen]). Insbesondere gibt es ein deutschsprachiges [http://nslu2-info.de/ Forum & Wiki (nslu2-info.d1. Dies sind eher kurze Schritt für Schritt Anleitungen, die evtl. bald in das nslu2-info.de Wiki übertragen werden.
[wiki:DebianSlug/DebianSlug DebianSlug]
[wiki:DebianSlug/LongTrail DebianSlug via Quellcode]
Wenn du schnell und unkompliziert ein Debian GNU/Linux auf dem NSLU2 installieren willst, kannst du beim [wiki:DebianSlug/DebianInstaller DebianInstaller Spaziergang] (vor dem Frühstück) weiterlesen oder du wählst den etwas umfangreicheren [wiki:DebianSlug/DebianSlug DebianSlug Spaziergang] (für die ausgedehnte Siesta). Alternativ kannst du dich auch auf die [wiki:DebianSlug/LongTrail lange DebianSlug Wanderung] begeben, bei der du jedes auf dem Weg liegende Stückchen Quellcode einzeln bestaunen kannst.
Martin Michlmayr erwähnt in seinem [http://www.cyrius.com/debian/nslu2 Blog], dass die aktuelle Version (beta3) des Debian Installers nicht mit dem internen Netzwerkchip von Intel zusammen arbeitet. Deswegen führt der kurze Debian Installer Spaziergang momentan nicht an das gewünschte Ziel. Günstiger ist es, die DebianSlug Firmware zu installieren und das Debian System via bootstrap auf das NSLU2 zu installieren. Dieser Weg wird im [wiki:DebianSlug/DebianSlug DebianSlug Spaziergang] beschrieben.
Hier halte ich noch einige Punkte fest, die mir im Zusammenhang mit dem NSLU2 erwähnenswert erscheinen: TableOfContents
Upgrade Modus (flashen)
Damit du dem NSLU2 ein neues Image aufdrücken kannst, musst du es zunächst in den Upgrade Modus bringen. Das geht so:
- das Slug ausschalten
mit dem Netzwerk verbinden (ohne ist das NSLU2 praktisch nutzlos )
- alle USB Geräte entfernen!
- Resetknopf drücken und gedrückt halten (mit einem spitzen Gegenstand)
- Powerknopf drücken und wieder loslassen (dabei den Resetknopf immernoch gedrückt halten)
- ca. 10Sek. warten, bis die Ready/Status LED ihre Farbe von orange zu rot wechselt, dann den Resetknopf loslassen
- Ready/Status LED sollte jetzt rot-grün blinken, das Slug ist im Upgrade Modus.
mit upslug2 das neue Image flashen
weitere Hinweise:
- Upslug2 braucht Rootrechte!
- Das NSLU2 sollte direkt mit deinem Rechner verbunden sein (keine Router oder so dazwischen).
- Hat dein Rechner mehrere Netzwerkkarten, dann starte upslug2 mit: "-d NETDEVICE", wobei NETDEVICE durch dein Netzwerkinterface ersetzt wird (z.B eth1).
Wenn du mehrere NSLU2 inerhalb eines Netzwerkes gleichzeitig im Upgrade Modus hast, dann starte upslug2 mit dem Parameter "-t MAC". Für MAC setzt du die Macdresse des gewünschten NSLU2 ein. Falls du diese nicht mittels arp herausfinden kannst, steht sie auch auf dem NSLU2 Gehäuse.
Übertakten
http://www.roh.de/openslug/OpenSlug-1-266MHz.png
Der [http://www.intel.com/design/network/products/npfamily/ixp420.htm Prozessor] des NSLU2 wird durch eine undokumentierte Schaltung runtergetaktet. Offiziell ist er von Intel für den Betrieb mit 266MHz vorgesehen und getestet. Warum Linksys die Taktrate halbiert hat ist ungewiss. Durch entfernen eines Widerstands lässt sich die Originalfrequenz wieder herstellen. Dabei erlischt allerdings die Garantie. Andere Nachteile entstehen dadurch jedoch nicht. Wie gesagt, wird der Prozessor als 266MHz Chip ausgeliefert. Evtl. entspricht die Stromversorgung für den USB-Port durch die höhere Leistungsaufnahme nicht mehr den Spezifikationen.
Update: Offensichtlich liefert Linksys seit Mai 02006 das NSLU2 mit einem Prozessortakt von 266MHz aus.
Das Gehäuse ist nicht verschraubt. Mit etwas Druck an den vorderen Seiten lässt es sich mühelos öffnen. Anschließend kann der kleine smd Widerstnad rausgelötet oder einfach mit einem spitzen Gegenstand rausgebrochen werden. [http://www.nslu2-linux.org/wiki/HowTo/OverClockTheSlug Bebilderte Anleitungen] dazu liefert dir jede Suchmaschine.
http://www.nslu2-linux.org/wiki/uploads/r83_location.jpg
cryptsetup (dm-crypt) on NSLU2
Die aktuelle cryptsetup Version (1.0.4) aus dem Debian Archiv läuft nicht auf dem NSLU2. Dazu muss das Paket gepatcht werden. Das kannst du mit ein wenig Geduld direkt auf dem NSLU2 erledigen. Zuerst solltest du einen Eintrag in /etc/apt/sources.list in eine neue Zeile kopieren und dann änderst du deb in deb-src (z.B.: deb-src http://ftp2.de.debian.org/debian/ stable main).
apt-get update apt-get source cryptsetup sudo apt-get build-dep cryptsetup sudo apt-get install automake1.9 autoconf cd cryptsetup-1.0.4 patch -p1 < /PATH/TO/cryptsetup.patch dpkg-buildpackage -rfakeroot -aarm dpkg -i ../cryptsetup_1.0.4-3_arm.deb
Der erste Befehl aktualisiert die Paketliste, danach werden der Quellcode von cryptsetup herunter geladen. Der dritte & vierte Befehl benötigt Rootrechte (sudo) und bereitet die Entwicklungsumgebung vor. Anschließend wechselst du in das cryptsetup Verzeichnis und spielst den Patch ein. Mit der vorletzten Befehlszeile wird nun das cryptsetup Paket gebaut. Das dauert 23 Minuten ;). Anschließend wird es mit dpkg installiert.
Es gab einen [[http://thread.gmane.org/gmane.linux.debian.devel.kernel/25028/focus=25187 Fehler in cryptsetup], der jetzt behoben wurde allerdings hat der Linux Kernel auf der arm Architektur mit dm-crypt immernoch seine [http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=406552 Probleme] unter Last. Deswegen solltest du vorerst kein dm-crypt zum Verschlüsseln von Partitionen benutzen. Ich werde hier den aktuellen Stand beschreiben, sobald ein Patch in Sicht ist.
aktuellen Debian Kernel installieren
- Zuerst steht wieder die lästige Vorbereitung an, damit die Intel Netzwerktreiber genutzt werden können (diese Schritte entfallen, wenn du eine USB Netzwerkkarte benutzt). Du kannst alles direkt auf dem Slug ausführen.
Lade das aktuelle [http://www.slug-firmware.net/d-dls.php Debian Installer image] herunter.
Jetzt packen wir den Netzwerkkarten Microcode aus, der im image liegt und bringen ihn in das richtige endian Format:
apt-get install slugimage slugimage -u -i di-nslu2.bin apt-get install devio devio '<< ramdisk.gz; xp $ 4' > ramdisk-swap.gz mkdir initrd; cd initrd zcat ../ramdisk-swap.gz | cpio -i cp NPE-B.01000201 /lib/firmware/ cd /lib/firmware sudo ln -s NPE-B.01000201 NPE-B
in /etc/kernel-img.conf folgendes schreiben (siehe [http://tech.groups.yahoo.com/group/nslu2-linux/message/15925 auch]):
do_symlinks = yes relative_links = yes do_bootloader = no do_bootfloppy = no do_initrd = yes link_in_boot = yes postinst_hook = flash-kernel
jetzt die notwendigen Pakete installieren bzw. aktualisieren (aus testing oder unstable):
apt-get update apt-get install flash-kernel apex-nslu2 nslu2-utils apt-get install linux-image-2.6-ixp4xx
Zum Schluß kommt eine Fehlermeldung Flashing kernel: devio: stdout: write error: No space left on device. Das ist okay, wir flashen jetzt im gleich.
Jetzt das neue [http://cyrius.com/debian/nslu2/files/sda1-2.6.18-3.bin Flash-Image] herunterladen (nicht auf's NSLU2)
das NSLU2 in den Upgrade Modus bringen und von einem anderen Rechner aus flashen:
upslug2 -i sda1-2.6.18-3.bin
debian-etch-rc1-20061102 lädt die Module nicht automatisch also:
if [ ! -e /dev/ixp4xx_ucode ]; then mknod /dev/ixp4xx_ucode c 10 184 fi for f in ixp4xx_mac ixp4xx_qmgr ixp4xx_npe; do modprobe $f;done cat /lib/firmware/NPE-B > /dev/ixp4xx_ucode ifup eth0
Nach erfolgreichem Reboot kann das alte Kernelpaket gelöscht werden:
apt-get remove linux-image-2.6-nslu2
die [http://www.cyrius.com/debian/nslu2/upgrade.html Originalanleitung] (engl.)
Dank
..geht an alle EntwicklerInnen bei nslu2-linux.org für die gut dokumentierte Arbeit am NSLU2 und die schnelle Hilfe
an das Debianteam für die geile Distro - DebianWorldDomination
- und Martin Michlmayr für den passenden Installer zur ARM Architektur
Quellen/Links
[http://www.nslu2-linux.org/wiki/DebianSlug/HomePage Debian Slug Homepage (engl.)]
[http://www.nslu2-info.de Streaming & Storage Community (deutschsprachig)]
[http://instant-thinking.de/articles/2006/04/18/debian-auf-der-nslu2-revisited DebianInstaller Kurzanleitung]
[http://wiki.nslu2-info.de/pmwiki.php/HowTo/DebianSlugBootstrap DebianSlugBootstrap]
[http://peter.korsgaard.com/articles/debian-nslu2.php alte. ausführliche Debian Install Anleitung]
[http://www.nslu2-linux.org/wiki/Main/MailingLists NSLU2 Mailinglisten]
[http://ibot.rikers.org/%23nslu2-linux/ NSLU2 Entwickler IRC Archiv]] - dort findest du haufenweise undokumentiertes Metawissen & Neuigkeiten
[http://www.rwhitby.net/nslu2/serial.html NSLU2 Gehäuse öffnen (engl.)]
[http://w.ods.org/nslu2/photos/ noch mehr Hacks (engl.)]
[https://rnvs.informatik.tu-chemnitz.de/twiki/bin/view/Main/NetworkAttachedStorage großer NAS Überblick]
[http://www.cyrius.com/debian/nslu2/ official Debian Installer]
[http://www.slug-firmware.net Slug Firmware - da führt kein Weg dran vorbei 1
FAQ
Bei Fragen bitte nicht "trivial changes" aktivieren, sonst könnte die Antwort etwas auf sich warten lassen.
- little oder big endian?
Antwort: Der Prozessor des NSLU2 kann sowohl in big als auch in little endian arbeiten. DebianSlug ist die little endian Portierung für die ARM Architektur, OpenDebianSlug ist der big endian ARM Port. Die offizielle Debian Paketverwaltung unterstützt nur die little endian ARMs.
dd if=/dev/zero of=/media/hdd/swap bs=1024 count=8192 mkswap /media/hdd/swap chmod 600 /media/hdd/swap swapon -a -v /media/hdd/swap Fehlermeldung :-( ---> swapon: /media/hdd/swap: Invalid argument
Hintergrund: Festplatte ist leider ohne SWAP Partitioniert, doch theoretisch dürfte das auch gehen.
- Antwort: Die von dir beschriebenen Schritte sehen korrekt aus. Wenn du eine Partition (z.B. /dev/hdd1) nach /media/hdd gemountet hast und diese ein Dateisystem besitzt, dürfte deine Variante funktionieren. Sollte es eine Ramdisk oder tmpfs oder so sein, musst du darin erst ein Dateisystem erstellen.