Anleitung
Banana Pi R1 als Router im Eigenbau
In der Router-Klasse um 100 Euro ist der Banana Pi R1 (Router One) den fertigen Modellen überlegen: Mehr Leistung, mehr Speed, mehr Funktion und - dank Linux - eine einfachere Konfiguration. Unser Workshop zeigt Schritt für Schritt, wie Sie den Banana Pi Router einrichten.

An einem Lehrstuhl der Universität Shenzen entstand ein Projekt namens Banana Pi, das das Platinenlayout des Raspberry Pi und dessen Schnittstellenanordnung weitgehend beibehielt, aber mit einem GByte RAM, einer Zweikern-CPU, Gigabit-Ethernet und SATA mehr Freiheit verspricht. Uns hat angesichts der mittlerweile guten Softwareunterstützung insbesondere die Router-Variante interessiert.
Die Bestückung dieses Banana-Pi-Router-Boards entspricht weitgehend dem klassischen Banana Pi. Als zusätzliche Hardware ist ein Realtek 8192CU Ethernetchip verlötet, der über die USB-Schnittstelle angebunden ist. Die fünf Ethernet-Ports werden von einem Broadcom Managed Switch bereitgestellt - dessen Konfiguration erfordert etwas Aufmerksamkeit, dazu später mehr.

Vergleicht man die Hardware des Banana Pi R1 mit typischen DSL-Routern der Preisklasse 60 bis 100 Euro, fallen sofort massive Unterschiede auf. Als CPU verwenden die meisten klassischen Router MIPS-Prozessoren, die in der Regel zwischen 400 und 600 MHz getaktet sind - mit einen Zweikern-ARMv7 ist der Banana PI um ein Vielfaches flotter unterwegs. Der Arbeitsspeicher typischer DSL-Router liegt zwischen 64 und 128 MByte - einige Geräte müssen sogar mit 32 MByte auskommen. Sollten die 1.024 MByte des Banana Pi mal nicht ausreichen, kann auch Auslagerungsspeicher auf SD-Karte oder besser SATA genutzt werden.
Auch beim Massenspeicher hat der Banana Pi einiges zu bieten: Die μSD-Karte nimmt bis zu 32 GByte auf, bei typischen Routern sind bereits 32 MByte Luxus. Hinzu kommt der Vorteil der entnehmbaren Speicherkarte: Hat man aus Versehen eine Konfiguration falsch gesetzt, entnimmt man die Speicherkarte und bearbeitet die fehlerhafte Konfigurationsdatei am PC. Von Vorteil fürs Debugging ist die Möglichkeit, per HDMI einen Monitor und per USB eine Tastatur anzuschließen. Die Ersteinrichtung des Routers ist so noch ohne Netzwerk möglich.
Zwei interessante Betriebssysteme: OpenWRT und Bananian
Ein weiterer Vorteil des Banana Pi gegenüber dem Raspberry Pi ist die Verwendung des ARMv7-Prozessors, den viele Linux-Distributionen mittlerweile unterstützen, weil er als Brücke zur Portierung auf Tablets und sparsame Server dient. Programmierer, die ein vorhandenes Linux auf Banana Pi portieren wollen, müssen lediglich den Bootloader anpassen und einen individuell abgestimmten Kernel bauen. Der Portierungsaufwand ist deutlich geringer als für den ARMv6, wo alle vorhandenen Pakete neu kompiliert werden müssen.
Entsprechend groß ist mittlerweile die Zahl der für den Banana Pi verfügbaren Distributionen. Aufgrund der nicht immer vorhandenen Unterstützung für den Managed Switch raten wir davon ab, eine beliebige Distribution für den regulären Banana Pi auf dem Router-Board auszuprobieren.

