Skip to content

Debian etch auf NSLU2 installieren

NSLU2

NSLU2 besorgen

Ich habe 69 EUR (mit Versant) für die NSLU2 bezahlt. Einfach mal nach NSLU2 googeln. Preisvergleich: http://www.billiger.de/show/produkt/3407931-LINKSYS-Network-Storage-Link-NSLU2.htm

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 :smile:
  • 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, kein Router sollte dazwischen sein (Geht auch mit Switch, man sollte aber nicht WLan für das flaschen nutzen).
  • 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.

DebianSlug Firmware Installieren

  • DebianSlug Firmware runterladen
  • NSLU2 in Upgrade Modus bringen (Hilfe dazu siehe weiter oben)
tux@earth:~$ sudo apt-get install upslug2
tux@earth:~$ sudo upslug2 -d eth0 -i debianslug-3.10-beta.bin
  • NSLU2 reboot
  • externe Platte/SD-Karte anstöpseln
  • als „root“ mit Passwort „opeNSLUg“ anmelden (via ssh)
  • mit „fdisk“ die externe Platte partitionieren (swap nicht vergessen!)
  • Dateisystem einrichten

Memory-Stick partitionieren/formatieren

  • 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
nslu2:~# cd /mnt
nslu2:/mnt# wget http://mirror.olnevhost.net/pub/debian/pool/main/d/debootstrap/debootstrap-udeb_0.3.3.3_arm.udeb
nslu2:/mnt# ar -x debootstrap-udeb_0.3.3.3_arm.udeb
nslu2:/mnt# tar xzvf data.tar.gz
nslu2:/mnt# export DEBOOTSTRAP_DIR=`pwd`/usr/lib/debootstrap

Debian etch Installieren

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.

nslu2:/mnt# /mnt/usr/sbin/debootstrap --arch arm etch /mnt http://ftp.de.debian.org/debian/

Letze Vorbereitungen für das neue Debian System

einige Konfigdateien kopieren (bei Verwendung von dhcp nicht unbedingt notwendig)

nslu2:/mnt# cp /etc/resolv.conf etc/
nslu2:/mnt# cp /etc/hosts etc/
nslu2:/mnt# cp /etc/hostname etc/
nslu2:/mnt# cp /etc/network/interfaces etc/network/

Kernelmodule kopieren

nslu2:/mnt# mount -t proc proc /mnt/proc

die /etc/fstab im neuen Debiansystem erstellen (also in /mnt/etc/fstab)

nslu2:/mnt# vi etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/sda2 /            ext3    relatime,errors=remount-ro 0       1
/dev/sda1 swap            swap    defaults              0       0

das Netzwerkmodul beim booten explizit laden lassen

nslu2:/mnt# echo "ixp400_eth dev_max_count=1" >> /mnt/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).

Neues Debian etch System einrichten

nslu2:/mnt# chroot /mnt /bin/bash

source.list im neuen Debian System anpassen

linux/# vi /etc/apt/source.list
deb http://ftp.de.debian.org/debian etch main
deb http://ftp.de.debian.org/debian-security etch/updates main

Einige Pakete im neuen Debian System installieren (Nicht ssh vergessen)

linux/# apt-get install vim lynx nmap screen build-essential locales ssh mailx resolvconf

richtige locales setzen

linux/# dpkg-reconfigure locales

root Passwort ändern

linux/# passwd

Zeitzone Europe/Berlin einstellen

linux/# tzconfig

Damit beim nächsten mount kein Dateisystemcheck abläuft hilft folgendes

linux/# tune2fs -c 0 -i 0 /dev/sda2

das neue Debian System mit exit wieder verlassen.

linux/# exit

mit dem Befehl sagst du dem NSLU2, dass demnächst von sda1 gebootet werden soll

nslu2:/mnt# turnup disk -s5 /dev/sda2 -t ext3

Rauchtest

nslu2:/mnt# reboot

Ich habe mir gewundert, dass die LEDs nicht korrekt arbeiten (Ready hat nur orange geblinkt). Folgendes muss durchgeführt werden, damit auch die LEDs korrekt funktionieren. Das könnte man natürlich auch gleich beim kopieren von wichtigen dateien wie /etc/hosts etc. machen.

linux/# cp /initrd/sbin/leds /sbin/
linux/# cp /initrd/bin/beep /bin/
linux/# cp /initrd/etc/default/functions /etc/default/
linux/# mknod /dev/leds c 126 0
linux/# chmod 660 /dev/leds
linux/# cp /initrd/etc/init.d/zleds /initrd/etc/init.d/leds_startup /etc/init.d/
linux/# update-rc.d zleds defaults 99 05
linux/# update-rc.d leds_startup defaults 01

Dokumentation