weidner/computer/hardware/

PCEngines ALIX 2D3

Neulich habe ich mir so ein Teil geholt. Mit 5 Watt elektrischer Leistung, einem AMD Geode LX 800 Prozessor, 3 10/100 MBit/s Ethernet-Schnittstellen und einer seriellen Console erschien mir das ideal als DSL-Router den ich mit einem Standard-Debian-Linux betreiben kann.

Der Rechner kann mit einer Notebook-Festplatte oder einer bootfähigen CompactFlash(CF)-Karte betrieben werden.

Serielle Console ansprechen

Die serielle Console arbeitet per Werkseinstellung mit 38400 Baud und 8 Datenbits. Hardwareflusssteuerung kann man abschalten. Zur Verbindung mit dem Arbeitsplatzrechner reicht ein Nullmodemkabel (eventuell braucht man noch einen USB-Seriell-Wandler).

Von Linux aus kommt man z.B. mit Minicom an die Console oder mit dem Program screen:

screen /dev/ttyUSB0 38400

Installation des Betriebssystems

Als der Rechner kam (Gehäuse, Board und Netzteil jeweils einzeln bestellt) und zusammengebaut war, hatte er nur das TinyBIOS zur Verfügung, das kein Betriebssystem auf meiner alten CF-Karte fand. Eine Option wäre gewesen, das Betriebssystem auf einem anderen Rechner zu installieren, die Karte bootfähig zu machen, und damit anzufangen. Das wollte ich nicht, da ich die Karte zum Testen immer umstecken müsste. Stattdessen wollte ich die Installation via Netboot versuchen.

Rechner für Netboot vorbereiten

Es gibt zwei Möglichkeiten, dass der Rechner über das Netz (PXE) bootet:

  1. Beim Speichertest drückt man an der Console 'n'.
  2. Beim Speichertest drückt man 's', gelang in das Setup und schaltet dort mit 'e' um PXE-Boot dauerhaft ein- bzw. auszuschalten.

Da der Speicher sehr schnell durchgezählt ist, entschied ich mich für die Installation PXE-Boot im Setup dauerhaft einzustellen.

DHCP-Einstellungen

Beim PXE-Boot sucht der Rechner über die angeschlossene Netzwerkkarte zunächst via DHCP nach seinen IPv4-Einstellungen, und bekommt den Server mitgeteilt, der ihm sein Boot-Image liefern kann. Die relevanten einstellungen sehen ungefähr so aus:

host alix {
      ...
    hardware ethernet 00:0d:b9:21:71:5c;
    server-name tftpserver;
    next-server tftpserver;
    filename "pxelinux.0";
}

PXE-Boot

Die Datei pxelinux.0 (von syslinux) wird geladen und der Rechner startet davon. Anschließend sucht die Software auf dem TFTP-Server nach einer passenden Konfigurationsdatei (pxelinux.cfg/01-00-0d-b9-21-71-5c)

# eth0: 00:0d:b9:21:71:5c
#
SERIAL 0 38400 0
DEFAULT install
LABEL install
      kernel debian-installer/i386/linux
      append vga=normal initrd=debian-installer/i386/initrd.gz -- console=ttyS0,38400n80

Damit lädt Syslinux den Kernel debian-installer/i386/linux mit den Parametern vga=normal initrd=debian-installer/i386/initrd.gz -- console=ttyS0,38400n8, so dass anschließend der Debian-Installer über die serielle Console bedient werden kann.

Der Rest ist mehr oder weniger Standard-Installation von Debian. Interessant ist es das Root-Filesystem read-only einzuhängen, um den Rechner einfach ausschalten zu können ohne das das Betriebssystem runtergefahren werden muss.

Wichtig ist, am Ende den PXE-Boot am ALIX 2D3 wieder auszuschalten, da ihm sonst ein anderes Betriebssystem sehr einfach untergeschoben werden kann.

Posted 2011-04-01
Tags: