Contents |
NSLU2 SlugOS5.3 einrichten
Allgemeine Infos
Die NSLU2 ist ein sehr preiswertes embedded Linux System, für das eine große Entwicklergemeinde http://www.nslu2-linux.org Software erstellt. Der Hersteller Linksys weist darauf hin, dass die Herstellergewährleistung erlischt, wenn die NSLU2 in ihrer Firmware modifiziert wird. Darüber sollte man sich im Klaren sein, wenn man SlugOS5.3 installiert. Bei einer Hardware-Investition von gut 70 Euro ein sicher für die meisten zu akzeptables Risiko, aber man sollte es zumindest wissen. Solange die NSLU2 mit modifizierter SlugOS Firmware läuft, kann man diese in der Regel auch wieder in den Originalzustand zurückversetzen. Weitere Info darüber findet sich hier: http://www.nslu2-linux.org/wiki/HowTo/RevertToLinksysFirmware . Währen man für die SlugOS Version 4.8 sehr viel gut abgestimmte Software bekam, ist die neuere Version 5.3 noch nicht ganz rund, und man muss an manchen Ecken noch manuell nachbessern. Dafür hoffe ich, dass die SlugOS Version länger gepflegt wird, und mir die NSLU2 box länger erhalten bleibt.
Wenn man wissen will, welche dynamischen Libraries eingebunden werden:
root$ ldconfig -v
Damit auch die dynamischen Libraries aus /opt/lib eingebunden werden:
new File /etc/ld.so.conf: /opt/lib wird benutzt in /etc/rcS.d/S55bootmisc.sh zum aufrufen von /sbin/ldconfig und erzeugt /var/run/ls.so.cache
Die Logfiles werden, damit der USB Flash-Speicher nicht beansprucht wird, in einer RAM-Disk gespeichert, und rolliert. Ausgelesen wird der Logfile mit:
logread der Prozess heisst: "logger" und wird parametriert in /etc/syslog.conf
Meldung Using fallback suid method von /etc/busybox.
Wenn Script /home/rudi/heizung/webcam3.sh vom Terminal (PUTTY) aufgerufen wird, erscheint beim Ablauf auf der Kommando Zeile im 30 Sekunden Takt zehn mal die Meldung "Using fallback suid method". Wenn webcam3.sh per Kaltstart Script /etc/init.d/heizung.sh aufgerufen wird, fällt das nicht auf. Um diese Meldung wegzubekommen, wird empfohlen http://old.nabble.com/Using-fallback-suid-method-td23891976.html eine leere Datei /etc/busybox.conf zu erstellen. Zusätzlich muss aber noch das Setuid-Bit 04xxx bei /bin/busybox gesetzt werden, wie die Praxis zeigt. Nur ein Ändern der Gruppe auf dialout aller beteiligten Programme hat nicht geholfen.
Es gibt aber auch eine Hilfe dazu: http://www.softforge.de/bb/suid.html
root$ touch /etc/busybox.conf root$ chown root:root /etc/busybox.conf root$ chmod 0600 /etc/busybox.conf root$ chmod 4755 /bin/busybox
Datum und Uhrzeit einstellen
Das macht man als root oder sudo in der Konsole (PUTTY) mit:
root$ date MMDDhhmmYYYY # M=Monat, D=Tag, h=Stunde, m=Minute, Y=Jahr
Also wenn es der 10.2.2010 19:13 sein soll, dann muss der Befehl so aussehen:
date 021019132010
Langfristig ist es besser die Uhrzeit über das Internet zu stellen, mit ntpclient #ntpclient.
LED's
LED's Disk 1 and Disk2 funktionieren nicht mehr unter SlugOS. Zur Benutzung der LED's siehe http://www.annuit-coeptis.net/artikel/nslu2/debian . Damit die Status-LEDs am Gehäuse wieder sinnvoll funktionieren, ist wie folgt vorzugehen:
- Das leds Programm (befindet sich im Verzeichnis /initrd/sbin/leds nach /sbin kopieren
- Mit den folgenden beiden Befehlen eine Gerätedatei erzeugen:
mknod /dev/leds c 126 0 chmod 660 /dev/leds
Jetzt kann schon einmal mit dem Tool versucht werden, die LEDs anzusteuern:
leds <colour> <diskled> <colour> (Farbe der Status-LED) g ... green r ... red gr .. amber <diskled> (Disk-LEDs, nur "an" oder "aus") 1 ... disk 1 2 ... disk 2 A ... all (ready/status, disk1, disk2)
wobei bei einem Aufruf die LEDs und Farben getrennt durch ein Leerzeichen mit führendem + (an) oder - (aus) angegeben werden.
Beispiele:
# Initialisierung: ready/status auf grün, alle Anderen aus: leds # disk 1 an: leds +1 # alle LEDs ausschalten: leds -gr -1 -2 # ready/status rot: leds +r # die Status-LED von rot auf grün wechseln lassen: leds -r +g
Hinweis: nur die Ready/Status-LED scheint 3-farbig zu sein, Orange erhält man durch Angabe von grün und rot (-gr). Im Hinweistext von leds (erscheint bei Eingabe einer ungültigen Option) wird der Schalter 0 erwähnt, was aber offensichtlich ein Fehler zu sein scheint … Die Power-LED scheint sich nicht beeinflussen zu lassen …
Damit das ganze Farbenspiel beim Bootvorgang funktioniert, sind die init-Skripte aus /initrd/etc/init.d/ zu kopieren:
cp /initrd/etc/init.d/zleds /initrd/etc/init.d/leds_startup /etc/init.d/
Mit den beiden folgenden Kommandos werden die Links für die einzelnen Runlevel erstellt:
update-rc.d zleds defaults 99 05 update-rc.d leds_startup defaults 01
Massen-Speicher
Als Massenspeicher dient ein 1 GB oder größerer USB-Stick.
USB Stick partionieren: USB Stick aufstecken (1 GB) mit "df" auf "mounts" kontrollieren. alle gemounteten Partitionen (z.B. /media/sda1) mit "umount" aushängen. fdisk /dev/sda evtl. vorhandenen Partitionen löschen. 3 primäre Partitionen neu anlegen. Partition 1: root file system 512 MB, ext3 Partition 2: swap 128 MB Partition 3: /home, ext3 $ mkfs.ext3 /dev/sda1 # format the flash stick $ mkfs.ext3 /dev/sda3 # format the flash stick
So soll es aussehen zum Schluss:
root@LKG649492:~# df Filesystem 1K-blocks Used Available Use% Mounted on rootfs 489992 186326 278366 41% / /dev/root 6400 5676 724 89% /initrd /dev/sda1 489992 186326 278366 41% / /dev/sda1 489992 186326 278366 41% /dev/.static/dev udev 2048 48 2000 3% /dev /dev/sda3 334449 8256 308924 3% /media/sda3 tmpfs 15120 48 15072 1% /var/volatile tmpfs 15120 0 15120 0% /dev/shm
RAM-Speicher
Mit 32 MB ist der RAM Speicher der NSLU2 box für ein Linux System nicht gerade reichlich bestückt. Also muss man sparsam damit umgehen.
SWAP Partition/File
!SlugOS braucht SWAP Platz - selbst wenn es ihn nie benutzt. Das klingt merkwürdig, und man findet auch gegensätzliche Meinungen. Aber es ist Fakt, dass aktuelle Linux Kernel Änderungen den "kernel's Out-Of-Memory killer" aggressiver gemacht haben, was bedeutet, dass beim starten eines neuen Prozesses, z.B. opkg, ein anderer Prozess dafür gekillt werden kann (moin web server). Dazu gibt es auch keine Fehlermeldung. Das kann man vermeiden, wenn man SWAP Platz einrichtet. Siehe auch: http://www.nslu2-linux.org/wiki/SlugOS/InstallandTurnupABasicSlugOSSystem (Adding a Swapfile).
Der einfachste und effektivste Weg dazu ist eine SWAP Partition (128 MB), siehe #Massenspeicher. Ein SWAP-File ist auch möglich, aber komplizierter zum einrichten. Anzeige der Partitionen:
root@LKG649492:~# fdisk -l /dev/sda Disk /dev/sda: 1014 MB, 1014497280 bytes 255 heads, 63 sectors/track, 123 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 63 506016 83 Linux /dev/sda2 64 80 136552+ 82 Linux swap /dev/sda3 81 123 345397+ 83 Linux
Formatieren der SWAP Partition, starten und prüfen:
root@LKG649492:~# mkswap /dev/sda2 Setting up swapspace version 1, size = 139825664 bytes root@LKG649492:~# swapon /dev/sda2 root@LKG649492:~# free total used free shared buffers Mem: 30240 20120 10120 0 1132 Swap: 136544 0 136544 Total: 166784 20120 146664
Auch nach einem Reboot steht die SWAP Partition zur Verfügung. Dafür sorgt der Script /etc/init.d/fixfstab.
Turnup, kopieren und umschalten auf USB-Stick, nach SlugOS5.3 Installation
Zuerst fängt man an mit: http://www.nslu2-linux.org/wiki/SlugOS/InstallandTurnupABasicSlugOSSystem .
Nachdem das neue Minimum-Betriebssystem SlugOS5.3 im internen Flash-ROM installiert ist, soll es auf einen USB-Stick kopiert und eingerichtet werden.
Es gibt zwei wichtige Varianten zu unterscheiden: "turnup disk" und "turnup memstick". Die erste Option ist für die Verwendung mit Festplatten vorgesehen. Es nähert sich am ehesten an eine Standard-Desktop-Linux-Umgebung. Die zweite Variante ist bestimmt für Flash-Memory-Sticks, und opfert ein paar selten verwendete Linux-Funktionen, um die Anzahl der Schreibzugriffe auf den externen USB-Memory-Stick zu minimieren.
Die "-i"-Option zum turnup Befehl wird verwendet, um turnup zu sagen, alles zu kopieren was das Zielgerät gebraucht wird - wir brauchen das, weil der Memory Stick noch leer ist.
Es gibt einige andere Optionen, die aber selten gebraucht werden. Die einzige, die Ihnen nützlich wäre die "-s"-Option, die SlugOS, wie lange auf der Festplatte oder Speicher-Wait-Stick zu werden beim Booten bereit erklärt - einige sehr langsamen Festplatten können mehr als die Standard erfordern 10 Sekunden finden können Das gibt ihnen SlugOS.
In unserem Fall sind, machen wir einen Standard turnup Betrieb mit einem externen USB-Memory-Stick:
There are two major variants we need to consider: "turnup disk" and "turnup memstick". The first option is intended for use with hard disk drives. It most closely approximates a standard desktop Linux environment. The second variant is intended for flash-memory sticks, and sacrifices a few seldom-used Linux features in order to minimize the number of write operations performed to the external USB memory stick.
The "-i" option to the turnup command is used to tell turnup to copy everything it needs in order to make the target device suitable for use -- we need that because there's nothing on the memory stick yet.
There are some other options, but we're not likely to need them. The only one that you may find useful would be the "-s" option, which tells SlugOS how long to wait for the disk or memory stick to become ready at boot time -- some very slow disks may require more than the default 10 seconds that SlugOS gives them.
In our case, we're doing a standard turnup operation to an external USB memory stick:
Uhrzeit per Internet stellen - ntpclient
Je länger nun die NSLU2 box läuft, desto weiter wird auf dem Gerät die lokale Zeit von der Normal-Zeit abweichen. Das kann man automatisch korrigieren. Hierzu wird ein NTP Client eingerichtet, der von einem Zeitserver im Internet die aktuelle und genaue Zeit mit der NSLU2 box synchronisiert. Es gibt in der Optware auch noch einen NTP Server (ntpd, Daemon), der wird hier nicht gebraucht. Installiere zuerst die Software, wobei zum Glück das automatische Starten der Software beim Kaltstart bereits integriert ist, im Script /usr/lib/opkg/info/ntpclient.postinst.
root@LKG649492:~# opkg install ntpclient Installing ntpclient (2007_365-r2) to root... Downloading http://ipkg.nslu2-linux.org/feeds/slugosbe/cross/unstable/ntpclient_2007_365-r2_armv5teb.ipk Configuring ntpclient Adding system startup for /etc/init.d/ntpclient. Starting NTP Client. update-alternatives: Linking //sbin/adjtimex to adjtimex.ntpclient root@LKG649492:~# opkg install ntp-utils Installing ntp-utils (4.2.4p7-r1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/slugosbe/cross/unstable/ntp-utils_4.2.4p7-r1_armv5teb.ipk ntp-utils: unsatisfied recommendation for iana-etc Configuring ntp-utils root@LKG649492:~# opkg install ntp-tickadj Installing ntp-tickadj (4.2.4p7-r1) to root... Downloading http://ipkg.nslu2-linux.org/feeds/slugosbe/cross/unstable/ntp-tickadj_4.2.4p7-r1_armv5teb.ipk ntp-tickadj: unsatisfied recommendation for iana-etc Configuring ntp-tickadj
Um zu sehen, was an Aktionen installiert wurde, siehe:
root$ ps 29775 root 1800 S /sbin/ntpclient -l -i 600 -h pool.ntp.org root@LKG649492:~# ls -ls /etc/init.d/ntp* 2 -rwxr-xr-x 1 root root 1208 Nov 29 21:31 /etc/init.d/ntpclient root@LKG649492:~# ls -ls /etc/rc2.d/*ntp* 0 lrwxrwxrwx 1 root root 19 Feb 10 19:46 /etc/rc2.d/S65ntpclient -> ../init.d/ntpclient
WebCam Fehlersuche
Die Software Anpassung für eine USB-WebCam wird an anderer Stelle beschrieben, das wird sonst zu lange hier. Aber es gibt noch kleine Probleme, die man beheben muss. Wenn beim Aufruf von uvccapture ein Fehler gemeldet wird, prüft man die Rechte:
root$ logread Feb 11 10:23:01 (none) user.notice rudi: ERROR opening V4L interface Feb 11 10:23:01 (none) user.notice rudi: : Permission denied root@LKG649492:~# ls -ls /usr/bin/uvccapture 26 -rwxr-xr-x 1 root root 24922 Mar 9 2009 /usr/bin/uvccapture
Das Programm uvccapture muss aber in die Gruppe video um zu funktionieren, ebenso der user rudi. Also:
root@LKG649492:~# chown root:video /usr/bin/uvccapture Mit dem Editor add rudi to /etc/group -> "video:*:44:rudi" und Neustart!
Änderungen an dem File /etc/group werden leider erst nach einem Neustart wirksam.
-- RudolfReuter 2010-02-10 19:23:22
Liste der Seiten in dieser Category:
Go Back to CategoryNslu2 or StartSeite ; KontaktEmail (ContactEmail)