Ubuntu Touch/Terminal

Dieser Artikel bezieht sich auf Ubuntu Touch, die Variante von Ubuntu für mobile Geräte mit Touchscreen.

Getestet wurde der Artikel für folgende Version(en):

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Überblick über Ubuntu Touch

  2. Ein Terminal öffnen

  3. Root-Rechte

Achtung!

Für jegliche Veränderungen an Ubuntu Touch ist der Besitzer selbst verantwortlich. Weder die Artikelautoren noch ubuntuusers.de haften, falls Probleme auftreten oder das benutzte Gerät im schlimmsten Fall nie mehr gestartet werden kann. Tiefe Systemeingriffe können dazu führen, dass Ubuntu Touch durch einen sogenannten Flashvorgang neu aufgespielt werden muss.

Unter bestimmten Umständen könnte auch dies unmöglich werden - das Gerät und damit auch die Daten sind dann unwiederbringlich zerstört. Schwere Systemeingriffe wie Schreibzugriff auf das System sind inoffiziell, können beispielsweise im Fall der Nutzung von apt-get schnell zu Problemen führen und sind allgemein häufig von Garantieleistungen der Gerätehersteller/ Shops ausgenommen.

Inhaltsverzeichnis
  1. Terminal-Zugang
  2. Editor
  3. Systempartition beschreibbar machen
  4. Programme installieren
  5. Beispiele
  6. Links

Wiki/Icons/terminal.png Es bestehen mehrere Möglichkeiten, auf ein Ubuntu Touch Gerät [1] mittels Terminal zuzugreifen. Mit Hilfe einer solchen Terminalverbindung kann man dann Kommandozeilenbefehle am Gerät ausführen. Vom Terminal können auch Befehle mit Root-Rechten ausgeführt werden. Das Benutzerpasswort ist die PIN oder das Passwort welches man bei der Einrichtung für die Bildschirmsperre festgelegt hat.

Dieser Artikel beschreibt unterschiedliche Methoden zum Terminal-Zugang, entweder direkt am Touchbildschirm oder vom PC aus. In weiterer Folge werden einige typische Anwendungsfälle für einen Terminal-Zugang beschrieben, etwa das Editieren von Dateien, das Beschreibbarmachen des Systems oder Software Installation aus den Paketquellen, welche standardmäßig nicht vorgesehen und von den Apps aus dem Ubuntu Store deutlich zu unterscheiden sind.

Terminal-Zugang

App

Der einfachste Weg, eine Kommandozeile zum Gerät zu öffnen, ist die App Terminal zu installieren. Hiermit kann man direkt am Gerät den Zugang zum Terminal erlangen und mit der Tastatur von Ubuntu Touch Befehle eingeben. Tipps zur Nutzung der App befinden sich im Artikel Tipps_und_Tricks.

USB-Kabel

Mit Hilfe eines USB-Kabels kann das Gerät via Kommandozeile vom PC administriert werden. Hierzu ist es nötig, auf dem PC die Android Debug Bridge 🇬🇧 (ADB) wie folgt zu installieren [2]:

Paketliste zum Kopieren:

sudo apt-get install android-tools-adb 

Oder mit apturl die Pakete installieren. Link: apt://android-tools-adb

Nun muss man zunächst unter "Systemeinstellungen → Über → Entwicklermodus" diesen aktivieren. Dafür muss das Gerät zuvor mit einer PIN versehen werden, worauf dort auch hingewiesen wird. Ab dann lässt sich die Shell des Telefons auf dem PC öffnen. Das funktioniert aber nur, wenn der Bildschirm entsperrt ist.

Die Shell öffnet sich mit dem Befehl:

adb shell 

Wenn die Verbindung erfolgreich ist erscheint eine Eingabeaufforderung

phablet@ubuntu-phablet:~$

Zugangsprobleme zur ADB-Shell

Der Aufruf des Befehls

adb devices 

sollte mit einer Ausgabe wie

List of devices attached 
XY123456        device

beendet werden. Falls kein Gerät angezeigt wird, ist die USB-Verbindung zu überprüfen.

Kein Gerät gefunden

Es kann vorkommen, dass bei der Verbindung via USB kein Gerät gefunden wird (z.B. bei Ubuntu 12.04). In diesem Fall muss die sogenannte USB-ID des Herstellers des Ubuntu Touch Gerätes am PC konfiguriert werden. Das Blog Linuxwissen 🇩🇪 erklärt das Vorgehen sowohl für ADB als auch MTP. Im Folgenden wird nur das Vorgehen für ADB beschrieben:

Mit dem Befehl lsusb kann man diese ID ermitteln. Der Befehl liefert zwei hexadezimale Zahlen in der Form Hersteller-ID:Produkt-ID, zum Beispiel:

2a47:2008  

