instant-thinking.de

just enough to get you started and leave you confused

Debian auf der NSLU2

| Kommentare

Debian-Baby

Update, 18.04.2006:
Diese Anleitung ist (abgesehen von der UpSlug2 Installation unter Mac OS X) überholt und unnötig kompliziert. Wer Debian auf seiner NSLU2 installieren möchte liest besser: Debian auf der NSLU2 - revisited. Alles weiter steht hier nur noch aus nostalgischen Gründen… :)

Die NSLU2 ist ein kleines NAS-Gerät von Linksys das eigentlich nur dazu gedacht war, 2 USB-Platten an ein Netzwerk zu bringen. Dank einem OpenSource Ansatz seitens Linksys kann man aber auch eigene Firmware installieren, Webcams betreiben oder auch einen Router bauen. Zentraler Anlaufpunkt für alle (auch Hardware) Hacks ist NSLU2-Linux.org.

Nach langer Zeit mit der Unslung Firmware dachte ich, das es mal an der Zeit wäre ein Debian auf die NSLU2 zu bekommen. Darin fühle ich mich am meisten “zuhause”.

Ich habe mich für den inoffiziellen Debian Ableger Debonaras (Debian On Nas And Routers And Stuff) entschieden. Der einzige Nachteil ist, das Debonaras Big Endian ist und die offiziellen Debian-Repositorys alle in Little Endian sind. Der Unterschied ist im Groben das diese beiden die Wertigkeiten der Bits genau entgegen gesetzt zählen. Für eine weiterführende Erklärung empfehle ich die Lektüre des Wikipedia Eintrags Byte-Reihenfolge. Aber es gibt trotzdem massig deb-Pakete…

Das ganze Unternehmen ist nicht so ganz ohne, man sollte schon mal eine Shell gesehen haben. Auf der anderen Seite ist es auch nicht soo schwierig, es dauert halt etwas und vieles muss von Hand geschehen…

Also auf gehts:

UpSlug installieren

Als Gerüst muss als erstes OpenSlug installiert werden.

  1. Das Binary Image von http://www.openslug.org runterladen (OpenSlug-2.7-beta).
  2. Um das Image auf die NSLU2 zu flashen braucht man UpSlug2. Unter Mac OS X besorgt man sich am besten upslug2-11-osx.tgz von der UpSlug2 SourceForge Seite.
  3. Die Mac OS X eigene libpcap unterstützt leider nicht alle nötigen Funktionen. Dank den DarwinPorts ist aber schnell eine aktuelle installiert: sudo port install libpcap
  4. upslug2 irgendwo in den $PATH kopieren (z.B. /usr/local/bin)
  5. DIe NSLU2 in den Upgrade Modus bringen:

    NSLU2 abschalten
    Eventuell vorhandene Platten abstöpseln
    Reset-Button drücken und halten (Büroklammer durch das kleine Loch an der Rückseite)
    Power-Button drücken und loslassen
    Status LED beobachten
    Nach ca. 10 Sekunden wechselt das orange auf rot. Dann sofort den Reset-Button loslassen
    Die LED wechselt jetzt zwischen rot und grün, die NSLU2 ist im Upgrade Modus

  6. Auf dem Mac root werden

  7. Weil eth0 die Default-Einstellung ist muss man unter Mac OS X mit upslug2 --device en0 die NSLU2 suchen
  8. Die NSLU2 updaten: upslug2 --device en0 --target=00:11:22:33:44:55 --image=/path/to/openslug-2.7-beta.bin MAC und Pfad bitte anpassen
  9. Zugucken und Daumen drücken

    Upgrading LKG123456 00:11:22:33:44:55
        . original flash contents  * packet timed out
        ! being erased             - erased
        u being upgraded           U upgraded
        v being verified           V verified
    
    
      Display:
        <status> <address completed>+<bytes transmitted but not completed>
      Status:
        * timeout occured          + sequence error detected
    
    
      2401ff+000000 ...UUUUUUUUUUUUUUUu------------------
    
    
    Rebooting... done
    
  10. Nach dem Reboot sollte sich folgendes Farbenspiel in eben dieser Reihenfolge auf der LED zeigen:

    Orange: RedBoot Boot Loader
    Rot: Ein Piep und dann kommt mehr Kernel in den Speicher (unter anderem der LED-Treiber)
    Orange blinkend: User Space Boot
    Orange/Grün wechselnd: Abschliessender User Space Boot
    Grün: Boot ist fertig, Login ist möglich

