Schon für 100 Euro gibt es Tablets oder Smartphones, die leistungsfähiger als ein zehn Jahre alter Standard-PC sind. Mit zahlreichen Apps für Android oder iOS und Internetzugang sind die Kleinrechner wahre Multitalente und darum zu Recht beliebt. Wir schauen, wie Linux reagiert, wenn Sie ein solches Gerät an den PC anschließen.
Moderne mobile Geräte, also Smartphones und Tablet-Computer, bringen große Speicherkapazitäten mit und können große Mengen an Musikdateien und anderen Dokumenten speichern. Für den Transfer der Dateien greifen die Besitzer in der Regel auf Synchronisierungsdienste zurück, so kann man z. B. mit der Dropbox-App bequem auf Dokumente zugreifen, die man vorher vom PC aus in die Dropbox geschoben hat. Da alle Geräte und auch der PC ständig online sind – entweder über WLAN oder über mobiles Internet –, stellt sich selten die Frage des physischen Transfers.
Trotzdem ist es interessant zu schauen, was beim Anschließen eines Handys an den Linux-PC passiert: Wollen Sie z. B. auf ein neu gekauftes Smartphone die 5 GByte große MP3-Sammlung kopieren, ist der WLAN-Weg nicht unbedingt der beste. Aber kommen die Geräte mit einem Direkttransfer über das USB-Kabel überhaupt klar? Wir haben mehrere Geräte von Apple (iOS) und Android-Anbietern an einen aktuellen Linux-PC mit OpenSuse 13.2 angeschlossen und getestet, welche Möglichkeiten des Zugriffs es gibt. Der Artikel beginnt mit einer Besprechung der Android-Geräte, denn dieses mobile Linux-basierte Betriebssystem ist der klare Marktführer. Danach geht es um iOS-Geräte.
USB-Verbindungen
Vorab ein schlechte und eine gute Nachricht: Die USB-Verbindungsexperimente waren sämtlich erfolglos, man kommt auf dem Weg nicht zuverlässig an die Dateien auf dem Handy heran, das galt im Test sowohl für OpenSuse als auch Kubuntu – im Internet finden sich zwar zahlreiche Anleitungen, wie es geht (und wie man eventuelle Probleme behebt), aber auch genauso viele frustrierte Rückmeldungen, dass keines der Verfahren erfolgreich war. Wie so oft gilt hier: YMMV (“your mileage may vary”), auf Deutsch: Bei Ihnen könnte es besser oder schlechter laufen als in unseren Tests.
Die gute Nachricht: Wer daheim ein WLAN betreibt, kann auf USB-Experimente verzichten und Dateien drahtlos übertragen – das funktioniert völlig problemlos, zumindest mit Android-Geräten. Für iOS gibt es ähnliche Optionen, die aber hinter Android zurück bleiben. Als Einschränkung bleibt hier nur, dass der WLAN-Transfer bei großen Datenmengen eben ein wenig Zeit benötigt.
Android
Für unsere Tests haben wir die Samsung-Smartphones Galaxy S5, S3 und S3 mini sowie das Galaxy Tab und einen älteren No-name-Tablet-PC von Aldi via USB an den PC angeschlossen. Unabhängig vom jeweiligen Gerät war das Ergebnis sehr enttäuschend: Zwar zeigte KDE sofort ein neues Gerät an und schlug vor, Bilder zu importieren oder den Dateimanager zu starten (Abbildung 1), es war aber kein Zugriff auf die Dateien möglich: Jeder Versuch, als normaler Benutzer mit den Geräten zu arbeiten, führte regelmäßig zur Fehlermeldung Konnte das USB-Gerät nicht beanspruchen.

Abbildung 1: Per USB angeschlossene Android-Geräte erkennt Linux sofort und bietet verschiedene Zugriffsmöglichkeiten an.
Abhilfe schien zunächst das Öffnen eines Dateimanagerfensters mit Administratorrechten zu schaffen (Anwendungen / System / Dateiverwaltung / Dateimanager — Superuser-Modus oder schneller über die Suche nach Datei und Auswahl des Treffers Dateimanager — Superuser-Modus), denn damit ließ sich zumindest die Ordnerstruktur auf dem internen Gerätespeicher sowie auf einer eingebauten SD-Karte anzeigen. Bei Versuchen, einzelne Dateien per Drag & Drop auf den Rechner zu übertragen, erschien jedoch meist nach kurzer Zeit eine Fehlermeldung zum MTP-Protokoll (Abbildung 2).

