Diese Seite ist eine kleine Zusammenstellung an Informationation rund um
den Betrieb von Debian auf Alix2 Boards.
Bei den Alix Boards handelt es sich um x86 embedded Systeme mit AMD Geode LX CPU
von dem Schweizer Hersteller PC engines.

Ich habe ein Alix2C3 mit zwei externen USB Platten angeschaft um einen alten PII als lokalen Server und Router abzuloesen. Die Leistungsfaehigkeit reicht bei weitem aus. Einzig die Performance bei verschluesselten Verbindungen (ftps/sftp) laest etwas zu wuenschen uebrig. Fuer mich ist das allerdings zu verkraften da unverschluesseltes NFS im LAN schnell genug ist.
Handbuch: http://www.pcengines.ch/pdf/alix2.pdf
Eigentlich laueft alles out of the box. Es empfiehlt sich trotzdem
im experten Modus zu installieren um entsprechend eingreifen zu koennen
falls noetig.
Standard maessig wird man grub wegen aktivierter Farbdarstellung und dem
Fehlen der Einstellungen fuer die Serielle Schnittstelle nicht zu Gesicht
bekommen. Auch den boot selber wird man nicht verfolgen koennen.
Daher empfehlen sich folgende Aenderungen ueber die Shell in
/target/boot/grub/menu.lst vor zu nehmen:
# Pretty colours won't work
#color cyan/blue white/blue
(deaktivieren der Farbdarstellung)
Weiter sollte console=ttyS0,38400n8 fb=false als Kernelparameter
mit uebergeben werden. Bsp.:
kernel /boot/vmlinuz-2.6.18-6-486 root=/dev/hda1 ro console=ttyS0,38400n8 fb=false
Um diese Informationen fuer die Kernel Options persistent zu machen
ist es noch noetig die defaultoptions entsprechend zu editieren.
Da dies ein Macro fuer update-grub ist die fuehrende
# bei zu behalten und das ganze muss an der Stelle
editiert werden wo es von update-grub angelegt wurde.
Doppelte werden ueberschrieben und wenn spaeter ein leerer Eintrag
kommt wird nichts eingetragen usw.
# defoptions=console=ttyS0,38400n8 fb=false
Um diese Einstellungen auch fuer die automatisch generierten Single
User Eintraege zu uebernehmen ist noch folgendes entsprechend zu
editieren:
# altoptions=(single-user mode) single console=ttyS0,38400n8 fb=false
Im Anschluss update-grub ausfuehren und ueberpruefen ob alles entsprechend eingetragen wurde.
Die Einstellungen fuer die Verwendung der Konsole selber sollte der debian-installer automatisch einfuegen.
Zur Kontrolle:
serial --unit=0 --speed=38400
terminal serial
Die /target/etc/inittab sollte folgendes enthalten:
T0:23:respawn:/sbin/getty -L ttyS0 38400
Mein urspruenglicher Plan war es auch /var auf dem softraid1 ueber die beiden externen USB Platten zu platzieren. Dies stellte sich aber schnell als ziemlich bloede Idee herraus da sowohl die USB wie auch md Module einige Zeit zur Initialisierung benoetigen. Da so die Verfuegbarkeit von /var um einige Zeit verzoegert wird sind die Systemstarts nur selten erfolgreich. Fuer einen garantierten Betrieb und ein blind bootbares System kann ich davon nur abraten.
Als Zwischenloesung habe ich nur den I/O intensiven squid cache auf das raid1 umgelegt. So kann das System sicher booten und es finden trotzdem nur relativ wenige Schreiboperationen auf der CF Karte die als Festplatte fungiert statt.
Nachfolgend noch einige Hinweise fuer den laufenden Betrieb die sich als hilfreich erwiesen haben.
Da die Alix Systeme keine Batterie gepufferte Uhr haben verlieren sie
mit dem Verlust der Netzspannung auch die Uhrzeit. Es empfiehlt sich daher
die Zeitsyncronisation so frueh wie moeglich vorzunehmen um weiteren
Probleme mit verschiedenen Diensten zu vermeiden.
Bei mir ist der fruehest moegliche Zeitpunkt die aktuelle Zeit aus einer
verlaesslichen Quelle zu bekomme nach dem Start der Internetverbindung.
Dem entsprechend habe ich folgende Zeilen mit in die /etc/ppp/if-up
hinzugefuegt:
/usr/sbin/ntpdate -u -s pool.ndh.net ntp.netcologne.de time1.rrz.Uni-Koeln.DE &&
/sbin/hwclock --systohc > /dev/null
(Die zu verwendenden Zeitserver solten je nach Standort und Provider angepast werden.)
Damit alle Sensoren korrekt angesprochen werden koennen sind folgende Module ueber
die /etc/modules mit zu laden:
i2c_core
lm90
scx200_acb
Alles weitere laest sich normalerweise mit dem Script sensors-detect automatisch
einstellen. Eine Abfrage ueber das Tool sensors sieht dann ungefaehr so aus:
sven@arthur:~$ sensors
lm86-i2c-0-4c
Adapter: CS5536 ACB0
M/B Temp: + (low = +, high = +)
CPU Temp: +50. (low = +0., high = +70.)
M/B Crit: + (hyst = +)
CPU Crit: + (hyst = +)7585758500570044
Zur Visualisierung von load, CPU Auslastung, der Temperatur und dem Netzwerkdurchsatz verwende ich MRTG mit dem mrtg-rrd.cgi script aus den Debian Paketen mrtg und mrtg-rrd.

