1944972

Linux auf den MiniX Neo X5 packen - so geht's

20.06.2014 | 11:13 Uhr |

Der Minix Neo X5 ist ein Mini-PC, der mit Android ausgeliefert wird. Sie können auf dem sparsamen Gerät aber auch Linux installieren und sich einen preisgünstigen Linux-Server basteln.

Für gut 100 Euro gibt es zahlreiche Multimedia-Boxen für das TV-Gerät. Eine davon ist der Minix Neo X5 . Im Inneren arbeitet ein Dualcore-Cortex-A9-Prozessor (Rockchip RK 3066), dem ein Quadcore-Mali-400-Grafikchip zu Seite steht. Dazu kommen drei USB-2.0-Anschlüsse, Fast Ethernet mit 100 MBit/s und ein SD-Kartenleser. Diese Hardware entspricht oder übertrifft die Ausstattung bekannter Ein-Platinen-Computer wie Raspberry Pi oder Cubieboard. Anders als diese sind Geräte wie der Minix Neo X5 jedoch nicht für die Installation beliebiger Betriebssysteme gedacht. Vom Hersteller gibt es nur Android, und der Quellcode für Treiber und Kernel ist nur teilweise öffentlich. Das liegt am Chipsatz-Hersteller, der den Treiber-Quellcode unter Verschluss hält.

Dieser Artikel stammt aus der LinuxWelt 3/2014

So klappt der Umstieg von XP zu Linux, Videoüberwachung mit Raspberry Pi einrichten, das beste Linux für jeden PC - das und mehr finden Sie in der neuen LinuxWelt 3/2014 .

Daraus ergeben sich für die Linux-Installation einige Einschränkungen. So lässt sich beispielsweise der WLAN-Host-Modus nicht nutzen, Bluetooth funktioniert nicht, und es steht bisher keine Hardware-Beschleunigung für die Videoausgabe zur Verfügung. Als Linux-Mediaplayer eignet sich der Minix X5 damit nicht. Sie können aus dem Gerät aber einen besonders sparsamen Web- oder Mailserver basteln. Ohne Festplatte kommt der Minix X5 mit weniger als fünf Watt aus. Ein Datei-Server ist ebenfalls möglich, allerdings verspricht der Fast-Ethernet-Anschluss keine hohen Transferraten.

Exotische Projekte rund um den Raspberry Pi

Fast automatisch: Unser Script bereitet Ihr System für den Bau des Kernels und Root-Dateisystems für den Minix Neo X5 vor. Wenn nötig, installiert es die erforderlichen Pakete.
Vergrößern Fast automatisch: Unser Script bereitet Ihr System für den Bau des Kernels und Root-Dateisystems für den Minix Neo X5 vor. Wenn nötig, installiert es die erforderlichen Pakete.

1. Vorbereitungen für die Linux-Installation

Die Linux-Installation kann parallel zum vorinstallierten Android erfolgen, so dass Ihnen die Multimedia-Funktionen erhalten bleiben. Wir haben das System für den Minix Neo X5 unter Ubuntu 12.04 32 Bit zusammengebaut. Wenn Sie dieses System verwenden, können Sie der nachfolgenden Anleitung exakt folgen. Der Zusammenbau geht auch unter jedem anderen Linux, allerdings müssen Sie dann die im Artikel genannten Paketnamen teilweise anpassen. Wenn Sie ein anderes System auf dem PC verwenden,können Sie Ubuntu 12.04 auch in einer Virtualisierungs-Software wie Virtualbox installieren.

Für Linux auf dem Minix Neo X5 benötigen Sie eine SD-Karte mit mindestens zwei GB (mehr ist besser) und einen SD-Kartenleser für den PC. Die Installation erfolgt in zwei Schritten. Zuerst müssen Sie einen passenden Kernel erstellen, dann das Root-Dateisystem. Der Kernel kommt in den Flash-Speicher des Gerätes, das Root-Dateisystem auf die SD-Karte. Damit wird ein minimales Ubuntu-System auf dem Minix Neo X5 erstellt, das Sie nach dem Start vor allem über SSH fernbedienen und konfigurieren. Es ist aber auch möglich, beliebige Ubuntu-Pakete einzurichten und damit auch ein Desktop-System zu realisieren.

