Im September 2012 hat das Chinesische Unternehmen CubieTech Limited, Inc. mit der Cubiboard Serie ein, wie ich finde, recht erfolgreiches Open-Source Projekt initiiert und zeigt sehr deutlich, dass in den Werkhallen und Entwicklungsbüros von Shenzhen bei weitem nicht mehr nur kopiert wird. Sämtliche Wertschöpfungen entstammen der dort ansässigen Indistrie, begonnen bei der CPU von Allwinner Technology Co., Ltd. weiter über die Boards, Zubehör und Gehäuse sowie deren weltweiter Vertrieb (wie z.B. bei Pollin) bis hin zur mehr oder weniger direkten Unterstützung der Softwareentwicklung im Rahmen des Community Projekts SUNXI Linux.
Ein Wermutstropfen bleibt. Wie auf der Wiki-Seite von SUNXI Linux zu lesen ist, wird dem CPU Hersteller die wiederholte Verletzung der GPL vorgeworfen. Ich will das an dieser Stelle ohne weiteren Kommentar nur erwähnt haben.
Im Ergebnis erhält man mit dem Cubietruck ein mit maximal 10 Watt operierendes Computersystem in die Hand, was leistungsfähig genug ist, einen bestehenden PC auf Basis eines Intel Celeron oder Atom N270 abzulösen.
Hier verweise ich gerne auf die deutsche Wikipedia, das SUNXI Linux Wiki und das Cubiboard Wiki sowie den Cubiboard Blog. Dort gibt es mehr Detailinformationen zu entdecken, als ich hier wiedergeben will und kann. An dieser Stelle werde ich die für mich interessantesten Punkte heraus greifen.
Auf den oben genannten Wiki Seiten findet man viele Verweise zu vorgefertigten Images diverser Standard Linux Distributionen wie Debian, Ubuntu und Fedora Core. Auch Android sollte nicht unerwähnt bleiben und für die Freunde von BSD gibt es ebenso Möglichkeiten. Für mich von Interesse ist ausschließlich Debian und Ubuntu. Das Debian Projekt bietet eine von mir nicht weiter verfolgte Anleitung zur Installation auf Allwinner basierender Hardware.
Mein System habe ich mit Hilfe des ARMbian Projekts mit einem aktuellen Ubuntu LTS bestückt und kann es aktuell halten. Dazu mehr weiter unten.
Durch die Anstrengungen der Community rund um SUNXI Linux werden so gut wie alle Allwinner Plattformen direkt aus den Hauptentwicklungszweigen heraus unterstützt, das sind:
Der Cubietruck kommt von Haus aus nicht als einfaches loses Board daher, sondern punktet schon mit einem einfachen aus Plexiglas hergestellten „Primitivgehäuse“. Darin findet nicht nur das Board selbst sondern auch die SATA Festplatte und ein optionaler Akku genügend Platz für eine feste Montage. Damit bleiben alle Komponenten in Form eines kleinen Stapels fest verbunden und können nicht bei laufendem Betrieb auseinander gezogen werden. Ohne weitere Schutzmaßnahmen ist aber vom Einsatz eines solchen Aufbaus im Alltagsbetrieb abzuraten, es gibt keinen Schutz vor Staub oder Dreck.
Für den Cubietruck werden zwei verschiedenen Gehäuse angeboten, eins aus Kunststoff und eins aus Metall, genauer aus schwarz lackiertem Alu-Gussprofil. In meinem Aufbau kommt letzteres zum Einsatz. Es soll schließlich als ein Server im Dauerbetrieb für lange Zeit unbeobachtet seinen Dienst verrichten.
Alle Komponenten bekommt man, zumindest im deutschsprachigen Raum, direkt bei Pollin Electronic zu kaufen. Hier die Liste meiner Komponenten:
Pollin Nr. | Beschreibung | Preis | ||
---|---|---|---|---|
Verweise | ||||
Basishardware | 702 237 | Cubieboard 3 (Cubietruck) Kit, A20, 2 GB, 8 GB, WLAN, BT, SATA | 99,95 € | |
Beschreibung (Pollin) Produktdatenblatt (Pollin) Schaltplan Allwinner A20 Datasheet, V1.1 (21. März 2013) Allwinner A20 User Manual, V1.0 (18. Februar 2013) AMPAK AP6210 WiFi 802.11b/g/n + BT4.0 SIP Module Specifiaction, V1.2 (26. Dezember 2012) | ||||
Gehäuse | 702 305 | Cubietruck Aluminium-Gehäuse | 17,95 € | |
AutoCad Zeichnung Montageanleitung | ||||
Bootmedium | 722 867 | MicroSDHC Card VERBATIM 44012, 8 GB | 4,75 € | |
gesamt: | 122,65 € | |||
Datenspeicher | Bestand | Hitachi HTS54502, 250 GB | 50,00 € |
Dieser Zusammenbau hat von mir nun nachträglich noch folgende Erweiterungen bekommen.
Das Gehäuse ist so konstruiert, dass man es gut im heimischen Wohnzimmer als Medienplayer an einem großen LED Monitor mit Funktastatur über USB betreiben kann. Für den Einsatz als Server ohne Monitor und ohne Tastatur fehlt schlicht und ergreifend der Zugang an die serielle Schnittstelle. An dieser wird in solchen Einsatzszenarien die Linux Konsole und ein Login angeboten, um in Notfällen über ein Terminal direkt vor Ort auf den Server zuzugreifen. Auch für die Installation neuer Systemsoftware oder den Service ist dieser Zugang unabdingbar.
Auf dem Cubietruck wird die Linux Konsole fest über die erste serielle Schnittstelle an Steckverbinder CN7 (direkt hinter den USB Buchsen) angeboten. Im Shop von Cupietech wird auch ein passendes USB UART Kabel angeboten – im Prinzip ein gewöhnliches USB zu RS232 Kabel für 3.3V TTL Pegel mit einzeln steckbaren Anschlüssen, wie es in jedem gut sortierten Elektronikladen angeboten wird. Problem bei diesem Kabel ist, dass es nicht ohne weiteres aus einem geschlossenen Gehäuse herausgeführt werden kann.
Für solche Fälle bietet DELOCK oder FTDI Chip ein solches Kabel mit einem 3,5mm Audio Klinkenstecker an. In der Gehäusewand muss an geeigneter Stelle eine Klinkenbuchse eingebaut werden und die drei Leitungen der serielle Schnittstelle im Gerät an die richtige Pfostenleiste angeschlossen werden. Das Ergebnis könnte so aussehen:
Für die Klinkenbuchse habe ich aus Gründen der Langlebigkeit und kompakten Bauweise das etwas teurere Exemplar KLB 4 von Lumberg gewählt. Hinter der Gehäusewand beträgt der Durchmesser dieser Buchse nur 8 mm und der Durchbruch 6 mm. Ferner sind die Kontakte in einem geschlossenen Kunststoffgehäuse untergebracht.
Nach folgendem Schaltplan werden die drei Kontakte der Klinkenbuchse über eine angewinkelte Buchsenleiste mit 4×1 Kontakten im Rastermaß 2,54mm steckbar an die Pfostenleiste CN7 auf dem Cubietruck verbunden. Danach wird in die Rückwand des Cubietruck Gehäuses an geeigneter Stelle ein Loch mit 6mm Durchmesser gebohrt und die Klinkenbuchse mit der beiliegenden Überwurfmutter befestigt. Ich habe mich über den freien Raum direkt über der HDMI Buchse des Cubietruck entschieden.
Achtung: Wer die beiliegenden Blenden mit den Beschriftungen aufkleben will, der muss sich noch Gedanken über einen Durchbruch auch in dieser Blende machen. Ich selber nutze die Blenden nicht, da sie die Schrauben verdecken. Jedes mal, wenn man das Gehäuse öffnen will, müssten die Blenden abgelöst und beim Zusammenbau neu aufgeklebt werden. Das ist nicht servicefreundlich.
Hersteller | Artikel | Bezeichnung | Farnell (element14) | Reichelt | ||
---|---|---|---|---|---|---|
Bestellnummer | Preis | Bestellnummer | Preis | |||
Lumberg | KLB 4 | Klinkeneinbaukupplung nach JIS C 6560 JC35J3A, 3,5 mm, 3-polig/stereo, mit Lötaugen, für Rückseitenmontage, Kunststoffgehäuse Datenblatt, 3D-Ansicht, STEP-Daten | 120-0144 | 1,35 € | LUM KLB 4 | 0,86 € |
DELOCK | 83114 | Konverter USB 2.0 Stecker → Seriell-TTL 3,5 mm Klinke 1,8 m (3,3 V) Datenblatt, Zeichnung | DELOCK 83114 | 18,95 € | ||
FTDI Chip | TTL-232R-3V3-AJ | USB zu TTL Seriell Kabel (3,3V) – 1,8m 3,5mm Audio Klinke Datenblatt | 174-0363 | 19,80 € |
Igor Pecovnik, der Kopf hinter dem Projekt ARMbian, stellt seit Dezember 2013 für verschiedene ARM Plattformen fertig nutzbare Debian und Ubuntu Sytemimages bereit. Ebenso ist seine gesamte Buildumgebung bei GitHub verfügbar (meiner Erfahrung nach, fast tagesaktuell). Die Dokumentation ist ausgewogen und geht an entscheidenden Stellen auch etwas mehr in die Tiefe. Für mich ein ansprechender Projektstatus, ums sich etwas mehr damit auseinander zu setzen und die Nutzung im Alltag eines Administrators zu prüfen.
Beginnen will ich mit einer kurzen Anleitung zum Installieren der letzten Veröffentlichung für den Cubietruck. Da es sich um ein Serversystem handeln soll, habe ich die „Legacy“ Version ignoriert. Eine 3D/2D Grafikbeschleunigung oder sogar eine GUI ist nicht erforderlich. Der Vorteil ist dann die Nutzung eines aktuellen 4.x Linux Kernel.
Zum Vorbereiten der SD Karte wird ein Linux Host benötigt. Alle weiteren Administrationsschritte werden dann auf dem Cubietruck selbst ausgeführt.
Linux Host:
7zip
noch installieren):cd /tmp sudo apt-get install p7zip
wget http://image.armbian.com/Armbian_5.20_Cubietruck_Ubuntu_xenial_4.7.3.7z 7z x Armbian_5.20_Cubietruck_Ubuntu_xenial_4.7.3.7z
gnupg
noch installieren):cd /tmp sudo apt-get install gnupg
# Igor Pecovniks öffentlichen Schlüssel vom MIT Server herunter laden gpg --keyserver pgp.mit.edu --recv-key 9F0E78D5 # Die Signatur des RAW Images verifizieren gpg --verify Armbian_5.20_Cubietruck_Ubuntu_xenial_4.7.3.img.asc # ordentliche Antwort gpg: Signature made Thu Sep 15 02:43:04 2016 CEST using RSA key ID 9F0E78D5 gpg: Good signature from "Igor Pecovnik (Ljubljana, Slovenia) <igor.++++++++++++@gmail.com>" # falsche Antwort -- kein originales Armbian Image! gpg: Signature made Sun 03 Jan 2016 11:46:25 AM CET using RSA key ID 9F0E78D5 gpg: BAD signature from "Igor Pecovnik (Ljubljana, Slovenia) <igor.++++++++++++@gmail.com>"
util-linux
noch installieren):cd /tmp sudo apt-get install util-linux
lsblk
… ergibt bei mir (nur ein Auszug):
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdg 8:96 1 3,7G 0 disk └─sdg1 8:97 1 3,7G 0 part /media/user/EC71-196C
… und der Name lautet dann also /dev/sdg
sudo umount /dev/sdg*
… und noch mal prüfen:
lsblk
… ergibt:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdg 8:96 1 3,7G 0 disk └─sdg1 8:97 1 3,7G 0 part
coreutils
und pv
noch installieren):cd /tmp sudo apt-get install coreutils pv
pv -ptebacN Armbian.img < Armbian_5.24_Cubietruck_Ubuntu_xenial_next_4.9.5.img | \ sudo dd of=/dev/sdg oflag=sync conv=notrunc,fsync bs=1M
… verläuft mit:
Armbian.img: 154MB 0:00:19 [8,07MB/s] [==> ] 14% ETA 0:01:55
… endet mit:
Armbian.img: 1,21GB 0:02:48 [7,38MB/s] [=================================>] 100% 0+9936 Datensätze ein 0+9936 Datensätze aus 1302331392 Bytes (1,3 GB) kopiert, 168,533 s, 7,7 MB/s
Cubietruck:
8N1@11500
: 8 bit, keine Parität, 1 Stopp Bit, 11500 Baud)U-Boot SPL 2017.01-armbian (Jan 20 2017 - 22:26:32) DRAM: 2048 MiB CPU: 912000000Hz, AXI/AHB/APB: 3/2/2 Trying to boot from MMC1 ... ... Found U-Boot script /boot/boot.scr 2352 bytes read in 211 ms (10.7 KiB/s) ## Executing script at 43100000 ... ## Loading init Ramdisk from Legacy Image at 43300000 ... ## Flattened Device Tree blob at 43000000 Starting kernel ... Uncompressing Linux... done, booting the kernel. Loading, please wait... Ubuntu 16.04.1 LTS cubietruck ttyS0 cubietruck login: _
root
mit Passwort 1234
anmelden, und sofort ein eigenes sicheres Passwort vergeben:cubietruck login: _ <-- root Password: _ <-- 1234 You are required to change your password immediately (root enforced) Changing password for root. (current) UNIX password: _ <-- 1234 Enter new UNIX password: _ <-- wahnsinniggeheim Retype new UNIX password: _
Creating a new user account. Press <Ctrl-C> to abort Please provide a username (eg. your forename): <-- user Adding user `user' ... Adding new group `user' (1000) ... Adding new user `user' (1000) with group `user' ... Creating home directory `/home/user' ... Copying files from `/etc/skel' ... Enter new UNIX password: _ <-- geheim Retype new UNIX password: _ <-- geheim passwd: password updated successfully Changing the user information for user Enter the new value, or press ENTER for the default Full Name []: _ <-- Local User Room Number []: _ Work Phone []: _ Home Phone []: _ Other []: _ Is the information correct? [Y/n] _ <-- y Dear Local User, your account user has been created and is sudo enabled. Please use this account for your daily work from now on. root@cubietruck:~# _
user
Konto wieder anmelden:root@cubietruck:~# _ <-- logout Ubuntu 16.04.1 LTS cubietruck ttyS0 cubietruck login: _ <-- user Password: _ <-- geheim
… FERTIG:
____ _ _ _ _ / ___| _| |__ (_) ___| |_ _ __ _ _ ___| | __ | | | | | | '_ \| |/ _ \ __| '__| | | |/ __| |/ / | |__| |_| | |_) | | __/ |_| | | |_| | (__| < \____\__,_|_.__/|_|\___|\__|_| \__,_|\___|_|\_\ Welcome to ARMBIAN 5.24 stable Ubuntu 16.04.1 LTS 4.9.5-sunxi System load: 0.11 Up time: 7 min Memory usage: 1 % of 2014Mb IP: 192.168.10.154 CPU temp: 30°C HDD temp: 26°C Usage of /: 15% of 7.0G [ 17 updates to install: apt-get upgrade ] To run a command as administrator (user "root"), use "sudo <command>". See "man sudo_root" for details. user@cubietruck:~$ _
user@cubietruck:~$ sudo apt-get update [sudo] password for user: _ <-- geheim ... ... user@cubietruck:~$ sudo apt-get dist-upgrade ... ... Do you want to continue? [Y/n] _ <-- Y
Die folgenden Schritte sollen nur eine minimale Hilfe für den Bau eines eigenen ARMbian Images sein und exemplarisch das Grundprinzip darstellen. ARMbian ist gegenwärtig so dynamisch, dass sich die Ausschriften oder Ergebnisse schon in wenigen Tagen anders darstellen, als hier notiert. Aktuelle Informationen können und sollten dem ARMbian Developer Guide entnommen werden.
Auf einem aktuelle Ubuntu Host mit bereits installiertem Git sind folgende Schritte notwendig:
mkdir build-stable cd build-stable
git clone https://github.com/igorpecovnik/lib.git lib
… verläuft mit:
Cloning into 'lib'... remote: Counting objects: 13999, done. remote: Compressing objects: 100% (124/124), done. remote: Total 13999 (delta 54), reused 0 (delta 0), pack-reused 13873 Receiving objects: 100% (13999/13999), 167.28 MiB | 965.00 KiB/s, done. Resolving deltas: 100% (8753/8753), done.
… lokaler Branch vom Tag:
cd lib; git checkout -b build-v2016.09 v2016.09; cd -
cp lib/compile.sh . touch .ignore_changes
sunxi-next
Kernel für den Cubietruck zu bauen:./compile.sh BOARD=cubietruck \ BRANCH=next \ RELEASE=xenial \ KERNEL_ONLY=no \ BUILD_DESKTOP=no \ ROOTFS_TYPE=ext4 \ COMPRESS_OUTPUTIMAGE=yes \ SEVENZIP=yes \ PROGRESS_DISPLAY=plain