Unterschiede zwischen den Revisionen 21 und 22
Revision 21 vom 2006-05-05 21:50:18
Größe: 10699
Autor: anonym
Kommentar:
Revision 22 vom 2006-05-05 22:56:56
Größe: 10782
Autor: anonym
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 122: Zeile 122:
 * Das Debian Installer Image startet automatisch /sbin/debian-installer-startup.

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 längeren Wanderung an, bei der du jedes auf dem Weg liegende Stückchen Quellcode einzeln bestaunen kannst. TableOfContents

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.

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.

Anchor(debianinstaller)

der kurze Debian Installer Spaziergang, für die 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 sparst du dir eine Menge Friemelarbeit. Du flashst einfach ein passendes Image in das NSLU2, bootest und der Installer läuft automatisch ab. Dazu kannst du das Debian upslug2 Paket benutzen. Aber auch hier bereiten die Closed Source Netzwerktreiber von Intel wieder 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. Ansonsten musst du auf die [http://www.slug-firmware.net/ inoffiziellen Images] zurück greifen, die Intels Netzwerktreiber enthalten. Eine ausführliche Anleitung (engl.) kommt von [http://www.cyrius.com/debian/nslu2/ Martin Michlmayr]. Die Zipdatei enthält zwei Images. di-nslu2.bin wird jetzt gleich gebraucht.

apt-get install upslug2
upslug2 -i di-nslu2.bin
  • Für upslug2 wird noch "-t MAC_Adresse" gebraucht, wenn du mehrere NSLU2 inerhalb eines Netzwerkes gleichzeitig im Upgrade Modus hast.
  • Beim flashen sollte keine USB-Geräte angeschlossen sein (TODO: warum?)

Wenn das Image korrekt geflasht wurde, bootet das NSLU2. In dem Moment kannst du die USB-Festplatte oder einen Stick anstöpseln und die Installationsroutine beginnt. Anschließend hangelst du dich per ssh durch die gewohnte Installationsroutine. :) Der Loginname ist installer und das Passwort install. Die IP-Adresse deines NSLU2 ist entweder, deine zuvor vergebene oder wenn du das nicht getan hast eine per DHCP bezogene und ansonsten die Standardadresse 192.168.1.77.

  • 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.
  • Evtl. musst du vorm flashen noch das RedBoot aufräumen:

fis erase -f 0x50040000 -l 0x20000
  • Das Debian Installer Image startet automatisch /sbin/debian-installer-startup.
  • 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). Du schaltest also das NSLU2 an und bringst es wieder in den Flashmodus (mit angestöpselter Festplatte).
  • Dann kommt das zweite Image: debian-sda1.bin drauf.

upslug2 --target=MAC -i debian-sda1.bin
  • Die Kiste bootet anschließend automatisch von der angesteckten Platte.

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

Anchor(quellen)

Quellen

DebianSlug (zuletzt geändert am 2012-06-13 21:26:19 durch anonym)


Creative Commons Lizenzvertrag
This page is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.