ubuntuusers.de

ubuntuusers.deWikiMK802-MiniPC

MK802-MiniPC

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

bild1_klein.png Der MK802 ist ein sogenannter Minicomputer des Herstellers Rikomagic {en} / Rikomagic Deutschland {de} mit einer Größe von ca. 10 x 3 x 1cm (LxBxH), welcher in erster Linie als einfacher Videoplayer vertrieben wird. Originär befindet sich Android 4.0/4.04 auf dem internen Flashmedium und ermöglicht über den integrierten HDMI-Anschluss den Betrieb über einen Fernseher oder Monitor die HD-Wiedergabe von Videos und Spielen. Da mit Android ein komplettes Betriebssystem mit Browser und kleineren Office-Anwendungen zur Verfügung steht, kann mit diesem Minicomputer auch ganz normal im Internet gesurft bzw. gearbeitet werden.

Seit Ersteinführung des MK802 sind weitere Minicomputer mit den Bezeichnungen MK802+, MK802 III und MK803 des selben Herstellers erschienen. Technisch unterscheiden sich die Geräte kaum voneinander: mal gibt es diese mit 1, 2 oder 3 USB-Anschlüssen, mal mit 512 oder 1024 MiB DDR3-RAM und verschiedenen Chipsätzen. Aufgrund von speicherhungrigen Anwendungen wie Firefox bzw. Serverdienste, für die viel freier Arbeitsspeicher sinnvoll ist (z.B. Squid) empfiehlt sich eine Version mit 1024 MiB RAM. Soll der Rechner nur für das gelegentliche Surfen im Internet bzw. als einfacher Videoplayer betrieben werden, sind 512 MiB vollkommen ausreichend.

Dieser Artikel richtet sich hauptsächlich an die Betreiber eines kleinen Heim-Servers, der normalerweise nicht Hunderte von Clientrechnern bedienen oder eine hohen Datendurchsatz gewährleisten muss. Hier kommt es weniger auf Leistung an, dafür umso mehr auf Effizienz bzgl. Stromverbrauch und Geräuschentwicklung.

Unterschiede MK802, MK802+, MK802 II, MK802 III und MK803

MK802 MK802+ MK802 II MK802 III MK803
CPU Allwinner A10 1.0GHz Cortex-A8 Allwinner A10 1.0GHz Cortex-A8 Allwinner A10 1.0GHz Cortex-A8 Dual Core 1.6GHz Cortex-A9 Amlogic AML8726-M3 / bis zu 1.5GHz Cortex-A9
Speicher 512 MB DDR3 1024 MB DDR3
USB 1x USB 2.0, 1x Micro-USB 2x USB 2.0, 1x Micro-USB
Netzwerk Wireless 802.11b/g/n (Ralink8188)
Speicher 4 GiB intern für Android; bis zu 32 GiB über Micro-SD Karte für root-System + Daten nutzbar 8 GiB intern für Android; bis zu 32 GiB über Micro-SD Karte für root-System + Daten nutzbar 4 GiB intern für Android; bis zu 32 GiB über Micro-SD Karte für root-System + Daten nutzbar
Stromverbrauch ca. 5 - 10 Watt je nach Leistungsbedarf

Hinweis:

Leider begünstigt die große Vielfalt an Ausstattungsvarianten sehr oft einen falschen Verkaufsnamen bei den Anbietern, weshalb die Produkteigenschaften nicht immer mit obiger Tabelle übereinstimmen. Eine offizielle Vergleichstabelle findet man unter http://www.rikomagic.de/produkte/vergleichstabelle/ {de}

Benötigte Hardware

Neben dem eigentlichen Minicomputer wird zwingend eine Micro-SD Karte benötigt, da das originale Betriebssystem weder modifiziert noch gelöscht wird. Ubuntu wird sozusagen "parallel" auf der SD-Karte installiert. Somit besteht niemals die Gefahr, den Rechner "unbrauchbar" zu machen und man kann in aller Ruhe verschiedenste Dinge ausprobieren. Dies liegt an der Bootreihenfolge: Der Minicomputer startet automatisch nach dem Anschließen der Spannungsversorgung und sucht ein Betriebssystem auf der SD-Karte. Erst wenn dort keines gefunden wird, startet Android vom internen Speichermedium.

