Aus Linux-Magazin 06/2010

Open WRT auf dem Ben Nanonote

© Ablestock Premium, 123RF.com

Offene Hard- und Software: Der Winz-Rechner Ben Nanonote mit Open-WRT-Betriebssystem lädt Tüftler dazu ein, das kleine Gerät mit immer mehr Features aufzupeppen. In diesem Artikel gibt\’s neue Firmware und WLAN, wobei sich das ausgewachsene Buildsystem nützlich macht .

Der Westentaschen-Computer Ben Nanonote von Qi-Hardware [1] stellt eindrucksvoll unter Beweis, dass sich das Open-Source-Prinzip auch auf Hardware ausweiten lässt: Pläne, Designs und weitere Dokumente sind frei zugänglich. Mit der Linux-Distribution Open WRT kommt noch im Quelltext verfügbare und erweiterbare Software hinzu – ein Traum für jeden Bastler.

Abbildung 1: Das handliche Ben Nanonote mit Open WRT. Das Betriebssystem kann der Anwender anpassen, beispielsweise mit einem eigenen Logo.

Abbildung 1: Das handliche Ben Nanonote mit Open WRT. Das Betriebssystem kann der Anwender anpassen, beispielsweise mit einem eigenen Logo.

Ist das süß!

Das Nanonote kostet im Versandhandel [2] rund 120 Euro. In dem kleinen schwarzen Gerät (Abbildung 1) steckt der MIPS-kompatible Xburst-Prozessor JZ4720 von Ingenic mit 366 MHz Taktrate. Daneben besitzt der Kleinstrechner 32 MByte DRAM, 2 GByte NAND-Flashspeicher und ein 3-Zoll-Display. Die Auflösung von 320 mal 240 Pixel lässt 40 mal 15 Zeichen in einer Textkonsole zu. Eine vollwertige, wenn auch gewöhnungsbedürftige Querty-Tastatur mit 59 Tasten dient der Eingabe von Kommandos. Als weitere Ausstattung gibt es einen Mini-USB-Port, einen 3,5-mm-Audio-Ausgang sowie Mikrofon und Lautsprecher.

Im Auslieferungszustand bietet das Gerät keinen unabhängigen Zugang zum Internet. Per USB kann es allerdings einen anderen Rechner als Gateway benutzen. Daneben lässt es sich über den Micro-SDHC-Slot mit einem WLAN-Modul ausrüsten. Beides wird dieser Artikel näher erläutern. Außerdem verfügt das Nanonote über eine serielle Schnittstelle, die sich zeigt, wenn man das Batteriefach öffnet (Abbildung 2).

Abbildung 2: Im Batteriefach befindet sich nicht nur die Stromversorgung: Dort gibt es auch Zugriff auf die Kontakte für eine serielle Schnittstelle.

Abbildung 2: Im Batteriefach befindet sich nicht nur die Stromversorgung: Dort gibt es auch Zugriff auf die Kontakte für eine serielle Schnittstelle.

Es geht los

Nach dem Einschalten des Nanonote erscheint auf dem LCD-Display zunächst das Logo der installierten Open-WRT-Distribution, die nicht nur für den Betrieb von Linksys-Routern geeignet ist. Nach 20 Sekunden sieht der Anwender den Root-Prompt der Busybox-Konsole, auf der er gängige Linux-Kommandos wie »ls« oder »Ifconfig« eingeben kann. Wer mehr aus dem Nanonote herausholen möchte, schließt es per USB an einen Linux-Rechner an. Mit folgenden Kommandos wird der PC zum Internet-Gateway:

ifconfig eth0 PC-IP-Adresse;
sysctl -w net.ipv4.ip_forward=1;
iptables -A POSTROUTING -t nat -d 0/0 -j MASQUERADE;

Auf dem Nanonote muss die Datei »/etc/config/network« wie in Listing 1 aussehen, im Feld für das Gateway steht die Adresse des Linux-PC. Nach einem »ifup lan« auf dem Nanonote sollte sich das Gerät pingen lassen und den Zugang über Telnet erlauben.

Zur Software-Installation dient das Tool Opkg. Da Open WRT in einigen Zügen auf Debian basiert, erinnert dessen Bedienung stark an Dpkg: Das Kommando »opkg update« aktualisiert die Paketliste, »opkg list | grep Paketname« dient zum Suchen und »opkg install Paketname« installiert ein Paket.

Listing 1:
»/etc/config/network«

01 config interface lan
02  option ifname usb0
03  option proto  static
04  option ipaddr  IP-Adresse
05  option dns  Nameserver-Adresse
06  option gateway  PC-IP-Adresse
07  option netmask  255.255.255.0