Abbildung 2: Beim MTP-Zugriff via USB sieht man zwar die Ordnerstruktur auf dem Android-Gerät, aber Dateizugriffe führen regelmäßig zu nicht behebbaren Fehlern.
Im nächsten Versuch haben wir die Software go-mtpfs getestet, die sich unter OpenSuse via sudo zypper in go-go-mtpfs installieren lässt, Kubuntu-Anwender installieren mit sudo apt-get install mtpfs. Nun ist nur noch ein neuer Ordner (z. B. Android direkt im Home-Verzechnis) zu erzeugen, und dann gibt man das Kommando
go-mtpfs ~/Android
ein (bei Kubuntu: mtpfs ~/Android ohne führendes “-go”). Dieser Befehl hängt das Android-Gerät im angegebenen Ordner ein, und nun ist der Zugriff über den Dateimanager Dolphin, aber auch aus der Shell sowie beliebigen anderen Anwendungen heraus möglich. Im Terminalfenster, in dem go-mtpfs gestartet wurde, erscheinen noch Protokollmeldungen über jeden angestoßenen Dateitransfer.
Mit diesem Tool funktionierte der Zugriff anfangs ganz gut, aber auch hier brach nach kurzer Zeit die Verbindung mit MTP-Fehlermeldungen ab.
Zum Vergleich: Auch Windows-Anwender berichten oft von Problemen beim Zugriff auf MTP-Geräte, aber in unserem Test gab es mit mehreren Android-Geräten keinerlei Probleme. So konnten wir z. B. ohne Schwierigkeiten Dateien zwischen zwei Samsung-Galaxy-Geräten hin und her kopieren (Abbildung 3). Beim ersten Anschluss eines Android-Geräts war Windows 8 zwar eine halbe Stunde damit beschäftigt, “neue Hardware einzurichten” (detaillierter war der Hinweis des Betriebssystems nicht), aber danach klappte alles reibungslos. Wer ein Dual-Boot-System mit Windows und Linux besitzt, sollte also für Massentransfers vom oder zum Handy auf Windows zurückgreifen – Besitzer Windows-freier Rechner wird diese Botschaft nicht freuen (siehe Kasten Kommentar).

Abbildung 3: Unter Windows funktionierte in unserem Test der Zugriff auf Android-Geräte reibungslos – auch mit zwei gleichzeitig via USB angeschlossenen Smartphones.
Kommentar
Mein Smartphone arbeitet mit Android, ist also im Grunde ein weiterer Linux-PC (Abbildung 4). Ich habe es gekauft, weil ich auch auf dem PC mit Linux arbeite, die beiden Geräte gehören damit zum gleichen Ökosystem. Das war derselbe Grundgedanke, dem auch Apple-Benutzer folgen, wenn sie sich passend zu MacBook und iMac ein iPhone und ein iPad kaufen: Das wird schon alles gut zusammenspielen.