Der Ablauf lässt sich über das Script „build_minix_x5_sys.sh“ automatisieren, das Sie über http://goo.gl/gBOLZ9 herunterladen. Wir beschreiben in den nächsten Punkten die nötigen Schritte anhand des Scripts und erklären die internen Funktionen. Nach dem Download kopieren Sie die Datei „build_minix_x5_sys.sh“ in Ihr Home-Verzeichnis, entweder auf Ihrem Ubuntu-12.04-System oder in eine virtuelle Maschine. Öffnen Sie mit Strg-Alt-T ein Terminalfenster, und machen Sie das Script mit

chmod 755 build_minix_x5_sys.sh

ausführbar. Mit der Zeile

sudo ./build_minix_x5_sys.sh prepare

starten Sie die die erste wichtige Funktion des Scripts. Es installiert über aptget einige Tools, beispielsweise den Crosscompiler gcc-arm-linux-gnueabihf, mit dem sich der Kernel für den ARM-Prozessor erstellen lässt. Außerdem wird qemu-debootstrap eingerichtet: Damit erstellt das Script das Ubuntu-Root-Dateisystem für die SD-Karte. Die Script-Funktion „prepare“legt auch das Arbeitsverzeichnis „minix“mit den Unterverzeichnissen „minix-kernel“ und „minix-rootfs“ in Ihrem Home-Verzeichnis an. Hier landen alle Dateien, die das Script herunterlädt und erstellt.

2. Kernel herunterladen und kompilieren

Führen Sie im Terminalfenster die Zeile

sudo ./build_minix_x5_sys.sh kernel
Kernel konfigurieren: Der RK-3066-Kernel ist bereits für den Minix Neo X5 vorkonfiguriert. Bei Bedarf können Sie aber über sudo make menuconfig Änderungen vornehmen.
Vergrößern Kernel konfigurieren: Der RK-3066-Kernel ist bereits für den Minix Neo X5 vorkonfiguriert. Bei Bedarf können Sie aber über sudo make menuconfig Änderungen vornehmen.

aus. Das Script lädt die Kernel-Sourcen aus einem Repositorium bei github.com in das Verzeichnis „rk3066-kernel“. Der Quellcode stammt zu großen Teilen aus einer Veröffentlichung des spanischen Unternehmens BQ für einen Tablet-PC,der ebenfalls einen Rockchip-RK-3066 enthält. Einige Anpassungen sorgen dafür, dass der Kernel mit dem Minix Neo X5 funktioniert. Danach lädt es aus Repositorien bei github.com noch einige Dateien für die initiale Ramdisk, zum Erstellen des Recovery-Images sowie ein Flash-Tool. Danach werden der Kernel und die Kernel-Module erstellt. Das sollte auf einem PC mit einigermaßen aktuellem Prozessor nur wenige Minuten dauern. Das Ergebnis ist die Datei „recovery.img“ im Verzeichnis „~/minix/minix-kernel/rkflashtool“. Die Kernel-Module werden unter „~/minix/minix-kernel/kernel_mod/lib/modules“ abgelegt. Kernel-Profis können mit sudo make menuconfig den Kernel individuell konfigurieren und beispielsweise die Taktfrequenz von Hauptspeicher und/oder CPU ändern sowie Module hinzufügen oder abwählen. Aber Vorsicht: Zu hohe Taktfrequenz kann das Gerät überhitzen. Erstellen Sie danach eine Sicherungskopie der Datei „.config_minix_neo_x5_20131018“, und kopieren Sie die geänderte Konfiguration mit sudo cp.config .config_minix_neo_x5_201310 18 . Danach führen Sie das Script mit dem Parameter „kernel“ erneut aus. Beantworten Sie „Neu erstellen (j/N)?“mit den Tasten J und Enter.

3. Ubuntu-Root-Dateisystem erstellen

Man könnte für das Minix Neo X5 ein eigenes Linux-System für den ARM-Prozessor erstellen, etwa wie es bei www.linuxfromscratch.org beschrieben ist. Das würde jedoch relativ lange dauern und etliche Konfigurationsschritte erfordern. Deshalb greifen wir auf fertige ARM-Binärpakete zurück, die für Ubuntu 12.04 („Precise Pangolin“) unter http://ports.ubuntu.com zu finden sind. Auf die gleiche Weise könnten Sie auch Debian, Arch Linux oder Fedora einrichten. Sie müssten dann nur die Adresse des Repositoriums sowie die Namen der Distribution und die Paketbezeichnungen anpassen.

