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.
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.
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: |
|---|
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 |
|---|
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: |
|---|
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: |
|---|
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.
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: |
|---|
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. |