Herunterladen eines Abbildes (Images)

Einer der Hauptvertreiber der Minicomputer, Miniand {en}, bietet eine sehr große Auswahl an Abbildern (ISO-Images). Falls der Minicomputer als Videospieler oder als einfacher Desktoprechner verwendet werden soll, empfiehlt sich aufgrund der begrenzten Hardware grundsätzlich Xubuntu oder Lubuntu. Jedoch wird auch Ubuntu mit Unity als Desktop angeboten.

Im weiteren Verlauf dieses Artikels wird das von Linaro {en} modifizierte Lubuntu genutzt, da dieses als Serverbasis aufgrund einer bereits auf schlankes Design optimierten Paketauswahl sehr gut geeignet ist. Außerdem ist es zur Zeit (Stand: Dezember 2012) das einzige Abbild, welches für ARMHF verfügbar ist.

Hinweis:

Wichtiger als die Wahl der Desktop-Oberfläche, die man später zu jedem Zeitpunkt einfach durch Deinstallation bzw. Installation über den Paketmanager ändern kann, ist es jedoch, dass man sich für die ARMHF-Architektur entscheidet, da diese bis zu 40% schneller arbeitet als ARMEL.

Um das Abbild entpacken zu können, wird 7z benötigt.

Vorbereiten der SD-Karte

Zuerst sollte sichergestellt werden, dass die SD-Karte komlett bereinigt ist. Dazu steckt man die SD-Karte in den Rechner und sucht heraus, welches Gerät (engl. "device") es ist. Falls eine grafische Oberfläche verwendet wird, geht man einfach über "Menü → Einstellungen → Laufwerke" und sucht das passende Gerät heraus (häufig /dev/sdb oder /dev/sdc).

Hat man nur eine Kommandozeile zur Verfügung, gibt man vor Einstecken der SD-Karte folgendes in ein Terminalfenster ein [3] [6]:

sudo fdisk -l 

Mit fdisk erhält man durch Angabe von -l eine Übersicht über alle vorhandenen Geräte inklusive Partitionen. Nachdem man die SD-Karte eingesteckt hat, führt man den Befehl ein zweites Mal aus und vergleicht die Ergebnisse. Das hinzugekommene Gerät ist die SD-Karte.

Verkürzte Ausgabe vor

Disk /dev/sda: 60.0 GB, 60022480896 bytes
...
Festplattenidentifikation: 0x2a422a41

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1   *          63    93939711    46969824+   7  HPFS/NTFS/exFAT
/dev/sda2        93939712   108632063     7346176   83  Linux
...

und nach dem Einstecken:

Disk /dev/sda: 60.0 GB, 60022480896 bytes
Festplattenidentifikation: 0x200abcd
   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1   *          63    93939711    46969824+   7  HPFS/NTFS/exFAT
/dev/sda2        93939712   108632063     7346176   83  Linux
...
Disk /dev/sdb: 31.9 GB, 31914983424 bytes
Festplattenidentifikation: 0x000abcd
   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sdb1   *       16384    20479999    10231808   83  Linux
/dev/sdb2        20480000    60751871    20135936   83  Linux
/dev/sdb3        60751872    62333951      791040   82  Linux Swap / Solaris

In diesem Beispiel ist sehr gut zu erkennen, dass /dev/sda die erste Festplatte mit 60 GiB im System ist und erst nach dem Einstecken der SD-Karte ein weiteres Gerät unter /dev/sdb erkannt wurde.

Achtung!

Alle nun folgenden Befehle können sehr schnell dazu führen, dass sämtliche Daten auf den vorhandenen Partitionen gelöscht werden und sind deshalb mit äußerster Vorsicht zu benutzen!