OpenSlug initialisieren

  1. An der NSLU2 per ssh anmelden. User: “root” PW: “opeNSLUg”
  2. nach dem Login turnup init ausführen. Dieser Befehl erlaubt die Netzwerkkonfiguration und das setzen eines neuen Passworts für root. Danach mit reboot neu starten und wieder einloggen
  3. Jetzt eine Festplatte anschliessen auf der nichts wichtiges drauf ist! Die Platte wird komplett gelöscht!
  4. fdisk /dev/sda
  5. mit p nachsehen ob auf der Platte noch Partitionen vorhanden sind. Falls ja können die mit d gelöscht werden (es war ja nichts wichtiges auf der Platte, nicht wahr?)
  6. mit n können jetzt neue Partititonen angelegt werden als erstes eine root Partition mit z.B. 3GB. Dafür gibt man als Endzylinder die gewünschte Größe in MB an (hier also +3000MB). Als nächstes eine Swap Partition mit 768MB. Den restlichen Platz habe ich für eine große Partititon benutzt.

  7. Der Typ der zweiten Partition muss jetzt noch mit dem t Befehl auf Linux Swap (hex code 82) geändert werden

  8. Jetzt noch mal mit p nachsehen ob alles zur Zufriedenheit eingerichtet ist. So schaut es auf meiner 80GB Platte aus:

    Disk /dev/sda: 81.9 GB, 81964302336 bytes
    236 heads, 63 sectors/track, 10767 cylinders
    Units = cylinders of 14868 * 512 = 7612416 bytes
    
    
       Device Boot    Start       End    Blocks   Id  System
    /dev/sda1               1         395     2936398+  83  Linux
    /dev/sda2             396         497      758268   82  Linux swap
    /dev/sda3             498       10767    76347180   83  Linux
    
  9. Mit w die neue Partitionstabelle schreiben lassen und dann wieder rebooten.

  10. Nach dem reboot wieder einloggen und die Partitionen formatieren:

    mkfs.ext3 /dev/sda1
    mkswap /dev/sda2
    mkfs.ext3 /dev/sda3

    Und nochmal rebooten, das war es mit OpenSlug.

Debonaras installieren

  1. Die root Partition als /mnt mounten: mount /dev/sda1 /mnt
  2. Das rootfs (33MB) runterladen und entpacken:

    cd /mnt
    wget http://ftp.debonaras.org/sarge/rootfs/nslu2-sarge-0.2.tar.gz
    tar xzvf nslu2-sarge-0.2.tar.gz
    mv nslu2-sarge-0.2/* .
    rmdir nslu2-sarge-0.2
    
  3. Jetzt müssen die OpenSLug Kernel-Module in den Debian-Verzeichnisbaum:

    cp -Ra /lib/modules/* lib/modules
    cp /etc/modprobe.conf etc
    
  4. Jetzt müssen die Dateien /mnt/etc/fstab, /mnt/etc/network/interfaces und /etc/mailname angepasst werden. Bei /etc/mailname ist mir der Grund nicht recht klar, ich hab die Datei trotzdem angepasst… Meine Dateien sehen also so aus:

/mnt/etc/fstab

    /dev/sda1       /               ext3    defaults        1  1
    /dev/sda2       swap            swap    defaults        0  0
    /dev/sda3       /mnt/data       ext3    defaults        1  1
    proc            /proc           proc    defaults        0  0
    usbfs           /proc/bus/usb   usbfs   defaults        0  0

/mnt/etc/network/interfaces

    # /etc/network/interfaces
    # configuration file for ifup(8), ifdown(8)
    #
    # The loopback interface
    auto lo
    iface lo inet loopback
    #
    # The NSLU2 built-in ethernet
    auto eth0
    # Automatically generated from /etc/default/sysconf
    # The pre-up option must always be supplied, regardless
    # of configuration, to set the hardware correctly.
    # Severe network problems may result if this option is
    # removed.
    iface eth0 inet dhcp
            pre-up modprobe -f ixp425_eth
            pre-up modprobe -f ixp400
            pre-up ifconfig eth0 hw ether 00:11:22:33:44:55
            address 192.168.1.77

/etc/mailname

    nslu2.home.xx

Noch mehr Debian-Konfiguration

  1. Die existierenden /etc/resolv.conf, /etc/hosts, /etc/hostname und /etc/defaultdomain von Openslug zu Debian kopieren:

    cp /etc/resolv.conf etc/resolv.conf
    cp /etc/hosts etc/hosts
    cp /etc/hostname etc/hostname
    cp /etc/defaultdomain etc/defaultdomain
    
  2. Um das Netzwerk nutzen zu können muss jetzt proc gemountet werden: mount -t proc proc /mnt/proc

  3. Auf die externe Platte chrooten: cd / ; chroot /mnt
  4. /etc/apt/sources.list anpassen:

    # Alte Sources:
    #
    #deb http://debian.nslu2-linux.org/debian/ sarge main
    #deb-src http://ftp.debian.org/debian/ sarge main
    
    
    # Stable:
    #
    deb http://ftp.debonaras.org/sarge/debian sarge main
    deb http://ftp.debonaras.org/sarge/debonaras sarge main
    
    
    # Unstable:
    #
    #deb http://armeb.debian.net/debian-armeb sid main contrib override
    
  5. Paketliste updaten und die Dist hochziehen, debconf konfigurieren und anacron, den popularity-contest und ssh installieren:

    apt-get update
    apt-get dist-upgrade
    apt-get install anacron popularity-contest
    apt-get install ssh
    
  6. Wichtig. Ein neues (yeah, wieder) root-Passwort setzen damit man nach einem reboot wieder in die NSLU2 einloggen kann: passwd

  7. Zurück zum flashfs: exit
  8. Kram unmounten (eventuell vorher den anacron killen wenn das nicht sofort klappt): umount /mnt/proc ; umount /mnt
  9. Die externe Platte beim nächsten Boot zum rootfs machen: turnup disk /dev/sda1 -t ext3
  10. reboot
  11. In das frische Debian-System sshen
  12. Zeitzone konfigurieren: tzconfig
  13. exim4 rekonfigurieren: dpkg-reconfigure exim4-config
  14. Allen sagen das es eine neue Debonaras-Box gibt: /etc/cron.weekly/popularity-contest
  15. Stolz auf die Liste der OpenDebianSlugUsers eintragen
  16. Enjoy your new Debian-Box with all the apt-get Goodness.

Quellen für dieses kleine HowTo:

Comments