Derzeit liegen aber drei offizielle Systeme für das Routerboard vor. Das erste ist ein Android. Kaum jemand dürfte aber einen Router am Fernseher konfigurieren wollen, zudem ist die Zahl der Routerapps und deren Funktionsumfang stark begrenzt. Für den Hausgebrauch weit interessanter ist die Portierung von OpenWRT, einem auf den Einsatz auf Routern und Accesspoints fokussierten Linux, das bereits mit 32 MByte RAM und 4 MByte Flash typische Router-Funktionalität inklusive Webfrontend bereitstellen kann.
Daneben existiert mit Bananian eine Debian-basierte Linux-Distribution. Im Gegensatz zu Raspbian für den Raspberry Pi nutzt Bananian die Paket-Repositories des Debian-Projektes und hält mit eigenem Kernel und eigener Basiskonfiguration die Unterschiede zum regulären Debian-System so gering wie nötig.
Welches der beiden Systeme Sie einsetzen sollten, hängt letztlich von zwei Faktoren ab: Wie schnell soll die Router-Funktionalität bereitstehen? Und welche Erweiterungen sind geplant? Soll nur ein DSL-Router mit WLAN-Accesspoint und grundlegender NAS- oder Druckerspooler-Funktion aufgesetzt werden, führt OpenWRT am schnellsten zum Ziel. Ist mittelfristig auch geplant, die GPIO-Pins (General Purpose Input Output) zu verwenden, beispielsweise zur Ansteuerung von Funksteckdosen, sollten Sie zu Bananian greifen. Im Zweifel: Eine zweite μSD-Karte kostet nur wenige Euro und ermöglicht es, OpenWRT produktiv einzusetzen und an Debian zu basteln.
Loslegen mit OpenWRT

Für erste Experimente empfehlen wir das unter bananapi.com erhältliche Image von OpenWRT. Bei Redaktionsschluss lag die Version vom 13. Januar 2014 vor, die bereits auf die Hardware des R1 samt Switch und Accesspoint fertig konfiguriert war. Folglich ist eine komfortable Einrichtung per Webinterface möglich, komplexere Aufgaben können per SSH eingestellt werden. Um das nur 70 MByte große Image zu installieren, verwenden Sie einen USB-SD-Adapter - die internen SD-Slots vieler Notebooks funktionieren leider nicht - und die Software Win32DiskImager, Linuxer greifen zur Kommandozeile:
dd if=openwrt.im of=/dev/sdxsync
Nach der Installation enthält die SD-Karte eine Boot- und eine Systempartition, insgesamt sind nur die ersten 70 MByte belegt. Die SD-Karte wird nun in den SD-Slot des R1 gesteckt, der per FTDI-Adapter mit einem PC verbunden sein sollte (siehe Kasten). Das Blinken der grünen LED signalisiert nun den Bootvorgang. Nach etwa einer Minute (beim ersten Start werden die SSH-Schlüssel erstellt) sollte ein WLAN namens OpenWRT auftauchen. Wenn Sie Ihren Computer mit diesem WLAN verbinden, können Sie anschließend auf http://10.0.1.1/ zugreifen und sich als root mit dem Passwort root anmelden.
Da OpenWRT den DHCP-Server auch auf dem LAN-Interface (Vierportswitch) startet, können Sie auch per Ethernet eine direkte Verbindung zwischen PC und R1 herstellen. Ist dies nicht möglich, hilft die zeitweise Vergabe einer statischen IP-Adresse aus demselben Netz (beispielsweise 10.0.1.2, Netzmaske 255.255.255.0), um auf das Routerboard zugreifen zu können.
Für die Nachinstallation von Paketen gehen Sie bitte vor wie in den auf der Downloadseite verlinkten Release Notes beschrieben.
Mehr Power mit Debian
Eine andere Hausnummer hinsichtlich Paketumfang, Funktionalität, aber auch Konfigurationsaufwand ist Debian in Form von Bananian. Das Image ist entpackt satte zwei GByte groß. Falls Sie Bananian von bananian.org heruntergeladen haben, ist es erforderlich, nach dem ersten Start in der Datei /etc/network/if-pre-up.d/swconfig die Zeile
exit 0
zu entfernen und die /etc/network/interfaces so anzupassen, dass die beiden vom Switch bereitgestellten virtuellen Schnittstellen eth0.101 und eth0.102 per DHCP oder mit statischer IP-Adresse konfiguriert werden. Beide Konfigurationsdateien finden Sie auf Heft-DVD (5/2015) und im GitHub-Archiv des Autors. Wenn Sie das von uns auf der Heft-DVD beigelegte Bananian-Image verwenden, entfällt diese Anpassung: Wir haben auf dem Vierport-Switch die statische IP-Adresse 192.168.3.1 vergeben (Netzmaske 255.255.255.0) und auf dem WAN-Port den DHCP-Client aktiviert. Nach dem Aufspüren des R1 im lokalen Netz können Sie zunächst mit
bananian-hardware
die Default-Hardware auf Lamobo R1 setzen und nach einem Neustart mit
apt-get update
die Paketlisten aktualisieren und beispielsweise mit
apt-get install hostapd
die Accesspoint-Funktionalität nachinstallieren. Unsere Netzwerkkonfiguration ist eine brauchbare Ausgangskonfiguration für einen Accesspoint mit NAS- und Medienserver, für die volle DSL-Routerfunktionalität müssen Sie pppoe und den isc-dhcp-server nachinstallieren. Dank HDMI-Port stehen Ihnen sogar grafische Applikationen zur Verfügung, kein Muss auf einem DSL-Router, aber eine nette Kleinigkeit, wenn man Wartungsarbeiten in einer komfortablen Umgebung durchführen möchte.