Image-Update

Standardmäßig liefert der Hersteller Qi-Hardware das Gerät mit einem von ihm modifizierten Open-WRT-Image aus. Von Zeit zu Zeit stellt das Unternehmen auch aktualisierte Images bereit [3]. Sie enthalten in der Regel Verbesserungen für die Hardware-Unterstützung und aktualisierte Software. Für ein Update des Geräts sind auf dem PC die Xburst-Tools [4] und das Shellskript »reflash-ben.sh« [5] zu installieren.

Für das Firmware-Update entnimmt man den Akku aus dem Nanonote und schließt das Gerät mit dem mitgelieferten USB-Kabel an einen Rechner an. Der Anschluss des USB-Kabels sollte für diesen Zweck direkt und nicht über einen Hub oder dergleichen erfolgen, sonst kann es zu schwer nachvollziehbaren Fehlern kommen.

Gleichzeitiges Gedrückthalten des Einschaltknopfs und der Taste [U] für mindestens 4 Sekunden versetzt das Gerät in den USB-Bootmodus. Durch diesen Griff kann man sich übrigens das in anderen Anleitungen beschriebene Kurzschließen der USB-Bootpins im Batteriefach (Abbildung 2) sparen. Das LCD-Display bleibt in dieser Stufe noch schwarz.

Nun ruft der Benutzer auf dem Linux-PC das Skript »reflash_ben.sh« mit Root-Rechten auf. Das Skript sollte jetzt Fortschrittsmeldungen über das Booten und Beschreiben des Flashspeichers ausgeben. Danach darf man das Kabel abziehen. Das nächste Gedrückthalten des Einschaltknopfs sollte das Gerät wieder zum Booten bewegen. Leider muss der Nanonote-Besitzer nach einem solchen Update die oben beschriebe Netzwerkkonfiguration erneut vornehmen.

Listing 2: Benötigte
Pakete

build-essential binutils flex bison autoconfgettext texinfo  sharutils subversionlibncurses5-dev ncurses-term zlib1g-dev

Selbst gebaut

Wem die von Qi-Hardware angebotenen Images nicht zusagen oder wer wissen möchte, wo der Hersteller noch trickst, der kann selbst ein Image erstellen. Das ermöglicht eigene Modifikationen nach Wunsch. Zunächst sind einige Pakete auf dem PC zu installieren, unter Debian entsprechen die Paketnamen Listing 2. Das folgende Kommando holt die neueste Open-WRT-Release namens Backfire aus dem Subversion-Repository:

svn co svn://svn.openwrt.org/openwrt/branches/backfire ~/backfire

Ebenso ist eine Anpassung der Datei »~/backfire/feeds.conf.default« erforderlich. Sie sollte die Einträge aus Listing 3 enthalten. Damit sind die Feeds »qipackages« und »desktop« hinzugefügt. Pakete, die Qi-Hardware extra bereitstellt, sind nach dem Checkout des Feed verfügbar. Dazu sind folgende Kommandos notwendig:

~/backfire/scripts/feeds update -a
~/backfire/scripts/feeds install -a

Die Basiskonfiguration (Software, Kernelmodule und Architektur) für das eigene Image lässt sich einfach vom Hersteller übernehmen:

wget "http://downloads.qi-hardware.com/software/images/Ben_NanoNote_2GB_NAND/latest/config" -O ~/backfire/.config

Nun kann die Buildchain mit ihrer Arbeit beginnen. Das Kommando »make IGNORE_ERRORS=m V=99« stößt den Build an. Das fertige Image und die Pakete sind anschließend unter »bin/xburst« zu finden. Wer dieses Verzeichnis über HTTP freigibt, muss nur noch im Skript »reflash_ben.sh« die neue Adresse eintragen. Zum Hinzufügen oder Verändern weiterer Module sind die Kommandos »make menuconfig« und »make kernel_menuconfig« gedacht.

Listing 3:
»feeds.conf.default«

01 src-svn packages svn://svn.openwrt.org/openwrt/packages
02 src-svn xwrt http://x-wrt.googlecode.com/svn/branches/backfire_10.03/package
03 src-svn luci http://svn.luci.subsignal.org/luci/tags/0.9.0/contrib/package
04 src-git qipackages git://projects.qi-hardware.com/openwrt-packages.git
05 src-svn desktop svn://svn.openwrt.org/openwrt/feeds/desktop

Anpassungen