Abbildung 4: Die Versionsinformationen verraten es: Auf diesem Galaxy S5 läuft ein Linux-Kernel 3.4.0 – auch wenn das Wort “Linux” nicht auftaucht.
Bei Apple ist das auch richtig, da ist alles aus einem Guss, man versteht sich. Aber in der Android-Welt gelten andere Regeln. Die ersten Android-Geräte haben sich als externe Datenträger angemeldet, wenn man sie an einen Rechner anschloss – das ist perfekt, denn dann handelt es sich aus Sicht des Rechners einfach um einen USB-Stick, und beim Zugriff gibt es keine Schwierigkeiten. Aber nein, Android macht das viel cleverer und setzt auf Microsofts MTP-Protokoll (Media Transfer Protocol), eine Weiterentwicklung von PTP (Picture Transfer Protocol). Beim Anschluss an einen Linux-PC läuft das nicht rund – so gar nicht rund. Hinweise aus dem Internet, dass es auch unter Windows manchmal Probleme beim MTP-Zugriff gibt, stimmen mich nicht versöhnlich, denn wir reden nicht von “manchmal”. (Die Wikipedia-Seite zu MTP verrät: “Unter Linux, Windows und OS X gibt es oft Probleme beim Zugriff auf MTP-Geräte.”) Was bitte ist so schwierig daran, zwei Geräte über ein Kabel zu verbinden und den Austausch von Dateien zu erlauben?
Die Begründung für die Umstellung auf MTP ist, dass das Android-Gerät während der MTP-Anbindung weiterhin voll benutzbar bleibt – bei einer USB-Stick-artigen Nutzung gibt es dann konkurrierenden Zugriff auf Dateien, der für das Betriebssystem auf dem Handy oder Tablet problematisch ist. Aber dann sollen die Hersteller halt einen reinen Transfermodus anbieten, in den man das Gerät booten kann, um die Daten zu kopieren.
Die Situation zeigt leider, dass Linux-Anwender für Android-Entwickler Google keine wichtige Zielgruppe sind. Kaufmännisch gesehen ist das sicher verständlich, weil die Zahl der Linux-Desktops im Vergleich zu den Windows-Installationen klein ist – aber sich am Linux-Kernel kostenlos zu bedienen und dann nicht mal dafür zu sorgen, dass die Linux-Gemeinde die Geräte gescheit nutzen kann, ist – milde gesagt – schwach. (Hans-Georg Eßer)
Bluetooth
Zwischen einem Android-Gerät und einem Linux-PC lässt sich eine Bluetooth-Verbindung aufbauen – das klappte im Test auch problemlos (Abbildung 5), nur ist der Nutzen dieser Verbindung stark eingeschränkt: Einzelne Dateien kann man nun zur Gegenseite schicken, wo man die Annahme jeweils bestätigen muss. Schnell ein Verzeichnis rekursiv aufs Handy zu schieben, ist damit nicht machbar.

Abbildung 5: Über Bluetooth können Sie einzelne Dateien vom Android-Gerät an den PC (oder in die andere Richtung) schicken.
AirDroid rettet den Tag
Die komfortabelste Lösung für den Dateizugriff bietet die App AirDroid [3], die auf dem Android-Gerät auf Port 8888 einen HTTP-Server startet. Von Linux aus können Sie dann im Browser über die Adresse http://ip-adresse:8888/ auf diesen Server zugreifen – ip-adresse ersetzen Sie dabei durch die korrekte IP-Adresse, die das Gerät im lokalen Netz hat, AirDroid zeigt diese Adresse beim Aktivieren des Servers an. Die Verbindungsanfrage müssen Sie in AirDroid bestätigen, denn anderenfalls könnte sich jeder Nutzer in Ihrem WLAN auf dem Smartphone oder Tablet anmelden (Abbildung 6).

Abbildung 6: Wenn Sie vom Linux-PC aus auf den AirDroid-Server zugreifen wollen, fragt die App, ob Sie das zulassen.
Abbildung 7 zeigt die Oberfläche, die sich Ihnen anschließend im Browser präsentiert: Sie sieht wie ein klassischer Desktop mit Icons und Programmfenstern aus und funktioniert auch genauso. Ein Klick auf das Icon Dateien startet einen Dateimanager, mit dem Sie durch die Verzeichnisstruktur des Android-Geräts navigieren. Haben Sie eine Datei gefunden, die Sie auf den Linux-PC kopieren möchten, klicken Sie diese an und wählen im Browser-üblichen Downloaddialog, dass Sie diese speichern oder in einem Programm öffnen wollen. Auch der Upload von Dateien (also das Kopieren vom Rechner auf das Android-Gerät) ist möglich – dazu klicken Sie im AirDroid-Dateimanagerfenster rechts oben auf Hochladen.

