Dit hoofdstuk is om sommige functies/services op mijn NSLU2 meer failsafe te maken. Dus wanneer de USB harddisk het begeeft, kan ik deze verwijderen en de NSLU2 opnieuwe opstarten. De belangrijkste functies/services moeten dan weer beschikbaar zijn.

Deze methode heb ik bedacht, omdat de NSLU2 ook mijn verwarming (FS20) in huis regelt. Het is niet handig om in de winter een harddisk crash te hebben en dan geen verwarming te hebben. Nu heb ik ook een fallback systeem op de verwarming voor als de gehele NSLU2 uitbrandt, maar dan is de verwarming niet zo goed geregeld als nu het geval is.

Kortom, we kunnen nu services installeren die ook zonder harddisk kunnen draaien. Services en instellingen die we in deze fase doen, worden later ook naar de schijf gekopieerd. Dit gebeurt op het moment dat de harddisk wordt geinitialiseerd.

Geheugen gebruik van SlugOS t.o.v. Unslung

Voordeel van SlugOS t.o.v. UnSlung is het geheugen gebruik.

Dit is het resultaat van het commando “top” in een zojuist geflashed en geinitialiseerd systeem.

$ top  
Mem: 9556K used, 20820K free, 0K shrd, 0K buff, 5420K cached  
...

En het commando “df” geeft het volgende:

$ df  
Filesystem 1k-blocks Used Available Use% Mounted on  
/dev/mtdblock4 6528 4932 1596 76% /  
/dev/mtdblock4 6528 4932 1596 76% /dev/.static/dev  
tmpfs 2048 24 2024 1% /dev  
tmpfs 15188 20 15168 0% /var/volatile  
tmpfs 15188 0 15188 0% /dev/shm  

Zoals je in het resultaat van het df commando ziet, op de flashdisk (/dev/mtdblock4) is nog bijna 1,6Mb aan flashgeheugen over. Genoeg voor een paar kleine services, zoals mijn fs20 software. Dan zal het huisautomatiserings systeem blijven draaien op het moment dat de harddisk wegvalt.

Het is dus niet nodig om de USB harddisk erbij te schakelen. Aan de andere kant is er ook geen swap space en zal het dus fout gaan op het moment dat programma’s geen fysiek geheugen meer kunnen alloceren.

Ik wil wel een externe harddisk configureren, maar eerst moet de installatie voor zonder harddisk gedaan worden.

Diverse aliassen toevoegen

Aan het bestand /etc/profile toevoegen:

alias ll='ls -l'  
alias pg='ps|grep'  
alias ipkg=opkg

FS20 systeem installeren (optioneel)

Het FS20 systeem werkt m.b.v. de FHZ1000PC. Dit is een USB device om te kunnen communiceren met het fs20 systeem en is gekoppeld aan de NSLU2.

Deze wordt niet zomaar herkend door de NSLU2, hiervoor moet het USB device ID worden gewijzigd.

Hoe je dit moet doen kun je hier lezen.

Om de FHZ1000 ook te herkennen als USB device, moeten de volgende kernel modules geinstalleerd worden:

$ ipkg update  
$ ipkg install kernel-module-usbserial  
$ ipkg install kernel-module-ftdi-sio

Oud:
$ cp /mnt/usb/ usbserial.ko ftdi_sio.ko /lib/modules/2.6.12.2/kernel/drivers/usb/serial/
$ insmod /lib/modules/2.6.12.2/kernel/drivers/usb/serial/usbserial.ko
$ insmod /lib/modules/2.6.12.2/kernel/drivers/usb/serial/ftdi_sio.ko
$ depmod -a -> Dit commando legt de insmod modules vast

Verdere uitleg over modules laden

www.faqs.org/docs/kernel/x45.html

De FS20 software erop zetten (zelf gemaakte software)

Hier is de file fs20.tar.gz welke in de root uitgepakt moet worden. Deze bevat sources, bins en fs20 script. (staat ook op de NAS in N:Hobby ProjectenNSLU2fs20.tar.gz)

$ cd /  
$ tar xzf fs20.tar.gz

Het commando “fs20” staat in /usr/bin/fs20 en kan gestart worden vanaf de commandline.

Dit programma is een console om met de fs20daemon te kunnen communiceren, dit gebeurt via FIFO’s
Deze worden automatisch aangemaakt in: /media/ram/ (FS20_CONSOLE_IN en FS20_CONSOLE_OUT)

De ramdisk wordt in deze firmware versie aangemaakt in /var/volatile, dus om de /media/ram dir te verwijzen naar /var/volatile moeten we het volgende doen:

$ cd /media  
$ ln -s /var/volatile ram

Zie voor voor verdere info over fifo’s: Named pipes

Oud:
$ cp /mnt/usb/fs20 /usr/bin
$ cp /mnt/usb/fs20daemon /usr/bin_

Maak een startup file, zodat fs20daemon automatisch opstart

$ vi /etc/init.d/fs20
#!/bin/sh
case "$1" in  
start)  
umask 0000  
/usr/bin/fs20daemon & ;;
stop) echo "Not supported";;  
*) echo "fs20: $1: command ignored" >&2;;  
esac
exit 0

En maak dit script automatisch opstartbaar en executeerbaar met:

$ chmod a+x /etc/init.d/fs20  
$ cd /etc/rc3.d  
$ ln -s ../init.d/fs20 S80fs20

Klaar met de installatie van de failsafe services?

Maak dan weer wat ruimte door de ipkg list te verwijderen:

$ cd /var/lib/ipkg  
$ rm cross  
$ cp native cross