Ubuntu 12.04 Precise Pangolin
Der MK802 ist ein sogenannter Minicomputer des Herstellers Rikomagic / Rikomagic Deutschland 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.
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 |
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/
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.
Einer der Hauptvertreiber der Minicomputer, Miniand , 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 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.
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.
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.
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. |
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:
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
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 |
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.
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.
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.
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.
Bei passwd
erfolgt keine optische Rückmeldung in Form von *
oder ähnlichem.
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.
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
mit apturl
Paketliste zum Kopieren:
sudo apt-get install bash-completion
sudo aptitude install bash-completion
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.
Grafische Methode:
Über "Menü → Settings → Languages" kann man sehr schnell seine Lieblingssprache auswählen.
Ü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.
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.
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.
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.
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.
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.
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
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.
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
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.
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:
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.
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.
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.
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.
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 16. Juli 2014 15:29 von natraj7 erstellt.