Starten Sie im Terminalfenster sudo./build_minix_x5_sys.sh bootstrap . Das Script führt den Befehl

qemu-debootstrap –verbose --variant=minbase --include=$EXTRATOOLS --arch=armhf precise ~/minix/minix-rootfs http://ports.ubuntu.com

aus. Der Vorgang nennt sich „Debootstrap“. Dabei wird ein Betriebssystem in einem Unterverzeichnis des Hauptsystems installiert. Die Angabe „minbase“sorgt für die Installation der nötigstenPakete, „precise“ legt dieUbuntu-Variante auf 12.04 fest, und über den Inhalt der Variablen „$EXTRATOOLS“ werden einige zusätzliche Pakete eingerichtet.

„--arch=armhf“ sorgt dafür, dass nur Binärdateien für die ARM-CPU des Minix Neo X5 im Zielverzeichnis „~/minix/minix-rootfs“ landen. Wenn der Vorgang abgeschlossen ist, erhalten Sie als letzte Zeile die Meldung „Base systeminstalledsuccessfully.“

Raspberry Pi 2 Go - Die Bastelplatine im mobilen Einsatz

4 Ubuntu-Root-Dateisystem erweitern

Das System in „~/minix/minix-rootfs“wäre in seinem bisherigen Zustand noch nicht nutzbar. Deshalb sind noch einige Anpassungen erforderlich: Ein Debootstrap-System lässt sich über eine Chroot-Umgebung bearbeiten. Über den Befehl chroot Verzeichnis wechseln Sie ins Verzeichnis und erklären es zur obersten Ebene des Dateisystems (Root-Verzeichnis). Zusätzlich müssen noch Ordner wie „/proc“ und „dev“ in das Chroot-Verzeichnis gemountet werden, damit die Ressourcen des Hauptsystems nutzbar sind.

Unser Script nimmt Ihnen diese Arbeit durch den Aufruf von

sudo ./build_minix_x5_sys.sh chrootfs
Deutsche Tastaturbelegung: In der Chroot-Umgebung konfigurieren Sie die deutsche Tastatur. Dann stehen beim ersten Start die richtigen Tasten zur Verfügung.
Vergrößern Deutsche Tastaturbelegung: In der Chroot-Umgebung konfigurieren Sie die deutsche Tastatur. Dann stehen beim ersten Start die richtigen Tasten zur Verfügung.

ab. Es ändert außerdem die Netzwerkkonfiguration und den Host-Namen („minix“) und nimmt die Konfiguration der Tastenbelegung vor. Mit ls können Sie sich davon überzeugen, dass Sie sich in der Chroot-Umgebung befinden. Sie sehen hier beispielsweise die Datei „install_tools.sh“, die der weiteren Konfiguration dient. Starten Sie diese dann mit ./install_tools.sh . Zuerst aktualisiert sie die Paketquellen und installiert dann noch einige Pakete.Anschließend erscheint der Dialog „Configuringconsole-data“. Drücken Sie die Enter-Taste, und rufen Sie „Tastaturbelegung aus der Gesamtliste wählen“ auf. In der Liste wählen Sie „pc / qwertz / German / Standard / latin1“. Danach wird der neue Benutzer mit dem Namen „mx“ angelegt, für den Sie gleich ein Passwort festlegen müssen. Danach fragt das Script die Benutzerinfos ab. Geben Sie bei „FullName“ beispielsweise mx ein. Die anderen Fragen bestätigen Sie jeweils mit der Enter-Taste. Danach verlassen Sie die Chroot-Umgebung mit exit .

5 Recovery-Modus und Android-SDK

Für den nächsten Schritt müssen Sieden Minix Neo X5 im Bootloader-Modus starten. Dazu schalten Sie das Gerätab und trennen die Stromversorgung. Verbinden Sie den PC über das mitgelieferte USB-Kabel mit dem OTG-Port. Das ist die kleine Buchse neben dem SD-Kartenleser. Stellen Sie die Stromversorgung wieder her: Drücken Sie mit einer umgebogenen Büroklammer den Schalter hinter der Öffnung „Recover“ neben der HDMIBuchse und gleichzeitig den Power-Knopf für etwa zwei Sekunden. Das Gerät schaltet sich ein, aber der Bildschirm bleibt dunkel. Geben Sie im Terminalfenster lsusb ein. Hier sollte „ID 2207:300a“ auftauchen. Wenn nicht, wiederholen Sie den Vorgang.

