Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte diesen Artikel testen und das getestet-Tag entsprechend anpassen.
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Die ALIX-Boards
sind x86 Embedded Systeme, die sich sehr gut für den lüfterlosen und stromsparenden (ca. 4-8 Watt) Betrieb als Router, NAS oder kleiner Server eignen. Aufgrund der unterschiedlichen Varianten
dieser Boards ist es möglich, Server selbst für spezielle Aufgaben aufzubauen (Beispiele
).
Als Prozessor verwenden alle Boards den AMD Geode LX, als internes Speichermedium wird eine Compact-Flash (CF) Speicherkarte genutzt. Externe Festplatten können via USB angeschlossen werden (Achtung: nicht alle Varianten besitzen USB-Ports!). Allerdings sollte beachtet werden, dass Strom sparen und hohe Leistung sich prinzipiell ausschließen.
ALIX-Boards sind die direkten Nachfolger der WRAP-Boards
. Auch fertige Mini-PCs wie der (inzwischen obsolete) fit-PC1
oder der Linutop 2
verwenden diese Boards.
Alternativen für Nichtbastler – und manche Anwendungszwecke – sind fertige Komplettlösungen wie beispielsweise die Linksys NSLU2, die diversen Linkstations der Fa. Buffalo oder die Asus EeeBox, die aber jeweils andere Prozessoren und Chipsätze verwenden.
Ab Ubuntu 10.10 Maverick Meerkat werden nur noch i686-Prozessoren unterstützt. Dadurch kommen ältere i586-Prozessoren wie Intel Pentium (MMX), AMD K5 und ältere Geode-CPUs für Ubuntu nicht mehr in Frage.
| |
Quelle ![]() |
Voraussetzung für die Installation des Betriebssystems auf der CF-Karte ist ein passendes Lesegerät. Dieser Artikel beschreibt die Durchführung der Installation auf der Zielplattform. Die Installation des Zielsystems auf die CF Karte von einem anderen System aus, wird im Unter-Artikel Alix/CF-Bootmedium erstellen beschrieben.
Es bietet sich an, die Server Installation oder die Minimalinstallation zu wählen, da die meisten ALIX-Systeme weder Grafikkarte noch Tastaturkontroller besitzen. Eine Netzwerkinstallation ist via PXE möglich.
Der leichteste Weg, Ubuntu auf der CF-Karte zu installieren, ist das CD-Image auf dem PC zu booten und die Installation mit der CF-Karte als Ziel-Partition durchzuführen [4][5]. Dieser Weg ist bei Varianten mit integrierter Grafikkarte geeigneter.
Als Dateisystem empfiehlt sich generell ext2.
Viele Probleme bei der Installation entstehen durch die Verwendung eines falschen Kernels: während auf modernen Mehrprozessor-Systemen der ...-generic-Kernel gut geeignet ist, sollte auf ALIX-Boards ein ...-i386-Kernel zum Einsatz kommen.
Um die serielle Konsole zu nutzen, wird ein Nullmodem-Kabel benötigt. Weiterhin muss der verwendete PC eine serielle Schnittstelle haben, um die Daten des ALIX entgegen zu nehmen.
Diese Version von GRUB ist auf Systemen bis Ubuntu 9.04 Jaunty Jackalope üblich. Bei nachfolgenden Versionen wird GRUB 2 eingesetzt. Siehe nächsten Abschnitt.
Der Bootloader GRUB muss für die Ausgabe über die serielle Schnittstelle angepasst werden. Dazu muss die Datei /boot/grub/menu.lst bearbeitet werden [3]. Im allgemeinen Abschnitt trägt man Folgendes ein[6]:
serial --unit=0 --speed=38400 #terminal serial console terminal serial # defoptions=verbose console=ttyS0,38400n8 reboot=bios # kopt=root=UUID=<UUID>
Ab Ubuntu 9.10 Karmic Koala kommt der Bootloader GRUB 2 zum Einsatz. Der Bootloader muss für die Ausgabe über die serielle Schnittstelle angepasst werden. Dazu muss die Datei /etc/default/grub bearbeitet werden [3]. Die Datei muss folgenden Inhalt aufweisen:
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. GRUB_DEFAULT=0 GRUB_HIDDEN_TIMEOUT=0 GRUB_HIDDEN_TIMEOUT_QUIET=true # Timeout verkürzt GRUB_TIMEOUT="3" GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` # Serielle Schnittstelle hinzugefügt GRUB_CMDLINE_LINUX_DEFAULT="verbose console=ttyS0,38400n8 reboot=bios" GRUB_CMDLINE_LINUX="" # Konfiguration der seriellen Schnittstelle der Alix-Boards: GRUB_SERIAL_COMMAND="serial --unit=0 --speed=38400" GRUB_TERMINAL=serial # Uncomment to disable graphical terminal (grub-pc only) #GRUB_TERMINAL=console # The resolution used on graphical terminal # note that you can use only modes which your graphic card supports via VBE # you can see them in real GRUB with the command `vbeinfo' #GRUB_GFXMODE=640x480 # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux #GRUB_DISABLE_LINUX_UUID=true # Uncomment to disable generation of recovery mode menu entrys #GRUB_DISABLE_LINUX_RECOVERY="true"
Die eingegebenen Änderungen bewirken, dass GRUB2 seine Ein- und Ausgaben über die serielle Schnittstelle entgegen nimmt und ansonsten alle Pausen recht kurz ausfallen. Die Änderungen werden durch Eingabe des Befehls sudo update-grub wirksam.
Damit die serielle Schnittstelle auch noch nach dem Bootloader benutzt wird, muss folgende Zeile in die /etc/inittab eingefügt werden [3]:
T0:23:respawn:/sbin/getty -L ttyS0 38400 vt100
Nun schreibt man die /boot/grub/menu.lst und die initrd neu:
sudo update-grub update-initramfs -u
Damit die serielle Schnittstelle auch noch nach dem Bootloader benutzt wird, muss die Datei /etc/init/ttyS0.conf ins Event-Handler-Verzeichnis von Upstart mit folgendem Inhalt erzeugt werden:
# ttyS0 - getty # # This service maintains a getty on tty1 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -8 38400 -L ttyS0