Nun führt man folgenden Befehl aus, welcher sowohl die Partitionen als auch die Daten der SD-Karte komplett löscht (das X steht für den ermittelten Buchstaben). dd ist ein Kommandozeilenprogramm, welches u.a. sehr gut für das Kopieren/Klonen ganzer Partitionen geeignet ist. dd löscht mit diesem Befehl und den Optionen die ersten 16 MiB auf der SD-Karte und löscht damit auch die Partitionstabelle sowie den MBR. Die SD-Karte wird sozusagen auf "Null" gesetzt.

sudo dd if=/dev/zero of=/dev/sdX bs=1M count=16 conv=fsync 

Optionen und Argumente Erklärung
if=/dev/zero inputfile (Eingangsdatei), in diesem Falle /dev/zero
of=/dev/SD_Karte outputfile (Ausgangsdatei), in diesem Falle die ganze SD-Karte
bs=1M Daten sollen in 1 MiB-Blöcken geschrieben werden
count=16 Der 1 MiB-Block soll genau 16x nacheinander auf das Ziel geschrieben werden (= 16 MiB).
conv=fsync Der Schreibvorgang soll direkt synchronisiert und nicht gepuffert werden.

Vorbereiten des Abbildes

Die Installation erfolgt nicht im klassischen Sinne. Bei den heruntergeladenen Daten handelt es sich um sogenannte Abbilder (engl. "images"), die eine exakte Kopie einer vorhandenen Installation widerspiegeln. Die Daten müssen also nur aus dem Abbild "herausgeholt" und auf die SD-Karte kopiert werden. Dieses ist auf zwei Wegen möglich:

  1. Direkt aus dem gepackten Archiv [5] auf die SD-Karte:

    7z e -so linaro-alip-armhf-t4.7z | pv -s 4G |sudo dd of=/dev/sdX  
  2. Oder erst mit einem Archivprogramm entpacken und dann den entpackten Inhalt auf die SD-Karte kopieren:

    sudo dd if=linaro-alip-armhf-t4.img | pv -s 4G | sudo dd of=/dev/sdX 

Befehle und Optionen Erklärung
7z ruft das Packprogramm 7z auf
e Extrahieren des Inhalts
-so weißt 7z an, den Inhalt auf den StandardOutput (Standardausgabe) umzuleiten, sodass pv die Daten "entgegennehmen" kann
pv zeigt den Status des Prozesses in MiB / Sekunde an
-s 4G Weißt pv an, dass der Prozess 4 GiB groß ist, hierdurch wird zusätzlich eine Prozentangabe des Fortschritts mit ausgegeben
dd Die Eingabedatei (if=..linaro...img) soll über das Programm pv geleitet werden (damit man eine Statusangabe bekommt) und danach als Ausgabedatei (of=/dev/sd...) geschrieben werden

Es gibt auch ein grafisches Benutzertool namens air-imager, das auf dd aufsetzt. Hier ist jedoch keine Menüführung integriert und somit ist die Gefahr sehr groß, durch irrtümliche Zielwahl das eigene System zu löschen bzw. irreparabel zu beschädigen!

Das Beschreiben der SD-Karte mit dem Inhalt des Abbildes dauert ca. 5 bis 15 Minuten, je nach Geschwindigkeit der SD-Karte. Hat man eine Karte mit mehr als 4 GiB, so empfiehlt es sich, den restlichen Platz mit einem Partitionsmanager wie GParted aufzuteilen. Soll der MiniPC z.B. als Squid-Proxy dienen, sollte der restliche freie Speicherplatz als separate Partition angelegt werden. Natürlich kann der freie Speicher auch ungenutzt bleiben.

Der erste Start

Sobald die Karte im MiniPC steckt, kann die Spannungsversorgung angeschlossen werden. Nach ca. 20 Sekunden erscheint der Displaymanager. Da es sich hierbei um ein Linaro-Abbild handelt, wird ein Autologin ausgeführt und man ist automatisch als Benutzer linaro mit dem Passwort linaro angemeldet.