Abbildung 7: Der in AirDroid eingebaute Webserver zeigt im Browser eine Desktop-Oberfläche an, auf der Sie über Icons Programmfenster öffnen. Damit klappt der Datentransfer zwischen Linux-PC und Mobilgerät.
AirDroid bietet noch viele weitere Features, so können Sie z. B. die eingebaute Kamera aktivieren und sich einen Live-Stream anzeigen lassen. Die App ist gratis und funktioniert ohne Registrierung oder ähnliches – Sie können aber auf der AirDroid-Webseite einen Account anlegen und dann (nach Anmeldung Ihres Geräts) über die Adresse web.airdroid.com auf Ihr Android-Gerät zugreifen, ohne dessen IP-Adresse zu kennen. Gegen eine (monatliche oder jährliche) Nutzungsgebühr lassen sich zudem Premiumfeatures aktivieren [4].
Alternativ-Firmware CyanogenMod
Experimentierfreudige Android-Besitzer können auch die vorinstallierte Android-Version gegen eine aufgebohrte Version austauschen, hier bietet sich z. B. CyanogenMod [2] an, mit dem Android einem richtigen Linux-System ähnlicher wird – dann können Sie problemlos einen SSH-Server einrichten und darüber Dateien hin und her kopieren.
Fortgeschrittene Anwender können auch den ADB-Modus (Android Debug Bridge) verwenden, den Entwickler zur Fehlersuche in Android-Anwendungen nutzen – Hinweise dazu finden Sie im Kasten ADB-Modus.
ADB-Modus
Den ADB-Modus (Android Debug Bridge) verwenden Android-Software-Entwickler, aber auch Anwender können ihn nutzen, um von der Shell aus auf Dateien auf dem Android-Gerät zuzugreifen. Dafür muss die ADB-Software unter Linux installiert sein, und auf dem Android-Gerät müssen Sie den ADB-Modus aktivieren:
- Öffnen Sie auf dem Smartphone oder Tablet die Einstellungen und navigieren Sie zum Bereich Geräteinformationen.
- Hier finden Sie einen Eintrag Modellnummer, den Sie siebenmal hintereinander berühren; danach erscheint eine Meldung, dass die Entwickleroptionen freigeschaltet sind.
- Wechseln Sie in den Einstellungen in die neue Rubrik Entwickleroptionen und aktivieren Sie dort das USB-Debugging.
Wenn Sie jetzt das Gerät via USB an den Linux-Rechner anschließen, können Sie mit adb Kontakt aufnehmen – dafür öffnen Sie ein Terminalfenster und geben den Befehl adb devices ein. Auf dem Android-Display erscheint eine Rückfrage, ob Sie den Verbindungsaufbau vom PC akzeptieren. Bestätigen Sie die Anfrage. Wenn Sie dann erneut adb devices eingeben, sollten eine Geräte-ID (im Beispiel in Abbildung 8: 4bb1d6c1) und dahinter der Status device erscheinen.
Jetzt können Sie sich mit adb shell auf dem Gerät einloggen. Auch dort läuft dann eine klassische Linux-Shell, in der Sie mit Kommandos wie cd und ls durch die Verzeichnisse navigieren und diese auflisten können.
Für den Transfer von Dateien oder Verzeichnissen verwenden Sie die adb-Kommandos push (kopiert vom PC auf das Android-Gerät) und pull (umgekehrt). In der Abbildung sehen Sie ein Beispiel für den Transfer einer PDF-Datei, welche der Adobe Reader unter Android im Ordner /storage/sdcard0/Download/Adobe Reader/ (auf der SD-Karte) abgelegt hat.

Abbildung 8: Über das Tool “adb” können Sie via USB Dateien zwischen Android-Geräten und dem Linux-PC kopieren – aber nur durch die Eingabe von Shell-Kommandos.
Einige Ordner und Dateien bleiben aber verschlossen – auch unter Android gibt es einen Benutzer root, und über die ADB-Shell haben Sie nicht die nötigen Rechte für den Zugriff. Das können Sie ändern, indem Sie das Gerät “rooten”; das ist u. a. über die Installation von CyanogenMod möglich. Die allgemeine Vorgehensweise zum Rooten ist für jedes Android-Gerät unterschiedlich, weswegen wir hier nicht weiter darauf eingehen.
Apple-Hardware
Überraschenderweise gibt es beim Zugriff auf neuere iPhones und iPads mit aktuellen Linux-Versionen dieselben Probleme, wie sie bereits für Android-Mobilgeräte beschrieben wurden. Die iOS-Vertreter melden sich dabei nicht als MTP-Geräte, sondern über das veraltete PTP-Protokoll an, und darüber wird nur der Ordner mit den Fotos freigegeben. Im Test war dieser Zugriff etwas stabiler als bei den MTP-Android-Geräten.

