19185
Kommentar: zweiter spaziergang vollendet
|
19390
nur ein usb gerät
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 129: | Zeile 129: |
Jetzt ''reboot'' und viel Spaß mit dem frischen Debian. | Jetzt ''reboot'' und viel Spaß mit dem frischen Debian. Das NSLU2 bootet offensichtlich nur mit einem angestöpselten USB-Gerät (also das mit dem Debiansystem), ansonsten wird durch einige Pieptöne signalisert, dass nur vom internen Flashimage gebootet wird. |
attachment:debian-baby.png
Hier wird die Debian Installation für ein Linksys NLSU2 beschrieben. Dazu findet sich schon reichlich Doku (siehe [#quellen Quellen]), dies ist eher eine kurze deutschsprachige Schritt für Schritt Anleitung. Wenn du schnell und unkompliziert ein Debian GNU/Linux auf dem NSLU2 installieren willst, kannst du den ersten Teil überspringen und gleich beim [#debianinstaller Debian Installer Spaziergang] weiterlesen. Ansonsten fängste mit der etwas [#langewanderung längeren Wanderung] an, 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. Der kurze [#debianinstaller Debian Installer Spaziergang] führt also momentan nicht an das gewünschte Ziel. Deswegen ist es günstiger die DebianSlug Firmware zu installieren und das Debian System via bootstrap auf das NSLU zu installieren. Dieser Weg wird im [#debianslug DebianSlug Spaziergang] beschrieben.
der Debian Installer Spaziergang, für die kurze Mittagspause
Ziel: Ein fertiges Debian Image auf dem NSLU2 und eine Standard Debian Installation auf einer externe Festplatte/USB-Stick.
Mit dem neuen Debian Installer (DebianSlug) sparst du dir eine Menge Friemelarbeit. Du flashst einfach ein passendes Image in das NSLU2, bootest und der Debian Installer lässt sich wie gewohnt per ssh steuern. (Die Alternative wäre das !SlugOS Image, für das du aber eine Debianinstallation per Hand "debootsstrappen" musst. Das ist gut dokumentiert, siehe Quellen/Links. Schneller und unkomplizierter ist aber die Debian Installer Variante, die im folgenden beschrieben wird.)
Zum flashen kannst du das Debian Paket upslug2 benutzen.
apt-get install upslug2
Die Closed Source Netzwerktreiber von Intel bereiten hier Probleme, weswegen das [http://ftp.de.debian.org/debian/dists/testing/main/installer-arm/current/images/ Standard Installer Image] dir nur hilft, wenn du das NSLU2 über einen USB Adpater ans Netzwerk angeschlossen hast. Willst du den intergrieten Netzwerkanschluß nutzen, musst du auf die [http://www.slug-firmware.net/ inoffiziellen Images] zurück greifen, die Intels proprietären Netzwerktreiber enthalten. Eine ausführlichere Anleitung (engl.), an die ich mich gehalten habe, kommt von [http://www.cyrius.com/debian/nslu2/ Martin Michlmayr].
Die Zipdatei (DebianSlug) von [http://www.slug-firmware.net/ www.slug-firmware.net] enthält zwei Images. Eins für die Installationsroutine und eins für den eigentlichen Betrieb des NSLU. Erstere Datei di-nslu2.bin wird jetzt gleich gebraucht.
upslug2 -i di-nslu2.bin
- Bevor du das Kommando startest, muss das NSLU2 in den Upgrade Modus gebracht werden. Das geht so:
- das Slug ausschalten
- alle USB Geräte entfernen, nur die Netzwerkverbindung dran lassen
- Resetknopf gedrückt halten (mit einem spitzen Gegenstand)
- den Powerknopf drücken und wieder loslassen (dabei den Resetknopf gedrückt halten)
- ca. 10Sek. warten, bis die Ready/Status LED von orange zu rot wechselt und den Resetknopf loslassen
- Jetzt sollte die Ready/Status LED rot-grün blinken, das Slug ist im Upgrade Modus.
- Evtl. wird für upslug2 wird noch "-t MAC_Adresse" gebraucht, wenn du mehrere NSLU2 inerhalb eines Netzwerkes gleichzeitig im Upgrade Modus hast.
Wenn das Image korrekt geflasht wurde, bootet das NSLU2 erneut. In dem Moment kannst du die USB-Festplatte oder einen Stick anstöpseln und die Debian Installationsroutine auf dem NSLU2 beginnt. (Falls du die Installation zu einem anderen Zeitpunkt starten möchtest, kannst du das NSLU2 einfach vom Stromnetz trennen und später zusammen mit dem USB-Medium erneut starten.) Die IP-Adresse deines NSLU2 ist entweder, deine zuvor vergebene (bei einer anderen Installation) oder wenn du das nicht getan hast eine per DHCP bezogene und ansonsten die Standardadresse 192.168.1.77. Jetzt hangelst du dich via ssh durch die gewohnte Debian Installationsroutine.
ssh installer@192.168.1.77
- ssh:
Loginname: installer
Passwort: install
- Es dauert ca. 10 Minuten, bis das NSLU2 nach dem ersten Neustart mit dem Debian Installer Image wieder per ssh erreichbar ist. (Die ssh Key Generierung ist ein wenig antsrengend für den kleinen Prozessor.)
Das Debian Installer Image startet automatisch /sbin/debian-installer-startup und /sbin/debian-installer.
- Die Installation _muss_ auf /dev/sda1 (also die erste Partition auf dem USB-Medium) platziert werden. Das ist wichtig, da das zweite Image, welches wir später raufflashen, /dev/sda1 als Systempartition erwartet und anderfalls nicht korrekt bootet.
- Die Installation dauert bei einer schnellen Internetverbindung knapp zwei Stunden.
- Am Ende der Installation wird noch kein korrektes initramfs ins Flash geschrieben. (Stattdessen erscheint ein Warnhinweis, dass kein Bootloader installiert wurde). Das erledigen wir im nächsten Schritt. Du kannst nun das NSLU2 ausschalten und es wieder in den Flashmodus bringen (ohne USB Festplatte).
Dann kommt das zweite Image aus der Zipdatei: debian-sda1.bin drauf.
upslug2 -i debian-sda1.bin
- Wenn der Flashvorgang fertig ist und die Kiste neu startet kannst du die USB Platte wieder anstecken und schon bootet das neue System davon. Bis das NSLU2 wieder per ssh erreichbar ist können wieder einige Minuten vergehen. Jedenfalls sollten nach einiger Zeit Zugriffe auf die Platte stattfinden.
Abschließend kannst du noch alle Debian Pakete aktualisieren und die [http://www.kitenet.net/~joey/code/nslu2-utils.html NSLU2-utils] installieren:
apt-get update apt-get dist-upgrade apt-get install nslu2-utils
So, jetzt hast du mit wenigen Handgriffen ein Debian (little-endian, arm) auf die externe Platte des NSLU2 installiert. Einfacher geht's wohl kaum. Viel Spaß mit dem Gerät.
der DebianSlug Spaziergang für die längere Siesta
Ziel: ein DebianSlug Image auf dem NSLU2 und ein installiertes Debian System auf einer externen Festplatte
Dies ist die deutsche Kurzfassung der engl. [http://www.nslu2-linux.org/wiki/DebianSlug/Bootstrap DebianSlug Bootstrap] Anleitung
[http://www.slug-firmware.net/s-dls.php DebianSlug Firmware] runterladen
- Image flashen
upslug2 -i debianslug-3.10-beta.bin
- NSLU2 reboot; also "root" mit Passwort "opeNSLUg" anmelden
- externe Platte/SD-Karte anstöpseln
- mit "fdisk" die externe Platte partitionieren (swap nicht vergessen!)
- Dateisystem einrichten
mkfs.ext3 /dev/sda1 # ext3 is a safe choice mkswap /dev/sda2 sync; sync; sync swapon /dev/sda2
- Partition mounten und in das Verzeichnis wechseln
Netzwerk einrichten (insbesondere Gateway & Nameserver, sofern nicht per DHCP geschehen)
- debootstrap Image von einem Debian Mirror holen und entpacken; debootstrap Verzeichnis angeben
wget http://ftp.nl.debian.org/debian/pool/main/d/debootstrap/debootstrap-udeb_0.3.3_arm.udeb ar -x debootstrap-udeb_0.3.3_arm.udeb tar xzvf data.tar.gz export DEBOOTSTRAP_DIR=`pwd`/usr/lib/debootstrap
- debootstrap mit deinem Lieblingsdebianmirror starten; Dieser Vorgang wird über eine Stunde und einige hundert MB Debianpakete aus dem Internet herunterladen. Wirklich Erfolgreich war der Vorgang nur, wenn anschließend "Base system installed successfully." in der letzten Zeile der Ausgabe steht. Fehlermeldungen landen in .../debootstrap/debootstrap.log
./usr/sbin/debootstrap --arch arm sid /mnt/debinst http://ftp.nl.debian.org/debian
- einige Konfigdateien kopieren (bei Verwendung von dhcp nicht unbedingt notwendig)
cp /etc/resolv.conf etc/resolv.conf cp /etc/hosts etc/hosts cp /etc/hostname etc/hostname cp /etc/network/interfaces etc/network/interfaces
- Kernelmodule kopieren
cp -a /lib/modules/* lib/modules
- proc Dateisystem mounten
mount -t proc proc /mnt/debinst
- die /etc/fstab im neuen Debiansystem erstellen (also in /mnt/debinst/etc/fstab)
proc /proc proc defaults 0 0 /dev/sda1 / ext3 defaults 1 1 /dev/sda2 swap swap defaults 0 0
- das Netzwerkmodul beim booten explizit laden lassen
echo "ixp400_eth dev_max_count=1" >> /mnt/debinst/etc/modules
Jetzt hast du ein halbwegs brauchbares Minimal Debian auf deiner externen Platte/SD-Karte. Du kannst es mit "chroot" testen und darin weitere Pakete installieren. Wichtig ist das Paket: openssh-server. Anschließend kannst du das NSLU2 darauf vorbereiten, dass es demnächst von dem externen Medium bootet. Dazu alles von dem Medium umounten (proc nicht vergessen). Damit beim nächsten mount kein Dateisystemcheck abläuft hilft folgendes:
/sbin/tune2fs -c 0 -i 0 /dev/sda1
- mit dem Befehl sagst du dem NSLU2, dass demnächst von sda1 gebootet werden soll:
turnup disk /dev/sda1 -t ext3
Jetzt reboot und viel Spaß mit dem frischen Debian. Das NSLU2 bootet offensichtlich nur mit einem angestöpselten USB-Gerät (also das mit dem Debiansystem), ansonsten wird durch einige Pieptöne signalisert, dass nur vom internen Flashimage gebootet wird.
die tatenreiche Wanderung mit ihren Sehenswürdikeiten
Ziel: Ein selbstgebautes Bootimage auf dem NSLU2 und eine vollwertige DebianSlug Installation auf einer externen Platte.
Dies ist eine Kurzfassung der [http://www.nslu2-linux.org/wiki/Development/MasterMakefile Originalanleitung], um aus dem Master Makefile einen Debian Linuxkernel für das NSLU2 zu bauen und anschließend zu flashen. Betrachte diesen Vorgang als Hardcore Möglichkeit, der dir sämtliche Möglichkeiten im Umgang mit den Quellen offen hält. Als Buildsystem kommt hier ebenfalls ein Debian GNU/Linux zum Einsatz, prinzipiell sollte aber jede Linux Distro funktionieren, sowie einige BSDs.
die DebianSlug Entwicklungsumgebung einrichten
aus Etch (also momentan testing) monotone >= 0.24 installieren
- monotone ist ein distributed version control system
Alle anderen notwendigen Tools der Entwicklungsumgebung werden später mit make setup-host-debian installiert.
Ich hab mir für die folgenden Schritte einen neuen Benutzer slug angelegt.
- Abschließend alle notwendigen Compilern/Bibliotheken in deinem System einrichten. Dazu werden ein paar größere Pakete aus dem Internet heruntergeladen.
su apt-get install monotone su slug mkdir -p ~/slug cd ~/slug wget --cache=off http://www.nslu2-linux.org/Makefile su make setup-host-debian
den Slug Kernel bauen
make update make debianslug-image
In diesem Fall ist debianslug-image das buildtarget, andere Ziele stehen im Makefile (falls du einen anderen Slug Kernel bauen lassen möchtest)
- Dies auf keinen Fall als root tun!
- Eine Internetverbindung wird beim make benötigt, da Quellen nachgeladen werden.
- Jetzt ist eine gute Gelegenheit, etwas sinnvolles zu tun - jonglieren z.B..
Ich hatte zwischendurch Probleme beim make debianslug-image. Zu der Zeit wurde gerade aktiv am Repository geschrieben. Wenn du mysteriöses Verhalten beim make feststellst, zöger nicht, die EntwicklerInnen per irc zu kontaktieren.
In einer FOSS freundlicheren Welt, würdest du den nächsten Schritt überspringen können - kannste aber nicht
Intels IXP400 Software holen
Irgendwann wird diese Meldung auftauchen: "NOTE: fetch http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400AccessLibrary-2_1.zip"
- Ein einfaches wget wäre schön, Intel verlangt aber vorher eine Registrierung.
- Lies dir ~/slug/debianslug/openembedded/packages/ixp4xx/ixp-osal-2.1-r3.bb durch.
- Letztlich steht da, dass du zwei Dateien runterladen und zusammen mit deren md5 Summen in ~/slug/downloads kopieren musst.
- IPL_ixp400AccessLibrary-2_1.zip IPL_ixp400AccessLibrary-2_1.zip.md5
- IPL_ixp400NpeLibrary-2_1.zip IPL_ixp400NpeLibrary-2_1.zip.md5
den Kernel mit ''upslug'' auf's NSLU2 hochladen (Upgrade-Modus)
Wenn du bisher alle Anweisungen erfolgreich ausführen konntest. Dann wurde der neue Kernel für das NSLU2 gebaut und den kannst du jetzt hochladen.
- Nach dem Build liegt der Kernel hier:
~/slug/debianslug/tmp/deploy/images/debianslug-nslu2-<date>.flashdisk.img
Mit upslug2 kannst du auf ein jungfräuliches NSLU2 den Linuxkernel flashen.
Das Programm liegt nach dem make hier: ~/slug/debianslug/tmp/staging/uname -m-linux/bin/upslug2
Alternativ kannst du das Debianpaket upslug2 per apt-get installieren.
- Upslug2 braucht Rootrechte.
- Das NSLU2 sollte direkt mit deinem Rechner verbunden sein (keine Router oder so dazwischen).
- Zur Installation muss das NSLU2 in den Upgrade Modus gebracht werden:
- Slug ausschalten
- Resetknopf gedrückt halten
- Den Powerknopf drücken und wieder loslassen (dabei den Resetknopf gedrückt halten)
- ca. 10Sek. warten, bis die Ready/Status LED von orange zu rot wechselt und den Resetknopf loslassen
- Jetzt sollte die Ready/Status LED rot-grün blinken, das Slug ist im Upgrade Modus.
- Du brauchst die MAC-Adresse des Slug, die ist auf der Geräteunterseite aufgeklebt
ansonsten ist arp dein Freund (default IP ist 192.168.1.77 außer du hast einen DHCP-Server im Netz)
- jetzt endlich flashen:
upslug2 --target=MAC --image=~/slug/debianslug/tmp/deploy/images/debianslug-nslu2-<date>.flashdisk.img --rootfs=~/slug/debianslug/tmp/deploy/images/debianslug-nslu2-<date>.rootfs.jffs2
Wenn du bereits ein OpenSlug System auf dem NSLU2 laufen hast, kannst du jetzt den neuen Kernel installieren
reflash -i ~/slug/debianslug/tmp/deploy/images/debianslug-nslu2-<date>.flashdisk.img
das neue System booten
Wenn du das neue Kernelimage + Root Dateisystem im Flashspeicher installiert hast, kannst du das NSLU2 booten und Debian installieren. (Was bedeuten die [http://www.nslu2-linux.org/wiki/OpenSlug/OpenSlugLEDsDuringBoot blinkenden LEDs] beim booten?) Nach ca. einer Minute kannst du dich per ssh anmelden, das default root Passwort ist opeNSLUg. Du kannst den Hostname,IP usw. per Hand anpassen oder das turnup Script benutzen.
turnup init reboot
Debian bootstrappen
Jetzt fängt die eigentliche Debian Installation erst an. Nach dem Neustart kannst du die externe Platte anschließen. Auf der wird jetzt das Debiansystem installiert.
Dieser Teil ist schon ganz gut dokumentiert. Lies evtl. die vollständige [http://www.nslu2-linux.org/wiki/DebianSlug/Bootstrap DebianSlug Bootstrap Beschreibung (engl.)] oder die [http://wiki.nslu2-info.de/pmwiki.php/HowTo/DebianSlugBootstrap deutsche Übersetzung] davon.
fdisk /dev/sda mkfs.ext3 /dev/sda1 mkdir /mnt/debian mount /dev/sda1 /mnt/debian mkswap /dev/sda2 swapon /dev/sda2 mkdir /mnt/debian/bootstrap cd /mnt/debian/bootstrap wget http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap-udeb_0.3.3_arm.udeb ar -x debootstrap-udeb_0.3.3_arm.udeb zcat data.tar.gz | tar xv export DEBOOTSTRAP_DIR=/mnt/debian/bootstrap/usr/lib/debootstrap ./usr/sbin/debootstrap --arch arm sid /mnt/debian http://ftp.debian.org/ ... turnup disk /dev/sda1 -t ext3
- Vor dem turnup müssen noch ein paar Dateien kopiert werden. Das ist zeitaufwendige Bastelarbeit, die in den obigen Links beschrieben wird. Ich kann dir nur empfehlen, den Debian Installer (also Variante 2) zu benutzen. Der ist zwar noch blutjung, macht aber schon einen stabilen Eindruck.
Notes
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.
- Wann immer ein Buildvorgang seltsam abbricht säubere die Verzeichnisse, mach ein update und versuch's nochmal - das kann dir eine Menge wirrer Fehler ersparen.
schau ins http://ibot.rikers.org/%23nslu2-linux/ IRC Archiv - dort findest du haufenweise undokumentiertes Metawissen & Neuigkeiten
Hier ein paar praktische Geschwindigkeitswerte: SlugPerformance
Übertakten
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.
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. Bebilderte Anleitungen dazu liefert dir jede Suchmaschine.
Dank
..geht an alle EntwicklerInnen bei nslu2-linux.org für die gut dokumentierte Arbeit am NSLU2 und die schnelle Hilfe
und an das Debianteam & Martin Michlmayr für die geile Distro und den passenden Installer zur ARM Architektur. DebianWorldDomination
Quellen/Links
[http://www.nslu2-linux.org/wiki/DebianSlug/HomePage Debian Slug Homepage]
http://www.instant-thinking.de/articles/2006/01/28/debian-auf-der-nslu2
[http://www.cyrius.com/debian/nslu2/ official Debian Installer]
[http://www.nslu2-linux.org/wiki/Main/MailingLists NSLU2 Mailinglisten]
[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.slug-firmware.net Slug Firmware]
Diskussion
Bei Fragen bitte nicht "trivial changes" aktivieren, sonst könnte die Antwort etwas auf sich warten lassen.
- Swapdatei
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.