Steuerung über adb: Alternativ können Sie das Tool adb aus dem Android-SDK zur Steuerung des Gerätes nutzen. Das funktioniert allerdings nicht in einer virtuellen Umgebung, da hier USB-Geräte nicht zuverlässig erkannt werden. Führen Sie die folgenden Schritte daher direkt auf Ihrem Linux-PC aus. Sie installieren das Android-SDK über sudo ./build_minix_x5_sys.shadb . Anschließend erscheint das Fenster des Android SDK Managers, in dem Sie rechts unten auf „Install XX packages“ klicken. Danach müssen Sie die Lizenz akzeptieren und auf „Install“ klicken. Starten Sie den Minix Neo X5 mit Android, und verbinden Sie das Gerät über das OTG-Kabel mit dem PC. Gehen Sie in den Einstellungen auf „USB“, und setzen Sie ein Häkchen hinter „Connect to PC“. In den „Entwickleroptionen“ setzen Sie ein Häkchen bei „USB-Debugging“. Mit den zwei Zeilen

~/minix/android/platform-tools/adb kill-server ~/minix/android/platform-tools/adb devices

ermitteln Sie dann, ob adb das Gerät erkannt hat. Als Ausgabe taucht beispielsweise „0123456789ABCDE device“auf. Der Befehl

adbrebootbootloader

bringt Sie dann auch ohne Büroklammer in die Bootloader-Umgebung.

Partitionsgrenzen: Mit rkflashtool lesen Sie den Flash-Speicher des Minix Neo X5 aus. Damit ermitteln Sie Offset und Größe der Partitionen. Diese Werte brauchen Sie zum Flashen.
Vergrößern Partitionsgrenzen: Mit rkflashtool lesen Sie den Flash-Speicher des Minix Neo X5 aus. Damit ermitteln Sie Offset und Größe der Partitionen. Diese Werte brauchen Sie zum Flashen.

6 SD-Karte für die Installation vorbereiten

Zum Partitionieren und Formatieren der SD-Karte verwenden Sie etwa das Tool Gparted. Sollte es nicht installiert sein, holen Sie das über sudo apt-getinstallgparted nach. Nach dem Start wählen Sie das Laufwerk mit der SD-Karte rechts oben aus. Entfernen Sie die vorhandene Partition über das Kontextmenü und „Aushängen“ und dann „Löschen“. Mit „Neu“ legen Sie eine neue Ext4-Partition mit der Bezeichnung „linuxroot“ an. Die genaue Schreibweise ist wichtig, sonst wird das System später nicht gefunden. Über „Bearbeiten -> Alle Operationen ausführen“starten Sie die Partitionierung. Entfernen Sie danach die Karte, und stecken Sie sie wieder in den Kartenleser. Standardmäßig wird sie unter Ubuntu in das Verzeichnis „/media/linuxroot“eingehängt.

7 Reovery-Image und Root-Dateisystem übertragen

Für erste Tests ist es sinnvoll, das neue Kernel-Image nur in die Recovery-Partition des Minix Neo X5 zu flashen. Starten Sie das Gerät zuerst im Bootloader-Modus wie im -> Punkt 5 beschrieben. Wenn Sie bisher eine virtuelle Maschine benutzt haben, kopieren Sie jetzt das komplette Verzeichnis „minix“ sowie das Script „build_minix_x5_sys.sh“ in Ihr Home-Verzeichnis. Wechseln Sie mit cd ~/minix/minix-kernel/rkflashtool das Verzeichnis. Führen Sie dort die zwei Befehle

sudo ./rkflashtool r 0x0 0x2000 >parm.bin catparam.bin | more

aus. Notieren Sie sich die Angaben hinter „CMDLINE:“ vor „(kernel)“ und „(recovery)“. Drücken Sie die Q-Taste, um wieder zur Kommandozeile zurückzukehren. Die Ausgabe „0x00008000@0x00010000(recovery)“ beispielsweise besagt, dass die Recovery-Partition ab Offset 0x10000 zu finden ist und 0x8000 Bytes groß ist. Mit sudo ./rkflashtool r 0x10000 0x8000 >recoverybak.img erstellen Sie in diesem Fall ein Backup der Recovery-Partiton. Für die anderen Partitionen verfahren Sie entsprechend. Mit der Zeile