Abbildung 9: Ein via USB angeschlossenes iPhone oder iPad meldet sich als PTP-Gerät am Linux-PC an. Das ermöglicht nur den Zugriff auf die Fotos.
Ähnlich wie die weiter oben beschriebene Software Go-mtpfs ist für den Zugriff auf Apple-Mobilgeräte ein Programm namens ifuse verfügbar [6], über das sich die Verzeichnisstruktur des iOS-Geräts an einer beliebigen Stelle in den Linux-Verzeichnisbaum einhängen lässt – das hat in unseren Tests aber nicht funktioniert.
iFiles
Für den Dateitransfer empfiehlt sich auch auf Apple-Geräten die Installation einer App, z. B. iFiles. Dort können Sie in den Einstellungen (Abbildung 10) einen Webserver aktivieren, der auf Port 8080 Verbindungen entgegen nimmt. Ähnlich wie bei AirDroid öffnen Sie dann im Browser die Adresse http://ip-adresse:8080/ und sehen dieselbe Verzeichnisstruktur wie auf dem iOS-Gerät (Abbildung 11).
Anders als bei AirDroid bietet iFiles aber keinen echten Zugriff auf das ganze iOS-Dateisystem – stattdessen entsteht hier eine komplett neue (und anfangs leere) Verzeichnisstruktur, die Sie aus anderen iOS-Apps heraus zunächst befüllen müssen. Dateien, die Sie vom Linux-PC aus auf iPhone oder iPad übertragen, können Sie dann aus iFiles heraus in einer passenden Anwendung öffnen.
Prinzipiell ist mit iFiles also der Dateitransfer genauso wie in AirDroid möglich, es sind aber jeweils vorher oder nachher zusätzliche Schritte nötig.
Dropbox & Co.
Wenn Sie eh schon einen Dropbox-Account für die Synchronisation Ihrer PCs nutzen oder Dateien bei Google Docs speichern, können Sie eine passende App auf dem Smartphone oder Tablet nachinstallieren, sich anmelden und direkt mit dem Dateitransfer loslegen. In der Dropbox-App können Sie Dateien als Favoriten markieren: Dann bleiben sie dauerhaft auf dem Mobilgerät gespeichert, so dass Sie auch dann darauf zugreifen können, wenn Sie offline sind – vom heimischen WLAN abgeschnitten und wegen beschränkter Flatrate auch ohne die Möglichkeit, größere Datenmengen über das mobile Internet herunterzuladen. Einen ausführlichen Artikel zur Synchronisierung von Android-Geräten und Linux-PCs finden Sie in einer älteren EasyLinux-Ausgabe [1], für iOS-Geräte passen viele der dort beschriebenen Ansätze genauso.
Der Nachteil beim Einsatz eines Cloud-Dienstes ist, dass Ihre Daten “irgendwo im Netz” auf dem Server des Diensteanbieters liegen (siehe auch Artikel zum Thema Sicherheit ab Seite 55 dieser Ausgabe). Bei der Lösung über AirDroid oder iFiles übertragen Sie die Daten hingegen nur in Ihrem lokalen WLAN.
Fazit
Viele der ersten Handys und Digitalkameras mit USB-Anschluss (lange vor der Erfindung des Smartphones) waren unter Linux deutlich unkomplizierter anzuschließen: Anstecken, Gerät als externe Platte erkennen lassen, zugreifen, fertig. Moderne Smartphones und Tablets betreiben dagegen ihre USB-Schnittstelle im PTP- oder MTP-Modus, und der wird nicht gut unterstützt – u. a., weil PTP-/MTP-Treiber kein komplett einheitliches Protokoll sprechen, sondern Hardwaredetails über die angeschlossenen Geräte kennen müssen. Unsere Empfehlung ist darum sowohl für Android- als auch für iOS-Geräte, für Dateiübertragungen auf spezialisierte Apps (und eine WLAN-Verbindung) zu setzen oder einen der Synchronisierungsdienste wie Dropbox zu nutzen.
Glossar
-
MTP
-
Das Media Transfer Protocol ist eine Weiterentwicklung des Picture Transfer Protocol (PTP), welches ursprünglich für Digitalkameras entwickelt wurde und eine einheitliche Schnittstelle für den Zugriff auf solche Geräte schaffen sollte.
Infos
[1] Artikel zur Android-Synchronisation: Heike Jurzik, “Dasselbe in Grün – Android und Linux abgleichen”, EasyLinux 01/2013, S. 61 ff., http://linux-community.de/27425
[2] CyanogenMod: http://www.cyanogenmod.org/
[3] AirDroid: https://www.airdroid.com/
[4] AirDroid Premium: https://www.airdroid.com/de/pay/
[5] iFiles: https://itunes.apple.com/de/app/ifiles/id336683524
[6] ifuse: https://github.com/libimobiledevice/ifuse