Damit die Verbindung funktioniert, muss man die Datei ~/.android/adb_usb.ini mit einem Editor (Abschnitt „Nano“) bearbeiten und eine neue Zeile mit der Hersteller-ID (die ersten vier Stellen vor dem Doppelpunkt) mit 0x vorangestellt eintragen. Passend zu obigem Beispiel muss man also

0x2a47

einfügen. Abschließend den adb-Server neustarten [2][3]:

sudo adb kill-server && sudo adb start-server 

ADB-Sperre dauerhaft deaktivieren

Es ist möglich, die ADB-Sperre, welche nach der Bildschirmsperre eintritt, zu deaktivieren. Bereits bestehende Logins in eine ADB-Shell sind von der Sperre nicht betroffen.

Achtung!

Nach dem Aufheben der Sperre ist kein Schutz der Daten bei einem Diebstahl des Geräts mehr gegeben.

Man sollte sich genau überlegen, ob das für die eigene Benutzungsweise wirklich nötig ist, da damit die Sicherheit reduziert wird. Als sichere Alternative bietet sich der Zugang über SSH an.

Der Befehl zum Aufheben der Sperre lautet:

adb shell sudo touch /userdata/.adb_onlock 

SSH

Mittels SSH kann man über das Netzwerk (z.B. WLAN) Terminal-Zugang zum Ubuntu Touch Gerät bekommen. Hierzu muss man zunächst den SSH-Server mit folgendem Befehl am Gerät starten:

sudo service ssh start 

Jetzt muss der Public Key (öffentliche Schlüssel) ggf. erst am PC erzeugt und anschließend zum Ubuntu Touch Gerät übertragen werden. Mittels adb erreicht man die Übertragung, indem man folgenden Befehl vom PC aus ausführt:

adb push ~/.ssh/id_rsa.pub /home/phablet/user.pub 

Schließlich muss der Key noch an die Datei ~/.ssh/authorized_keys angehängt werden, um das Einloggen über Authentifizierung mit Public Keys zu ermöglichen. Hierzu führt man diese Befehle in Ubuntu Touch aus:

mkdir ~/.ssh
mv ~/user.pub ~/.ssh
cat ~/.ssh/user.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys 

Wenn man möchte, dass der Server nach jedem Neustart des Geräts automatisch gestartet wird, kann man das folgendermaßen konfigurieren:

sudo setprop persist.service.ssh true  

Nun kann man vom PC aus mittels SSH auf dem Ubuntu Touch Gerät einloggen, oder über sshfs Dateien übertragen. Sollte die SSH-Verbindung nicht zustandekommen oder nach dem Verbindungsaufbau stocken, hilft es meist, den Bildschirm des Ubuntu Touch Gerätes kurz zu aktivieren, damit SSH aus der Bereitschaft aufwacht. Ein Entsperren des Bildschirmes ist dafür in der Regel nicht nötig.

Editor

Um im Terminal Dateien zu bearbeiten, steht der vorinstallierte Editor Nano zur Verfügung.

Hinweis:

Wenn die Taste (Enter) im Editor Nano in Verbindung mit der Benutzung einer ADB-Shell nicht richtig funktioniert, dann kann man auf einen anderen Editor wie den ebenfalls vorinstallierten vi ausweichen oder die Verbindung über SSH aufbauen.

Systempartition beschreibbar machen

Standardmäßig ist die Systempartition so im System eingebunden, dass sie nur gelesen, aber nicht beschrieben werden kann. Für einige erweiterte Konfigurationen wird aber eine beschreibbare Systempartition benötigt. Da sich Canonical gegen eine zweite Systempartition entschieden hatte, kann nach dem Eingriff des Beschreibbarmachens das System nicht auf den Werkszustand zurückgesetzt werden, ohne ein System neu aufzuspielen. Dazu kann man mit fastboot eine heruntergeladene Systemsicherung zurückzuspielen. Falls das System noch startfähig ist, kann stattdessen auch per ubuntu-device-flash an einem Ubuntu PC ein aktuelles Werkssystem aus dem Internet eingespielt werden.

Achtung!

Dies wird offiziell nicht von Canonical unterstützt, von der Gemeinschaft jedoch teilweise bereitwillig genutzt. Vorgenommene Änderungen können durch das Installieren von Aktualisierungen wieder verlorengehen. Unsachgemäße Systemveränderungen nach dem Beschreibbarmachen können Auswirkungen auf die Stabilität des Systems haben.

Sollten gravierende Probleme auftreten, kann es nötig werden, eigens angelegte Systemsicherungen zurückzuspielen oder das System neu zu installieren.

Man kann die Systempartition beschreibbar machen, indem man folgenden Befehl ausführt:

sudo mount -o remount,rw / 

Die Partition ist dann bis zum nächsten Neustart des Geräts beschreibbar. Wenn man ohne Neustart zum schreibgeschützten Zustand zurückkehren möchte, kann man das mit diesem Befehl erreichen:

sudo mount -o remount,ro / 

Um die Systempartition auch nach späteren Neustarts immer im Schreibmodus zu haben, muss mit folgendem Befehl eine Datei im System angelegt werden:

