embedded Linux NSLU2
Ansatz war es, einen Server zu Hause zu haben. Um in 1. Linie den geringen Upload von 60Kb/s zu schlagen. Bedingungen: Anschaffung billig, Stromverbrauch gering, 1x Netzwerk 1x USB Anschluß, leise Also mal umsehen was es an Hardware gibt, Bei Linksys wurde ich dann fündig. Eine (N)etwork (S)torage (L)ink for (U)SB 2.0 Disk Drives Dieses nette Teil Verbraucht gerade mal 17 Watt mit meiner Netzteillosen 2,5 Zoll HD (SAMSUNG 40GB) Kein Lüfter und gerade mal so groß wie eine 2.5 Zoll Platte. Die CPU ist ein XScale-IXP42x Family rev 1 (v5l) auf arm5 Architektur also Linux Kompatibel. Leider stellt die Originale Firmware nur die Daten mit, meiner Meinung nach unzureichender Sicherheit im Netz. Auch Webserver Erweiterung sind nicht möglich Der Flash-Speicher (32MB max davon aber 8MB für's System) reicht da leider nicht aus. Nun gut, es gibt eine Möglichkeit die NSLU2 zu überreden nach dem Booten ein System von der externen Festplatte zu Booten und da sind vom Speicher alle Möglichkeiten offen. Durch langes durchforsten des Internets habe ich mich entschlossen Meine gesammelte Erfahrung niederzuschreiben.
Als erstes habe ich für Debbugzwecke und Erleichterung eine Serielle Schnittstelle eingelötet welche ich per USB2RS232 Kabel und mincom ansteuern kann
FIRMWARE AUSTAUSCHEN
Damit der Start nicht ganz so Schwierig wird (Firmware erstellen) habe ich die Originale Firmware mit DebianSlug 3.10 Beta (NSLU2) ersetzt. Die Zipdatei wird entpackt und die enthaltene debianslug-3.10-beta.bin mit Hilfe des Adminmeü's der Box geUPGRADed.
Hier /firmware; habe ich beschrieben wie ein Aktuelle's Debianslug selbst Compiliert werden kann und auf die Box gebracht wird.
Mit bereits eingesteckter externen Festplatte bootet die Box in ca 5 min neu. Auf dieser Platte sollten keine wichtiegen Daten sein, da diese gelöscht werden.
Auf NSLU2 per SSH oder Serielle einloggen
user:root pwd:opeNSLUg
PLATTE PARTITONIEREN
fdisk /dev/sda n #(neue partition) p #(primary) 1 #(1. partition) 1 #(start sector) +3G #(end sector/partition größe 3GB wird als / gemountet) n p 2 #(2. partition) [enter] +512M #(die swap partition (512MB reichen)) t #(type der partition festlegen) 2 #(2. partition) 82 #(type nach 82 also swap wechseln) w #(schreibe tabelle) q #(fdisk verlassen)
SDA1 (unsere /) nun mit extent3 formatieren mkfs.ext3 /dev/sda1
SWAP
mkswap /dev/sda2 sync; sync; sync swapon /dev/sda2
BOOTRAPPEN
mkdir /mnt/debinst mount /dev/sda1 /mnt/debinst mkdir /mnt/debinst/work cd /mnt/debinst/work {{{ fdisk /dev/sda n #(neue partition) p #(primary) 1 #(1. partition) 1 #(start sector) +3G #(end sector/partition größe 3GB wird als / gemountet) n p 2 #(2. partition) [enter] +512M #(die swap partition (512MB reichen)) t #(type der partition festlegen) 2 #(2. partition) 82 #(type nach 82 also swap wechseln) w #(schreibe tabelle) q #(fdisk verlassen)
SDA1 (unsere /) nun mit extent3 formatieren mkfs.ext3 /dev/sda1
SWAP
mkswap /dev/sda2 sync; sync; sync swapon /dev/sda2
BOOTRAPPEN
mkdir /mnt/debinst mount /dev/sda1 /mnt/debinst mkdir /mnt/debinst/work cd /mnt/debinst/work 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 ./usr/sbin/debootstrap --arch arm stable /mnt/debinst http://ftp.de.debian.org/debian warten bis "Base system installed successfully" ( 20 min bis 50 min ) sonst mal in die /mnt/debinst/debootstrap/debootstrap.log reinsehen.
SYSTEM
cd .. cp /etc/resolv.conf etc/resolv.conf cp /etc/hosts etc/hosts cp /etc/hostname etc/hostname cp /etc/network/interfaces etc/network/interfaces cp -a /lib/modules/* lib/modules UTILS wie BEEP & LEDS cp /sbin/leds usr/bin/leds cp /etc/default/functions etc/default/functions cp /bin/beep bin/beep mount -t proc proc /mnt/debinst/proc cd / !!! ACHTUNG !!! IN CHROOT UMGEBUNG WECHSELN chroot /mnt/debinst nano /etc/fstab *proc /proc proc defaults 0 0 /dev/sda1 / ext3 defaults 1 1 /dev/sda2 swap swap defaults 0 0 nano /etc/inittab #1:2345:respawn:/sbin/getty 38400 tty1 #2:23:respawn:/sbin/getty 38400 tty2 #3:23:respawn:/sbin/getty 38400 tty3 #4:23:respawn:/sbin/getty 38400 tty4 #5:23:respawn:/sbin/getty 38400 tty5 #6:23:respawn:/sbin/getty 38400 tty6 S0:2345:respawn:/sbin/getty 115200 ttyS0 hinzu schreiben /etc/apt/sources.list deb http://ftp.de.debian.org/debian stable main non-free contrib apt-get update apt-get -y dist-upgrade apt-get -y install \ anacron popularity-contest nslu2-utils module-init-tools \ linux-image-2.6.16-2-nslu2 2.6.16-18 kernel-module-ixp4xx-wdt \ udev ixp400-eth dpkg-reconfigure passwd apt-get -y install openssh-server apt-get install locales dpkg-reconfigure locales ACHTUNG WENN HDD >= 500GB dann noch /sbin/tune2fs -c 0 -i 0 /dev/sda1 !!! CHROOT ENDE ^D !!! (control-D) oder exit SAUBER BEENDEN & BOX STARTEN umount /mnt/debinst/proc killall syslogd anacron umount /mnt/debinst RedBoot bescheid geben das er von Platte starten soll turnup disk /dev/sda1 -t ext3 reboot
NACH DEM BOOT VON PLATTE
Einloggen als root mit Eurem PWD. Pakete installieren und das System seinen Wünschen anpassen Zum Beispiel eine Weckfunktion in php über's Webfrontend Einbinden.