sudo ./rkflashtool w 0x10000 0x8000 <recovery.img

schreiben Sie die neue Recovery-Partition in den Flash-Speicher und starten dann das Gerät mit sudo ./rkflashtool b neu.

Wichtig: Kontrollieren Sie die Parameter für rkflashtool genau. Wenn Sie hier falsche Werte angeben, startet das Gerät danach wahrscheinlich nicht mehr. Jetzt müssen noch das Root-Dateisystem und die Kernel-Module auf die SD-Karte. Dazu führen Sie folgende Zeile aus:

sudo ./build_minix_x5_sys.sh copy2usb

Linux auf den Mac packen

Minix Neo X5 mit Linux-Desktop: Aufgrund der schwachen Grafikleistung und der fehlenden 3D-Beschleunigung kommt nur ein schlanker Desktop wie XFCE oder LXDE infrage.
Vergrößern Minix Neo X5 mit Linux-Desktop: Aufgrund der schwachen Grafikleistung und der fehlenden 3D-Beschleunigung kommt nur ein schlanker Desktop wie XFCE oder LXDE infrage.

8 Linux-Start und System-Tuning

Schalten Sie den Minix Neo X5 aus, und stecken Sie die SD-Karte in den Kartenleser. Dann starten Sie das Gerät im Recovery-Modus. Drücken Sie den Knopf hinter der Öffnung „Recover“und den Power-Knopf gleichzeitig für etwa fünf Sekunden. Oder Sie verwendendie Kommandozeile adbrebootrecovery (-> Punkt 5). Nach etwa drei Sekunden startet Linux und begrüßt Sie mit dem Log-in-Prompt. Melden Sie sich als Benutzer mx mit dem in -> Punkt 4 vergebenen Passwort an. Mit ipconfig ermitteln Sie die IP-Adresse des Minix Neo X5. Von Ihrem Linux-PC aus erhalten Sie dann über das Netzwerk mit ssh -l mx ip-adresse Zugriff auf die Kommandozeile. Das WLAN aktivieren Sie bei Bedarf über die Datei „/etc/network/interfaces“. Entfernen Sie die Kommentarzeichen ab „auto eth1“, und tragen Sie die SSID und den WPA-Schlüssel Ihres WLANs ein. Anschließend installieren Sie per sudo apt-get weitere Programme, etwa für einen Mailserver . Wenn Sie einen Dateiserver einrichten wollen, installieren und konfigurieren Sie Samba. Eine ausführliche Anleitung finden Sie unter www.pcwelt.de/1903700 . Eine grafische Oberfläche ist ebenfalls möglich: Über sudo apt-getinstallxubuntu-desktop richten Sie etwa den schlanken XFCE-Desktop ein.

Wenn Sie auf Android verzichten wollen, flashen Sie „recovery.img“ in die Kernel-Partition, ähnlich wie in -> Punkt 7 für die Recovery-Partition beschrieben. Zum vorherigen Zustand können Sie jederzeit zurück, indem Sie die Backup-Dateien zurücksichern.

Weitere Mini-PCs für Linux

Das im Artikel beschriebene Verfahren funktioniert ähnlich auch mit anderen Geräten, in denen ein Rockchip RK 3066 steckt (etwa die TV-Sticks Imito MX1 und MX2 sowie Rikomagic MK802 III). Allerdings sind dafür weitere Anpassungen beim Kernel nötig, und der Nutzen ist bei den kleinen TV-Sticks ohne Ethernet-Port fraglich. Wer den Bastelfaktor schätzt, greift daher besser zum Raspberry Pi (34 Euro), der sich dank Hardware-Beschleunigung vor allem als Mediaplayer eignet.

Für Server-Aufgaben ist das Cubieboard 3 (100 Euro) die erste Wahl. Das Gerät bietet nicht nur 2 GB RAM, sondern auch SATA-Anschlüsse und Gigabit-Ethernet. Damit ist es der für ein NAS am besten geeignete Mini-PC.

0 Kommentare zu diesem Artikel
1944972