touch /userdata/.writable_image 

Sollte man später aus diesem dauerhaften Schreibmodus wieder zum schreibgeschützten Modus zurückkehren wollen, entfernt man die Datei wieder:

rm /userdata/.writable_image 

Systempflege in beschreibbarer Systempartition

Der freie Platz der beschreibbaren Systempartition ist extrem gering, da er nicht für systembeschreibende Eingriffe konzeptioniert und dimensioniert ist. Insbesondere vor der Installation von Programmen über apt-get sind daher Maßnahmen zu treffen, um mehr freien Platz zu schaffen. Dazu bietet sich neben der Auslagerung des Caches von apt vor allem an:

Programme installieren

Die Nutzung von offiziellen Ubuntu Touch Apps wird im Artikel Ubuntu Touch/Einrichtung (Abschnitt „Programme“) beschrieben. Dieser Abschnitt bezieht sich auf das inoffizielle Installieren von herkömmlichen Linux-Programmen. Hierzu wird die in Ubuntu übliche Paketverwaltung apt-get und die Internetverbindung des Mobilgerätes verwendet.

Achtung!

Diese Art, Programme zu installieren, ist offiziell nicht vorgesehen. Zudem kann dabei das System Schaden nehmen. Die von den Entwicklern empfohlene Methode, um alternativ zu apt-get in einem chroot Programme zu installieren, wird unter Recommended way to install regular(cli) .deb packages on Ubuntu Phone? 🇬🇧 in den Antworten beschrieben. Damit steht zwar mehr Platz und Stabilität zur Verfügung, jedoch möglicherweise nicht alle Funktionen und die Integration ins laufende System ist stark eingeschränkt.

Für Programminstallationen wird eine beschreibbare Systempartition benötigt. Die eigentliche Paketverwaltung erfolgt, wie auch auf anderen Ubuntu Systemen üblich, mit apt-get update und apt-get install PAKETNAME etc. Details zur Verwendung befinden sich im Artikel APT. Einige Ubuntu Touch spezifische Aspekte bei der Benutzung von apt-get sind im weiteren Artikelverlauf aufgelistet.

Grafische Programme

Zu bedenken ist, dass sich derzeit nur Kommandozeilenprogramme einfach starten lassen. Frühere Erfolge (bebilderter Erfahrungsbericht), grafische PC-Programme zu starten, sind im Ubuntu Touch Archiv - Grafische Programme vom Ubuntu PC dokumentiert.

Hinweis:

Zukünftig wird dafür das Projekt Libertine bzw. Puritine verwendet.

Freien Speicher beobachten

Da der Speicherplatz auf mobilen Geräten sehr beschränkt ist, empfiehlt es sich dringend, bei der Nutzung von apt-get stets den freien Speicher mit

df -h / 

zu kontrollieren. Gegebenenfalls bietet es sich an, die herunterzuladenden Pakete auf eine andere Partition auslagern, zum Beispiel so:

mkdir ~/apt-cache
sudo mount --bind ~/apt-cache /var/cache/apt/archives 

Dieser Befehl ist nur einmalig wirksam. Dauerhaft ist dies folgendermaßen umzusetzen, etwa am Beispiel einer optionalen Speicherkarte:

sudo rm -rf /var/cache/apt
mkdir /media/phablet/UUID/apt-cache
sudo ln -s  /media/phablet/UUID/apt-cache /var/cache/apt 

Dabei muss man die UUID der Speicherkarte einsetzen.

Softwareaktualisierungen

Wenn man apt-get nutzt, sollte man Aktualisierungen folgendermaßen installieren:

Achtung!

Canonical unterstützt nur das Updaten des Systems aus den Systemeinstellungen heraus. Bei der Benutzung von apt-get update kann es vorkommen, dass das System nicht korrekt funktioniert. Der Benutzer sollte darauf vorbereitet sein, gegebenenfalls Reparaturen oder eine Neuinstallation durchzuführen.

Sollte man doch das Update für die System-App Ubuntu einspielen, hat das folgende Auswirkungen auf bereits mit apt-get installierte Programme:

Manpages installieren

Standardmäßig ist keine Unterstützung für Manpages installiert. Dies kann aber durch

Paketliste zum Kopieren:

sudo apt-get install man-db manpages-de 

Oder mit apturl die Pakete installieren. Link: apt://man-db,manpages-de

nachgeholt werden, wobei manpages-de optional für die deutschen Übersetzungen ist. Zu beachten ist aber, dass dadurch nicht direkt die Manpages zu bereits installierten Anwendungen verfügbar werden. Durch Reinstallieren des gewünschten Paketes kann man dies aber für bestimmte Anwendungen nachholen.

Beispiele

Soundrecorder

Das Mikrophon kann mit

arecord test.wav 

eine Datei aufnehmen, welche zum Beispiel per

aplay test.wav 

wiedergeben werden kann. Beide Programme sind vorinstalliert.