Wer bestimmte Dateien im Ziel-Image vorgeben möchte, legt sie unter »target/linux/xburst/base-files/« ab. So muss er beispielsweise nicht nach jedem Flashen die Netzwerk-Konfiguration anpassen. Das gilt auch für das Einbinden des eigenen Repository für die selbst erstellten Pakete. Dazu ändert der Open-WRT-Tüftler die Datei »target/linux/xburst/base-files/etc/opkg.conf« wie in Listing 4 gezeigt. Zeile 1 enthält den Eintrag für das offizielle Backfire-Repository.

Listing 4:
»opkg.conf«

01 #src/gz packages http://downloads.openwrt.org/backfire/10.03/xburst/packages
02 src/gz own http://<I>Buildhost-IP<I>/wrt/xburst/packages/
03 dest root /
04 dest ram /tmp
05 lists_dir ext /var/opkg-lists
06 option overlay_root /overlay

Grafik nach Wunsch

Die Grafik beim Bootvorgang lässt sich an persönliche Vorlieben anpassen (Abbildung 1). Unter »~/backfire/target/linux/xburst/patches-2.6.32« findet sich zu diesem Zweck das Patch »900-add-openwrt-logo.patch«. Die Datei, die das Logo enthält, heißt »linux-2.6.32.10/drivers/video/logo/logo_openwrt_clut224.ppm«. Beim Anpassen des Patch hilft das Buildsystem. Das folgende Kommando packt den Linux-Kernel neu aus und wendet alle Patches an:

make target/linux/{clean,prepare} V=99 QUILT=1

Nun wechselt der Benutzer in das Verzeichnis »build_dir/linux-xburst_qi_lb60/linux-2.6.32.10/drivers/video/logo« und ersetzt die Logo-Datei. Der Befehl »quilt refresh« aktualisiert das Patch. Nach einem Wechsel nach »~/backfire« aktualisiert »make target/linux/update V=99« das Patch unter »~/backfire/target/linux/xburst/patches-2.6.32«.

Ein anschließendes »make V=99« baut alles neu. Nach dem Aufspielen des neuen Image erscheint das angepasste Logo während des Bootvorgangs. Die Option »V=99« schaltet übrigens das Debugging beim Build an.

Abbildung 3: WLAN-Funktionalität lässt sich beim Nanonote über den Micro-SD-Slot nachrüsten. Daneben sind aber noch Treiber und Firmware erforderlich.

Abbildung 3: WLAN-Funktionalität lässt sich beim Nanonote über den Micro-SD-Slot nachrüsten. Daneben sind aber noch Treiber und Firmware erforderlich.

Endlich: WLAN

Dass das Nanonote in der Standardausführung weder WLAN, Bluetooth noch UMTS besitzt, trübt die Freude an dem originellen Gerät. Zum Glück gibt es seit Kurzem eine Micro-SD-WLAN-Karte mit dem KS7010-Chip von Keystream. Für diese Karte sind seit Oktober 2009 sowohl Treiberquellen [6] unter der GPL als auch die binäre Firmware 0.2f [7] verfügbar. Um ganz genau zu sein: Es handelt sich um die “Spectec SDW-823 MicroSD (SDIO) Wi-Fi card” (Abbildung 3), erhältlich etwa unter [2] oder bei Expansys [8] für rund 80 Euro.

Es gibt zwei Wege, die WLAN-Karte in Betrieb zu nehmen: Erstens kann der Anwender zu einem aktuellen Image des Nanonote-Herstellers [3] greifen, das den Treiber bereits enthält. Qi-Hardware liefert aber aus rechtlichen Gründen die benötigte binäre Firmware nicht mit. Daher muss er noch diese Dateien aus dem Git-Zweig Open-WRT-Xburst [9] kopieren, denn das freie Projekt traut sich die Firmware anzubieten. Es handelt sich um das Verzeichnis »package/ks7010«.

Zweitens lässt sich mit etwas mehr Handarbeit auch ein Checkout der derzeit stabilen Open-WRT-Release Backfire WLAN-fähig machen. Diese Variante benötigt zudem das Patch »860-sdio-v1_10-no-enable-timeout-val.patch« unter »target/linux/generic-2.6/patches-2.6.32«. Es ist nämlich nicht im Open-WRT-Checkout von Backfire zu finden, da dort schon der WLAN-Treiber nicht verfügbar ist. Nach dem Einstecken der Karte sucht der Treiber nach der Firmware, die er unter »/lib/firmware« erwartet. Nun zeigt das Kommando »iwconfig« die Ausgaben von Listing 5.

Listing 5:
»iwconfig«