Hinweis:

Hilfe - wo ist die Tastatur und wo die Maus?

Am einfachsten ist es, sich einen kleinen Minihub für USB zu besorgen und so den einen USB-Platz zu "vervielfältigen" um daran eine Maus und eine Tastatur anzuschließen. Achtung aber bei zuvielen passiven USB-Geräten wie 2.5 Zoll Festplatten: diese beziehen den Strom über den MiniPC; es werden max. 2,5 Watt zur Verfügung gestellt.

Passwort ändern

Als erstes sollte man, aus Sicherheitsgründen, das Passwort ändern. Dazu öffnet man ein Terminalfenster ("Menü → Accessoires → LXTerminal") und führt dort folgenden Befehl aus:

passwd 

Nun wird man aufgefordert, das aktuelle Passwort einzugeben, danach muss das neue Passwort eingeben werden. Zur Sicherheit wird die Eingabe ein zweites Mal abgefragt. Siehe auch passwd.

Hinweis:

Bei passwd erfolgt keine optische Rückmeldung in Form von * oder ähnlichem.

WLAN einrichten

Eine WLAN-Verbindung lässt sich am einfachsten über den bereits integrierten NetworkManager einrichten. Alternativ ist es auch möglich, einen USB-Ethernet-Adapter am USB-Anschluss zu betreiben. Vorteile: geringer Stromverbrauch, da WLAN deaktiviert werden kann und höhere Geschwindigkeit. USB-Ethernet-Schnittstellen werden als eth1 und nicht als eth0 erkannt.

Die Shell

Wer gerne eine Shell benutzt, wird schnell feststellen müssen, dass die gewohnte Vervollständigung von Befehlen durch Drücken der Tab ⇆ -Taste nicht funktioniert. Das liegt am folgenden Paket, welches standardmäßig unter Linaro nicht installiert[1][2] ist:

  • bash-completion

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install bash-completion 

sudo aptitude install bash-completion 

Sprache ändern

Wer lieber die deutsche Sprache als Menü- und Systemsprache hat, kann diese schnell auf zwei Arten ändern. Jedoch muss in beiden Fällen entweder ein CD-Abbild von Ubuntu bzw. eine Internetverbindung vorhanden sein.

  1. Grafische Methode:
    Über "Menü → Settings → Languages" kann man sehr schnell seine Lieblingssprache auswählen.

  2. Über das Terminal:
    Ist man eher geneigt, die Systemsprache über das Terminal ändern zu wollen, folgt man den Anweisungen aus dem Artikel Spracheinstellungen. Zu beachten ist, dass nur die Installation von Paketen für LXDE (bzw. der gewählten Variante) notwendig ist.

Benutzername ändern

Standardmäßig beinhaltet Linaro den Hauptbenutzer linaro. Um den Benutzernamen zu ändern (von linaro auf z.B. mk802), muss man sich eines kleines Tricks behelfen, da man dieses nur kann, wenn der zu ändernde Benutzer nicht im System angemeldet ist. Am einfachsten ist es, wenn vorher der Autologin deaktiviert wurde.

Autologin deaktivieren

Der Autologin wird über die Konfigurationsdatei von LightDM deaktiviert. Dazu öffnet man mit einem Editor [4] die Datei /etc/lightdm/lightdm.conf und ändert die Zeile:

autologin-user=linaro

durch Hinzufügen von # am Zeilenanfang:

#autologin-user=linaro