Um mit dem ALIX über die serielle Konsole zu kommunizieren, kann eines der folgenden Programme verwendet werden.
PuTTY verfügt über eine grafische Oberfläche und kann über das Menü gestartet werden. Alternativ kann man PuTTY auch direkt mit den richtigen Einstellungen starten:
putty -serial /dev/ttyS0 -sercfg 38400,8,n,1,X
Wenn man lieber mit der Konsole arbeitet oder gerade kein X-Server läuft, kann man das Programm screen verwenden. Eine Beschreibung dieses Programms würde den Rahmen des Artikels sprengen, daher wird hier auf den Artikel Screen verwiesen.
Der Befehl für das Verbinden mit einer seriellen Konsole lautet:
screen /dev/ttyS0 38400
In Notfällen helfen diese beiden Tastenkombinationen weiter:
Hilfe: Strg + A, ?
Beenden: Strg + A, K (Großbuchstabe!)
Minicom ist ein weiteres Terminalprogramm für die Konsole, das allerdings nicht immer wie gewünscht funktioniert. Um das Programm zu verwenden, muss das Paket
minicom
installiert werden [1]. Minicom wird nun mittels
sudo minicom -s
auf dem PC eingerichtet [2]. Hier stellt man Folgendes ein:
Einstellungen zum seriellen Anschluss --> A - Serieller Anschluss : /dev/ttyS0 --> E - Bps/Par/Bits : 38400 8N1
Jetzt werden die Einstellungen als Standardvorgabe (Default) gespeichert:
Speichern als »dfl
Bei den ALIX-Boards mit mehreren Netzwerkschnittstellen gibt es das Problem, dass diese nach jedem Neustart eine andere Bezeichnung erhalten. So kann es passieren, dass die Schnittstelle, die vorher den Namen eth0 hatte, nun die Bezeichnung eth1 erhält. Dies ist besonders wichtig, wenn die CF-Karte an einem PC installiert wurde. Um das Problem zu lösen, legt man eine neue udev-Regel an [7]. Hierfür erstellt man die Datei /etc/udev/rules.d/z24_own-net-rules.rules mit Root-Rechten.
In dieser Datei wird festgelegt, welche Bezeichnung für eine Netzwerkkarte verwendet wird. Dabei wird anhand der MAC-Adresse unterschieden. Die MAC-Adresse (Hardware Adresse) bekommt man wie folgt heraus:
ifconfig -a
Folgenden Inhalt sollte die Datei dann beispielsweise haben:
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:0d:b9:14:11:20", NAME="eth0"
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:0d:b9:14:11:21", NAME="eth1"
SUBSYSTEM=="net", DRIVERS=="?*", ATTRS{address}=="00:0d:b9:14:11:22", NAME="eth2"ALIX 2 und 3 Boards verfügen in der Regel über eine oder mehrere LEDs zur Signalisierung von internen Zuständen. Diese können über das /sys Dateisystem direkt aus allen Applikationen angesprochen werden unter der Voraussetzung, dass die dafür passenden Module geladen wurden. Da diese sich nicht im Standardumfang des Kernels befinden, müssen diese noch hergestellt werden. Ab Ubuntu 8.10 befinden sich die Quellcodes in den offiziellen Paketquellen, eine Installation ist daher unproblematisch durch Eingabe der folgenden Befehlssequenz zu erreichen[8]:
cd /usr/src apt-get -y install build-essential apt-get -y install leds-alix-source apt-get -y install linux-headers-$(uname -r) tar -xvjf leds-alix.tar.bz2 cd modules/leds-alix/ make make install cd /usr/src rm -rf /usr/src/modules apt-get --yes --purge remove linux-headers-$(uname -r) apt-get --yes --purge remove leds-alix-source apt-get --yes --purge remove build-essential apt-get --yes --purge autoremove apt-get clean
Da das Paket sich für ältere Ubuntu-Versionen nicht in den offiziellen Paketquellen befindet, dieses aber relativ unabhängig von der Kernelversion entwickelt ist, kann man z.B. auf Ubuntu 8.04 den Quellcode über http://packages.ubuntu.com/leds-alix-source
beziehen und die Module folgendermaßen kompilieren[8]:
sudo su pushd /usr/src wget -c http://de.archive.ubuntu.com/ubuntu/pool/universe/l/leds-alix/leds-alix-source_0.0.1-1_all.deb apt-get -y install build-essential apt-get -y install debhelper module-assistant apt-get -y install linux-headers-$(uname -r) dpkg -i leds-alix-source_0.0.1-1_all.deb tar -xvjf leds-alix.tar.bz2 cd modules/leds-alix/ make make install cd /usr/src rm -rf /usr/src/modules dpkg --purge leds-alix-source apt-get --yes --purge remove debhelper module-assistant apt-get --yes --purge remove linux-headers-$(uname -r) apt-get --yes --purge remove build-essential apt-get --yes --purge autoremove popd exit
Diese Befehlssequenz installiert einen große Menge Software, die in erster Linie dafür nötig ist, Module aus den Quelltexten zu kompilieren. Diese wird aber auch nach Erstellung der Module wieder vollständig vom System deinstalliert, so dass kein Speicherplatz auf dem Zielsystem verschwendet wird.
Damit alle möglichen Schalt- und Blink-Sequenzen mit den LEDs möglich sind, sollten zusätzlich zum Treiber-Kernel-Modul noch die Module für allgemeine LED-Aufgaben geladen werden:
sudo modprobe leds-alix sudo modprobe ledtrig-default-on sudo modprobe ledtrig-heartbeat sudo modprobe ledtrig-gpio sudo modprobe ledtrig-timer
Die Kernelmodule können zusätzlich in die Datei /etc/modules eingetragen werden, damit sie bei jedem Systemstart automatisch mit geladen werden. Nachdem die Module geladen wurden, gibt es im Verzeichnis /sys/class/leds/ drei neue Unterverzeichnisse. LEDs können nun manuell durch folgende Befehle beeinflusst werden:
LED1 einschalten:
sudo echo 1 > /sys/class/leds/alix\:1/brightness
LED1 ausschalten:
sudo echo 0 > /sys/class/leds/alix\:1/brightness
LED1 als Systemauslastungsanzeige - je mehr Systemauslastung, je schneller schlägt das Herz:
sudo echo heartbeat > /sys/class/leds/alix\:1/trigger
LED1 als Platten-Aktivitätsanzeige:
sudo echo ide-disk > /sys/class/leds/alix\:1/trigger
LED1 mit zeitgesteuertes Blinken - 1 Sekunde an, 5 Sekunden aus:
sudo echo timer > /sys/class/leds/alix\:3/trigger sudo echo 1000 > /sys/class/leds/alix\:3/delay_on sudo echo 5000 > /sys/class/leds/alix\:3/delay_off
Um die anderen beide LEDs zu schalten, wird die 1 in alix\:1 durch 2 bzw. 3 ersetzt. Quelle: ALIX LEDs 
Speziell bei den Varianten mit Award BIOS (ALIX3C3, ALIX3D3) sollte kontrolliert werden, ob ein BIOS Update verfügbar ist.
Falls beim Einbinden des Dateisystem die Fehlermeldung auftritt, dass der letzte Mount-Zeitpunkt in der Zukunft liegt, kann es daran liegen, dass keine RTC-Batterie vorhanden ist (z.B. ALIX2D2). Für dieses Problem existieren (mindestens) zwei mögliche Lösungen:
Zum einen lassen sich mittels tune2fs alle zeitbasierten Checks ausschalten:
sudo tune2fs -i 0 <device>
Zum anderen kann e2fsck mit einem Konfigurationsfile unter /etc/e2fsck so konfiguriert werden, dass zeitbasierte Checks ignoriert werden. Hierzu ist es jedoch notwendig, dass initramfs diese Datei in die initram integriert. Ansonsten wird die Datei beim Booten nicht gefunden, da das Dateisystem ja noch nicht gemounted ist. Die Konfigurationsdatei muss unter der Sektion [options] die Option broken_system_clock enthalten
[options]
broken_system_clock = 1Um die Konfigurationsdatei in das initramfs-Image aufzunehmen benötigt man folgendes ausführbares Skript in /etc/initramfs-tools/hooks/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #!/bin/sh # # Initramfs-tools hook script # # Copyright 2006 Tim Dijstra <tim@famdijkstra.org> # Released under GPLv2 PREREQ="" prereqs() { echo "$PREREQ" } case $1 in prereqs) prereqs exit 0 ;; esac . /usr/share/initramfs-tools/hook-functions [ -f /etc/e2fsck.conf ] && mkdir -p ${DESTDIR}/etc && cp /etc/e2fsck.conf ${DESTDIR}/etc/e2fsck.conf |
Mittels des update-initramfs-Befehls wird das bestehenden initramfs-Image aktualisiert:
sudo update-initramfs -u
ALIX - Wikipedia
ALIX-Boards
und ALIX
- allgemeine Infos und Tipps
Tronico.net und Alix-board.de
- Bezugsquellen
Debian auf dem PCEngines Alix 2c3/2d3
- u.a. Hinweise zur PXE-Installation
Voyage Linux
- spezielle Linux-Distribution für x86 Embedded Systems
AskoziaPBX
- Asterisk auf ALIX-Boards
Debian Installationshilfe
für den Vorgänger WRAP
Diese Revision wurde am 21. Juni 2011 um 07:45 Uhr
von leo.moll erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet:
Hardware, Netzwerk, Server, Router, ungetestet
2004 – 2011 ubuntuusers.de • Einige Rechte vorbehalten