Meine mrtg.cfg und die dazu gehoerigen scripte gibt es hier zum Download.
Ungluecklicherweise existiert ein Bug in der mit Lenny ausgelieferten Version von rrdtool. Dieser Bug
fuehrt dazu das unter bestimmten Umstaenden keine Groesseninformationen von RRDs::graph
zurueck gegeben werden. Dies wiederum fuehrt in mrtg-rrd dazu das im HTML output 0 als Groesseninformation
angegeben wird und die Grafiken nicht sichtbar sind.
Bug im rrdtool Trac: http://oss.oetiker.ch/rrdtool-trac/ticket/163
Bug im Debian BTS: http://bugs.debian.org/484211
Mein workaround: mrtg-rrd-rrdtool-workaround.diff
In testing und unstable ist das source Paket leds-alix-source verfuegbar. Dies sollte sich mittels m-a auch unter etch bauen lassen. Da mir allerdings noch keine sinnvolle Verwendung fuer die LEDs eingefallen ist habe ich dies bisher nicht probiert.
Fuer die AES crypto Einheit gibt es seit Linux 2.6.19
einen Treiber mit dem Namen geode_aes allerdings keine in
OpenSSL integrierte engine um diesen
zu nutzen. Unter FreeBSD gibt es eine Moeglichkeit der Nutzung ueber CryptoDev
(/dev/crypto) allerdings wurde dieser Ansatz auf der LKML abgelehnt. Der Treiber ist
auf der Webseite von Michal Ludvig
http://www.logix.cz/michal/devel/cryptodev/ verfuegbar.
Habe diesen Ansatz nicht getestet und habe auch keine Erfolgsmeldungen zu Alix und
CryptoDev mit aktuellem Kernel gefunden.
Es sieht so aus als gaebe es einen neuen Ansatz cryptodev fuer Linux am leben zu erhalten. Habe dieses Modul selber noch nicht probiert.
Nach ziemlich genau einem Jahr zeigte die erste CF Karte (SanDisk Ultra II 4GB)
erste Ausfallerscheinungen in Form von I/O error. Das ganze betraf Teile von
/var/lib/apt/ und /var/lib/dpkg/ was fuer sich
genommen haesslich werden kann. Gluecklicherweise liesen sich die defekten
Teile aus einer anderen Lenny Installation zurueck spielen so das kein Schaden
entstanden ist.
Die naechsten Schritte waren dann Backup auf einem anderen Medium und das
Bestellen einer neuen CF Karte (SanDisk Extreme III 4GB).
Ein komplettes Image per dd lies sich wegen der Defekte nicht mehr
erstellen so das ich versucht habe die neue Karte zu partitionieren um die
noch lesbaren Daten per Hand zurueck zu spielen. Ungluecklicherweise bin ich
dann an der Installation von grub-legacy im chroot auf der Karte gescheitert.
Ansich hat das zwar funktioniert nach
dieser Anleitung
(Schritt 9-13) aber ich konnte nicht erfolgreich booten. Grub kam ueber
Stage 1.5 nie hinaus und stieg dann mit
Error(2) aus.
Ein Hinweis darauf das irgendwas mit dem Wechsel vom Cardreader
(/dev/sda) zurueck in das Alix System (/dev/hda)
nicht zurecht gekommen ist.
Endgueltige Loesung fuer den Restore war dann die Erstellung eines Image
mittels dd if=/dev/sda of=alix.img conv=noerror,sync und
das Zurueckspielen abermals mittels dd if=alix.img of=/dev/sda.
Das Dateisystem blieb dabei zum Glueck intakt und der Bootloader auch. Ich
konnte die defekten Dateien in /var/lib/dpkg/ dann im laufenden
System aus meinem Backup restoren.
Was haben wir gelernt: a) Ein Cardreader ist enorm hilfreich. b) Backups
sind extrem wichtig.