Potenzial in der Hausautomation
Die Auswahl, Installation und Konfiguration des richtigen Linux kann nur ein erster Schritt sein. Mit seinen 26 GPIO-Pins und Foliensteckern für Kamera und Display bietet der Banana Pi R1 enorme Erweiterungsmöglichkeiten. Der Display-Connector kann beispielsweise dazu benutzt werden, ein 800x480-Pixel-LCD für Status-Informationen anzuschließen. Noch vielfältiger sind die Möglichkeiten der GPIO-Pins. Wie wäre es mit einer Ampel aus LEDs, die den Status der aktuellen Internetverbindung anzeigt: Grün für Alles OK, Gelb für Verbindung steht, ist aber langsam und Rot für Keine Verbindung, dazu vielleicht eine per Servo ausgeführte Analoganzeige, bei der ein Zeiger die aktuell genutzte Bandbreite visualisiert.
Jenseits dieser Spielereien gibt es aber auch ganz handfestes Potenzial. Per I²C-Bus ist es möglich, die Kommunikation mit einem Arduino oder anderen Microcontrollern aufzubauen und so beispielsweise Funksteckdosen zu schalten, im Haus verteilte Sensoren auszulesen oder eine E-Mail zu verschicken, wenn das letzte Bluetooth-Smartphone soeben das Haus verlassen hat, aber noch ein Fenster offen steht.
Fazit
Der Banana Pi R1 ist ganz zweifellos ein interessantes Produkt mit einem großen Potenzial. Die Hardware ist ausgewogen, auch wenn die per USB angebundene und nicht ac-fähige WLAN-Karte nicht der Weisheit letzter Schluss ist. Leider hinkt derzeit die Software etwas hinterher: OpenWRT ist trotz Entwickler-Release Chaos Chalmer zwar gut nutzbar, doch noch fehlt die Unterstützung einer HDMI-Konsole. Und es ist nicht absehbar, ob OpenWRT die GPIO-Schnittstelle unterstützen wird. Wer einfach nur einen Router mit schneller NAS und vielen Konfigurationsmöglichkeiten aufsetzen möchte, fährt damit aber gut.
Soll das volle Potenzial ausgeschöpft werden, ist der Griff zu Debian/Bananian unvermeidlich. Wer bereit ist, den Router als Projekt zu sehen und die Funktionalität nach und nach auszubauen, dürfte damit lange Spass haben und immer neue Anregungen finden.