Möchte man später doch wieder eine automatische Anmeldung aktivieren, kommentiert (entfernt das #) man die Zeile wieder ein.

root aktivieren

Um den Benutzernamen nun zu ändern, gibt man kurzfristig das Benutzerkonto von root frei. Dieses sollte sofort nach der Änderung des Benutzernamens wieder deaktiviert werden. Siehe hierzu auch sudo.

Achtung!

Das Aktivieren von root als Benutzer wird normalerweise nicht empfohlen, da es hierbei zu erheblichen Sicherheitsrisiken kommen kann! Es wird deshalb eindringlich noch einmal darauf hingewiesen, dass ausschließlich die folgenden Befehle als root ausgeführt werden sollten und danach der root-Zugang sofort wieder deaktiviert wird.

sudo passwd 

Danach startet man das System durch:

sudo reboot 

neu und meldet sich als root an.

Benutzer ändern

Zuerst überprüft man, ob der Benutzer linaro wirklich nicht mehr im System aktiv ist. Dies geschieht am einfachsten durch Aufruf von:

top -u linaro 

top ist ein Taskmanager für Terminalfenster, der Parameter -u linaro weißt top an, nur die Prozesse des Benutzers linaro anzuzeigen. Sollte noch ein Prozess des Benutzers linaro aktiv sein, kann dieser einfach durch Drücken der Taste K , gefolgt von der Prozessnummer (PID), die man killen möchte und abschließendes Bestätigen durch 2x beendet werden. Sind alle Prozesse von linaro beendet, verlässt man top durch Drücken der Taste Q . Nun ändert man den Benutzer linaro wie folgt in mk802 (oder jeden anderen gewünschten und erlaubten Benutzernamen):

usermod -l mk802 linaro 

Also erst der neue, dann der alte Benutzername. Weiterführende Hinweise sind dem Artikel usermod zu entnehmen. Nun muss noch der persönliche Ordner unbenannt werden. Hierzu wechselt man nach /home und führt dort den Befehl:

mv linaro mk802 

aus, welcher das Homeverzeichnis umbenennt. Nun muss nur noch dem System mitgeteilt werden, dass dem geändertem Benutzernamen ein geändertes Benutzerverzeichnis zugewiesen wurde:

usermod -d /home/mk802 -m mk802 

Jetzt startet man das System durch Eingabe von:

reboot 

neu und loggt sich abschließend als mk802 ein. Dann deaktiviert man durch Eingabe von

sudo password -l root 

den root-Zugang wieder.

ssh-Server einrichten

Dient der MiniPC als reiner Server, möchte dieser auch ab und administriert werden. Anstatt jedes Mal eine Tastatur, eine Maus und einen Monitor anzuschließen, empfiehlt sich stattdessen eine Terminalsitzung über das Netzwerk zu starten. Dafür eignet sich am besten der ssh-Client, welcher bereits Bestandteil jeder Ubuntu-Variante ist und ein SSH-Server, der durch folgendes Paket auf dem MiniPC installiert wird:

  • openssh-server

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install openssh-server 

sudo aptitude install openssh-server 

Nach der Installation kann man sich von jedem beliebigen Rechner aus (vorausgesetzt, ein ssh-Client ist vorhanden) auf dem Server anmelden:

ssh -l mk802 SERVER-IP 

eingibt. Sobald die Verbindung erfolgt ist, sollte man die Frage nach der Speicherung des Schlüssels mit "Ja" beantworten. Nun gibt man das Passwort ein und landet automatisch in einer Terminalsitzung auf dem Server.

ssh-Verbindung trennen - Programme weiterlaufen lassen

Mit Hilfe von Screen ist es sehr einfach, sich über das Netzwerk an einer Konsole am Server anzumelden, ein Programm zu starten und sich abzumelden, wobei das Programm weiterhin ausgeführt wird, obwohl die Verbindung getrennt ist. Das Programm ist unter Ubuntu vorinstalliert, ansonsten installiert[1] man das folgende Paket:

  • screen

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install screen 

sudo aptitude install screen 

Anschließend ruft man screen einfach auf. Beendet wird screen durch Eingabe von exit bzw. Strg + D . Möchte man hingegen die Sitzung erhalten, drückt man nur Strg + A , gefolgt von D zum Lösen (detach) einer Verbindung. Möchte man sich später wieder verbinden, gibt man einfach nur screen -r in einer Konsole ein.

Tuning

Da der Minirechner nur mit 512 bzw. 1024 MiB ausgestattet ist, lohnt sich das Feintuning für ein paar MiB Gewinn freien Speichers sowie ein höherer Datendurchsatz bei Schreibvorgängen. Siehe hierzu auch die folgenden Wikiartikel:

LightDM deaktivieren

Dient der Rechner ausschließlich als Server, kann LightDM dauerhaft deaktiviert werden. Dazu erstellt man mit einem Editor [4] die Datei /etc/init/lightdm.override und schreibt das Wort manual hinein. Nach dem nächsten Neustart wird LightDM nicht mehr gestartet.

Möchte man später LightDM wieder aktivieren, löscht man diese Datei einfach. Anschließend kann in einem Terminalfenster durch den Befehl:

sudo service lightdm start 

die grafische Anmeldung wieder gestartet werden.

Optionen für Optimierungen der SD-Karte

Variante 1

Um den Lebenszyklus der SD-Karte zu verlängern und die Durchsatzrate zu erhöhen, kann jedes Linux-System dazu angewiesen werden, Schreibvorgänge im Arbeitsspeicher zu puffern (statt sie auszuführen). Diese Vorgehensweise birgt das Risiko eines Datenverlusts, denn es zwingt das System dazu, geplante Schreibvorgänge auf der Festplatte solange vorzuhalten, bis der hinterlegte Wert abgelaufen ist. Problematisch wird das bei einem plötzlichem Absturz des Systems, da möglicherweise die komplette Zeitspanne in den Logdateien fehlt und die Fehlersuche somit wesentlich erschwert wird bzw. Daten, welche vorgehalten, aber nicht geschrieben wurden, verloren gehen.

Dazu muss in der Datei /etc/sysctl.conf folgende Zeile hinzugefügt werden:

vm.dirty_writeback_centisecs=12000

Der neue Wert wird in hundertstel Sekunden angegeben. In diesem Beispiel werden erst nach 2 Minuten (=12000 Centisecs) Daten aus dem Speicher auf die SD-Karte geschrieben.

Variante 2

Sinnvoll, nicht nur beim MiniPC, ist es außerdem, die Schreibzugriffe allgemein zu reduzieren. Dieses erreicht man, indem das Betriebssystem zusätzlich über der Datei /etc/fstab angewiesen wird, Daten nicht sofort zu schreiben und den Zeitpunkt des letzen Zugriffs auf eine Datei nicht zu speichern. Dazu fügt man die markierten Werte in der Zeile

/dev/mmcblk0p2 /    ext4 defaults,async,noatime 0 1

ein.

Problembehebung

Programme

Nicht alle Programme, die man aus dem Paketquellen für die Architekturen i386 und amd64 kennt, sind als Paket für die ARM-Architektur verfügbar. Meistens bieten auch PPAs keine Auswahl an ARM-Architekturpaketen an. Möchte man sich ein spezielles Programm auf dem MiniPC haben, muss man es selbst kompilieren oder einen Cross-Compiler einsetzen.

Medieneinbindung schlägt fehl

Falls beim Versuch, ein Medium wie CD-ROM oder USB-Stick einzubinden, der Fehler

"Adding read ACL for uid 1000 to /media/BENUTZER failed"

auftaucht, müssen die folgenden Befehle für jeden Benutzer ausgeführt werden, da sonst Medien wie USB-Laufwerke, USB-Sticks etc. nur mit Root-Rechten eingebunden werden können. Hierzu öffnet man ein Terminalfenster, wechselt zu /media und führt (z.B. für den Benutzer mk802) folgende Befehle aus: [7]

sudo mkdir mk802
sudo chown -R mk802 mk802/
sudo chgrp -R linaro mk802/ 

Diese Revision wurde am 25. Januar 2014 18:21 von aasche erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware, Netzwerk, Server, Android