01 root@BenNanoNote:~# iwconfig
02 lo        no wireless extensions.
03 
04 usb0      no wireless extensions.
05 
06 eth0      IEEE 802.11b/g  Mode:Managed  Frequency:2.412 GHz
07           Access Point: Not-Associated   Bit Rate:5.5 Mb/s
08           RTS thr:off   Fragment thr:off
09           Encryption key:off
10           Power Management:off
11           Link Quality=100/100  Signal level=-85 dBm  Noise level=0 dBm
12           Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
13           Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Für die abschließende Konfiguration des WLAN darf der Nanonote-Besitzer eine funktionierende »wpa_supplicant.conf« nach »/etc/« kopieren. Der Eintrag »ctrl_interface_group« sollte den Wert »root« erhalten, da Open WRT standardmäßig nur die Nutzer beziehungsweiseGruppen Root und Nobody kennt. Das folgende Kommando startet den Supplicant:

wpa_supplicant -Dwext -ieth0  -c /etc/wpa_supplicant/wpa_supplicant.conf -B

Nach der Eingabe von »udhcpc eth0« versucht die WLAN-Karte eine IP-Adresse zu bekommen. Zum Testen der Verbindung kann folgender Befehl nützlich sein:

wget -qO - http://archiv.radiotux.de/sendungen/weeklynews/2009-06-26.Radiotux.Opensuse-Weekly-News.mp3 | madplay -v - -a -20

Ein Ping auf eine beliebige Internetadresse tut es natürlich auch, obgleich der Unterhaltungswert mit Madplay höher ist. Es empfiehlt sich, die Optionen für den Audioplayer nicht zu vergessen, sonst erschallt ohrenbetäubender Lärm. Die Versuche der Autoren mit der WLAN-Karte zeigten, dass die Datenübertragungsraten eher mäßig sind. Das hört man vor allem bei Musik. Sie haben deshalb einfach überflüssige »printk«-Aufrufe im WLAN-Treiber entfernt. Das benötigte Patch findet sich neben den anderen Listings zu diesem Artikel unter [10] zum Download.

Daneben haben die Autoren das Loglevel des Kernels mit »killall klogd && klogd -c 1« nach unten korrigiert und den Kernel-Ringpuffer mit »dmesg -n 1« auf das nötigste Logging gesetzt. So erzeugt ein Abhören der Musik und Surfen im Internet lediglich eine CPU-Last von 20 bis maximal 50 Prozent. Bei der Beschäftigung mit dem Ben Nanonote macht der Tüftler die Erfahrung, zunächst vor fast nichts zu stehen, um sich dann hochzuarbeiten. Ein spannender, gelegentlich aber auch zeitraubender und frustrierender Prozess.

Große Herausforderung

Es bleibt abzuwarten, ob die Open-Source-Gemeinde Zeit und Kraft aufbringt, um diese spannende Entwicklung fortzuführen. Entscheidend dabei dürfte sein, ob kommende Generationen des Geräts nativ über WLAN, UMTS, Bluetooth oder Ähnliches verfügen werden, um ein breiteres Anwendungsspektum zu bieten. Die neuesten Software-Images glänzen mit GUI, Python und Tcpdump. (mhu)

Infos

[1] Qi-Hardware: [http://en.qi-hardware.com/wiki/Ben_NanoNote]

[2] Pulster: [http://www.pulster.de]

[3] Nanonote-Images: [http://downloads.qi-hardware.com/software/images/Ben_NanoNote_2GB_NAND/]

[4] Xburst-Tools: [http://projects.qi-hardware.com/index.php/p/xburst-tools/downloads/]

[5] Skript zum Flashen: [http://downloads.qi-hardware.com/software/images/Ben_NanoNote_2GB_NAND/reflash_ben.sh]

[6] WLAN-Treiber: [http://downloads.qi-hardware.com/software/ks7010_sdio_v007.tar.bz2]

[7] WLAN-Firmware: [http://downloads.qi-hardware.com/software/ks7010-firmware-20100217.tar.bz2]

[8] Expansys: [http://www.expansys.de/s.aspx?search=SDW-823]

[9] Openwrt-xburst: [http://projects.qi-hardware.com/index.php/p/openwrt-xburst/source/help/]

[10] Listings und Patches zum Artikel: [https://www.linux-magazin.de/static/listings/magazin/2010/06/openwrt]

[11] Neueste Firmware: [http://en.qi-hardware.com/wiki/Official_Software_Image]

Die Autoren

Thomas Heil studierte Informatik an der BA Glauchau und ist langjährig als Administrator sowie seit 2009 beratend in Open-Source-Projekten tätig. Jo Philipp Wich arbeitet seit mehreren Jahren als Open-WRT-Entwickler und betätigt sich ebenfalls als Berater für freie Softwareprojekte.

LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben