Debian auf dem WRAP-Board: Mein Router aus einer CF-Karte
Zusammenfassung
Im September 2006 lief mein Heimnetz über ein WRAP-Board von PC Engines: ein lüfterloser Kleinrechner mit 266-MHz-Geode-CPU, drei Netzwerkanschlüssen und einer CompactFlash-Karte statt Festplatte. Darauf habe ich Debian Sarge per debootstrap installiert und das Board über die serielle Konsole eingerichtet. Dieser Beitrag aus meinem alten Blog zeigt die Schritte und Konfigurationsdateien von damals und was man heute anders machen würde.
Das Board
Das WRAP (Wireless Router Application Platform) von PC Engines war um 2006 das Lieblingsspielzeug vieler Bastler, die einen Router selbst bauen wollten. Herz war eine AMD Geode SC1100 mit 233 oder 266 MHz, dazu 64 oder 128 MB Arbeitsspeicher, je nach Variante bis zu drei Ethernet-Anschlüsse mit National-DP83816-Chips und Steckplätze für Mini-PCI-Karten. Eine Festplatte gab es nicht: System und Programme liefen von einer CompactFlash-Karte.
Das Board brauchte nur etwa 3 bis 5 Watt bei 12 Volt, hatte keinen Lüfter und einen Watchdog in der CPU. Eine Grafikkarte fehlte ebenfalls, eingerichtet wurde alles über die serielle Schnittstelle. Genau das machte es zu einem dankbaren Router: einmal eingerichtet, lief es monatelang durch. Bei meinem Lasttest im Dezember 2006 meldete es 97 Tage Laufzeit.
Debian auf die CF-Karte
Statt eines fertigen Router-Systems wollte ich ein vollwertiges Debian, damals Version 3.1 „Sarge“. Der Trick: Das System entsteht am normalen Rechner mit debootstrap auf der CF-Karte im Kartenleser und wird erst danach ins Board gesteckt. Eine Karte mit 256 MB reichte.
# CF-Karte im Kartenleser partitionieren
fdisk /dev/sda
# ext2: kein Journal, damit die Karte weniger Schreibzugriffe abbekommt
mkfs.ext2 /dev/sda1
mkdir /mnt/sda1
mount /dev/sda1 /mnt/sda1
# Debian-Grundsystem auf die Karte schreiben
debootstrap --arch i386 sarge /mnt/sda1 http://ftp.freenet.de/debian/
# in die neue Umgebung wechseln
chroot /mnt/sda1 /bin/bash
mount /proc
base-config
# Kernel und Bootloader
apt-get install linux-image-2.6.12-1-386 lilo
vi /etc/inittab /etc/fstab /etc/modules /etc/lilo.conf
lilo
umount /proc
exit
umount /mnt/sda1Danach kam die Karte ins WRAP, und alles Weitere, etwa die Netzwerkkonfiguration, lief über die serielle Konsole.
Die Konfigurationsdateien
Vier Dateien musste ich anpassen. Im Board heißt die CF-Karte nicht mehr /dev/sda wie im Kartenleser, sondern /dev/hda, weil sie dort am IDE-Anschluss hängt. Deshalb steht in der lilo.conf beides: boot=/dev/sda für die Installation am PC und root=/dev/hda1 für den Start im Board. Die Kernelzeile leitet die Konsole auf die serielle Schnittstelle um.
# /etc/lilo.conf
boot=/dev/sda
root=/dev/sda1
compact
prompt
timeout=50
map=/boot/map
image=/boot/vmlinuz-2.6.12-1-386
label="Linux 2.6.12"
initrd=/boot/initrd.img-2.6.12-1-386
append="console=ttyS0,38400"
root=/dev/hda1
# /etc/fstab
proc /proc proc defaults 0 0
/dev/hda1 / ext2 defaults,errors=remount-ro 0 1
# /etc/modules
natsemi
ohci-hcd
usb-storage
# /etc/inittab (Auszug): Login auf der seriellen Schnittstelle
T0:23:respawn:/sbin/getty -L ttyS0 38400 vt100natsemi ist der Treiber für die DP83816-Netzwerkchips, ohci-hcd und usb-storage brauchte ich für die USB-Platte. In der inittab war der Login auf ttyS0 aktiv, damit ich das Board auch ohne Netz erreichen konnte; Kernel und Login nutzten dieselben 38.400 Baud.
Mein Netz um 2006
Am Ende hatte das WRAP drei Aufgaben. eth0 baute per PPPoE die Verbindung zum DSL-Modem auf. eth1 war das interne LAN mit meinen Arbeitsrechnern. An eth2 hing ein handelsüblicher DSL-Router, der nur ein unverschlüsseltes WLAN aufspannte; geschützt war diese Strecke ausschließlich durch OpenVPN, dessen Server auf dem WRAP lief.
Über USB hing außerdem eine mit AES-256 verschlüsselte Festplatte am Board, deren Daten per Samba und NFS ins interne Netz und in den VPN-Tunnel gingen. Daneben liefen dnsmasq für DNS und DHCP, ein SNMP-Dienst für meine Statistiken, Privoxy und ein Tor-Knoten. Wie viel davon gleichzeitig ging, zeigt der Lasttest vom Dezember 2006.
Was sich seitdem geändert hat
Das WRAP ist längst Geschichte. PC Engines führt es als abgekündigt, weil die SC1100-CPU nicht mehr zu bekommen ist. Die Nachfolger ALIX und APU haben sich bei Bastlern und als Firewall-Hardware für pfSense und OPNsense einen ähnlichen Ruf erarbeitet. Im April 2023 kündigte PC Engines aber auch das Ende der APU-Reihe an: AMD nahm letzte Bestellungen für den Prozessor bis Ende Juni 2023 an, ausgeliefert wurde bis Juni 2024. Der Gründer schrieb, nach rund 20 Jahren WRAP, ALIX und APU sei es Zeit für etwas anderes.
Heute würde ich für dieselbe Aufgabe entweder ein Gerät mit OpenWrt nehmen oder einen sparsamen x86-Mini-PC mit OPNsense. Statt CF-Karte gibt es eMMC oder SSD, statt lilo GRUB oder systemd-boot, statt Sarge und Kernel 2.6.12 ein aktuelles Debian. Die Grundidee ist aber dieselbe geblieben: ein kleines, stromsparendes Gerät, das man selbst vollständig versteht.
Zahlen im Überblick
- WRAP-Boards: AMD Geode SC1100 mit 233 oder 266 MHz, 64 oder 128 MB RAM, CompactFlash als Speicher.
- Leistungsaufnahme laut PC Engines etwa 3 bis 5 Watt bei 12 Volt, ohne Mini-PCI-Karten.
- Installiert wurde Debian 3.1 „Sarge“ mit Kernel 2.6.12 und lilo, Konsole über ttyS0 mit 38.400 Baud.
- Eine CF-Karte mit 256 MB reichte für das Grundsystem.
- PC Engines beendete 2023 auch die APU-Reihe; Auslieferungen liefen bis Juni 2024.
Referenzen
- bk99.de 2006: Sarge@WRAP Board (Webarchiv)
- PC Engines: WRAP (Produktseite, abgekündigt)
- PC Engines: Ende der APU-Reihe (2023)
- Debian-Wiki: debootstrap
- Kuratierter Beitrag: Ein DIY-Router mit OPNsense
- Eigener Beitrag: OpenVPN über WLAN auf dem WRAP unter Last
Bemerkungen
- Dieser Beitrag stand ursprünglich am 5. September 2006 in meinem alten Plone-Blog und wurde zuletzt 2009 bearbeitet. 2026 habe ich ihn aus dem Webarchiv geholt, sprachlich überarbeitet und um Hintergründe ergänzt. Die Befehle und Dateien sind die von damals.
- Die Fotos des Boards aus meiner alten Galerie sind im Webarchiv nicht erhalten.
Links zur Originalquelle und zum Webarchiv öffnen einen neuen Tab.