Nach wie vor ziehen Android-User die… Räusper… Arsch-Karte, wenn man ein aktuelles Android-Handy hat, das nur noch via Media Transfer Protocol (MTP) mit dem Rechner sprechen möchte. Betroffen sind Handys wie etwa das Galaxy Nexus (*) oder das Samsung Galaxy SIII (*), in denen der Hersteller nicht wieder den Massenspeicher-Modus eingebaut hat. Solche Handys lassen sich nicht mehr ordentlich an einen Linux-Rechner anschließen und per USB-Kabel mit Daten beladen. Krücken wie ein FTP- und SSH-Server oder aber auch proprietäre Tools wie AirDroid helfen, doch drahtlos dauert das Übertragen großer Datenmengen meist deutlich länger als über Kabel. Mit go-mtpfs hatte ich schonmal eine Lösung vorgestellt, die via FUSE einen MTP-Androiden ordentlich ins Dateisystem einbindet, jmtpfs ist nun eine weitere Lösung für Macs und Linux-Systeme.
fmtpfs wurde von Jason Ferrara für Macs und Linuxe entwickelt, ich habe das kleine Tool unter einem aktuellen Ubuntu 12.04 getestet. Es sollte aber auch auf anderen Linux-Distributionen laufen, ihr müsst nur die passenden Bibliotheken zum Bauen des Programms installieren. Unter Debian und Ubuntu müsstet ihr euch an folgender Anleitung orientieren können, bei anderen Distros lauten wahrscheinlich die Paketnamen etwas anders. Die Bau-Anleitung ist nicht sonderlich schwer, ihr müsstet das auf jeden Fall hinbekommen.
Ich für meinen Teil würde das Programm in /tmp bauen, so bleiben später keine sinnlosen Daten liegen. Öffnet daher das Terminal, geht in den /tmp-Ordner und ladet dort die aktuelle Version des Tarballs herunter. Weil ich eh gerade im Terminal stecke, mache ich das mit wget. Achtet bitte aber darauf auf der Homepage des Entwicklers zu prüfen, ob es nicht auch eine neuere Version als 0.4 gibt. Ändert daher eventuell bitte die URL zum Download. Packt anschließend das Archiv mit dem Quellcode mit tar -xzf aus und fügt euren User noch in die Gruppe “fuse” ein, bedenkt bitte dass die Gruppen-Zuordnung erst aktiv wird, wenn ihr euch einmal aus und wieder einloggt.
$ cd /tmp $ wget http://research.jacquette.com/wp-content/uploads/2012/05/jmtpfs-0.4.tar.gz $ tar -xzf jmtpfs-0.4.tar.gz $ cd jmtpfs-0.4 $ sudo adduser $USER fuse
Nun geht es ans eigentliche Kompilieren, wobei es noch ein kleines bisschen Vorarbeit zu leisten gibt. Installiert bitte in einem ersten Schritt die nötigen zum Bauen des Pakets nötigen Bibliotheken und Programme, über die Paketverwaltung sollte das recht schnell gegessen sein. Anschließend geht es es ans Kompilieren und Installieren der Anwendung mit configure und make. Die Fragen bei $ checkinstall könnt ihr alle mit einem Return durchklicken, ihr müsst nichts extra eintippen. Der Vorteil gegenüber einem einfachen $ make install ist, dass euer selbst-gebautes Programm über die Paketverwaltung installiert wird und ihr es so auch wieder einfach entfernen könnt.
$ sudo apt-get install libmtp-dev libfuse-dev libmagic-dev checkinstall build-essential $ ./configure $ make $ sudo checkinstall
Danach ist der Keks eigentlich komplett gegessen. Steckt euer Handy an den Rechner an und prüft ob unter Einstellungen -> Speicher -> Menü-Button (rechts oben) -> USB-Verbindung (PC) ob euer Handy auch wirklich MTP eingestellt ist und nicht das ältere PTP. Legt dann in eurem Home-Verzeichnis einen Mount-Punkt (aka Verzeichnis) an und lasst jmtpfs dort euren Androiden laden.
$ mkdir ~/android $ jmtpfs ~/android/ Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7310/P7510/N7000/I9100/Galaxy Tab 7.7/10.1/S2/Nexus/Note. Android device detected, assigning default bug flags
Danach könnt ihr euren Dateimanager anwerfen und eure Daten auf dem Handy unter ~/android einsehen. Die Performance sollte besser als über WLAN sein, von daher lohnt es sich schon auf jmtpfs oder go-mtpfs zu setzen, wenn man größere Datenmengen kopieren möchte. Um das Handy auszuhängen könnt ihr entweder im Dateimanager auf das kleine “Auswurf-Symbol” neben dem Eintrag in der Seitenleiste klicken oder auch wieder das Terminal bemühen.
$ fusermount -u ~/android
Der Befehl $ fusermount -u hängt das Verzeichnis aus, in dem ihr euer MTP-Android-Handy eingebunden hattet. Achtet aber bitte drauf, dass im Vorfeld vorher alle Dateioperationen erfolgreich beendet wurden, sonst droht schnell Datenverlust.
Handys mit USB-Massenspeichermodus von HTC
Solange Bug #972311 nicht behoben wurde, sind jmtpfs oder go-mtpfs daher eine ganz brauchbare Krücke, es wäre aber schön, wenn MTP unter Linux einfach funktionieren würde, immerhin hat das MS auch geschafft
Der Anteil der Smartphone-User mit Android 4.0 steigt beständig, von daher können sich Linuxer nicht vor MTP verschließen, die Technik wird immer wichtiger, gerade weil es immer mehr Geräte mit Android 4.0 ICS gibt, die auf eine zusätzliche Speicherkarte verzichten.
Allerdings gibts es diesbezüglich auch eine gute Nachricht, die ausnahmsweise “für” ein Hersteller-ROM spricht. HTC baut zum Beispiel wieder den Massenspeicher in seine Geräte der HTC ONE-Serie (*) ein. Beim Anschluss an den Rechner erscheint ganz normal die Frage, ob die Daten als “Festplatte” freigegeben werden, einen kurzen Moment später meldet die Linux-Desktopumgebung dann ein neues Laufwerk, das geschieht bei meinem Galaxy Nexus (*) leider eben nicht.
Linuxern, die mit dem Gedanken spielen ein neues – oder ein erstes – Android-Handy zu kaufen, sei daher zum Beispiel das HTC ONE S (*) ans Herz gelegt. Das Handy ist brutal schnell, hat den fast idealen Form-Faktor, ist klasse verarbeitet, hat ein tolles Display und Android 4.0. Man muss zwar mit HTCs eigener Oberfläche “Sense” leben, hat aber dafür eben wieder den Massenspeichermodus zur Hand.
(Die mit einem Asterisk (*) markierten Links sind Affiliate-Links zum Partnerprogramm von Amazon. Die dadurch generierten Einnahmen tragen zum Erhalt dieser Seite bei.)



17. August 2012 um 15:44 Uhr
Wer das Tool für Archlinux sucht (AUR): http://aur.archlinux.org/packages/jm/jmtpfs/PKGBUILD
17. August 2012 um 17:46 Uhr
Die Frage ist halt, wers braucht in Zeiten von Airdroid…
Wenn überhaupt dann ist das ja eher was für große Datenmengen und Leute die Movies auf dem Handy mit sich rumschleppen
17. August 2012 um 22:29 Uhr
Ehrlich gesagt habe ich schneller mein Handy per Kabel angeschlossen als “via” AirdDroid.
Grüße
Christoph
18. August 2012 um 20:50 Uhr
Airdroid ist ja ganz nett, wenn man mal kein Kabel zur Hand hat, z.B. an einem fremden Rechner. Aber am eigenen Rechner finde ich die Einbindung ins eigene Dateisystem doch sehr zu bevorzugen, seis nun per SSH oder Kabel.
Ich mache es per SSH: Einmal in Nautilus bookmarken und Ruhe. Da bin ich auch mit Kabel nicht schneller und spare mir darüberhinaus beim Mount/Unmount Probleme mit meinem Cyanogenmod.
Übrigens sieht Airdroid aus wie eine schlecht gemachte Herstellersoftware von 2003 und ist insgesamt irgendwie unandroidisch.
18. August 2012 um 02:19 Uhr
sudo apt-get install mtpfs; sudo mtpfs /mnt
Ich finde das einfacher als die Compiliererei da oben
!
22. August 2012 um 09:15 Uhr
ausprobiert hast du das aber nicht?
beim aktuellen Ubuntu zB geht das einfach nicht. mounten an sich ja, zugreifen nein …
23. September 2012 um 14:17 Uhr
@ Nik, thx, ein guter Tipp mit apt-get install mtpfs !
Im Galxy S 2 unter dem Menu-Punkt “USB-Verbindung” den Massenspeichermodus aktivieren und das USB-Kabel ranfummeln.
Anschließend zeigt mir die Geräteüberwachung von KDE ein neues Device an. Ein Klick und schon ist das neue Device gemountet und per Dolphin sind die Daten manipulierbar.
OS: Ich nutze aptosid und SGS2 mit Anroid 4.0.3
23. September 2012 um 14:20 Uhr
Wenn du ohnehin den Massenspeichermodus auswählst, brauchst du mtpfs doch gar nicht.
Pingback: Galaxy Nexus unter Ubuntu mounten - Android-Hilfe.de
28. August 2012 um 13:52 Uhr
Und was ist mit Cyanogenmod? Wenn das HTC-ROM in der Lage ist, alternativ als mass storage zu verbinden, sollte Cyanogenmod diese Alternative doch auch anbieten können? Schon mal jemand probiert?
28. August 2012 um 14:02 Uhr
Zumindest am Galaxy S2 ist Cyanogenmod 9 standardmäßig auf mass storage gestellt. Wie das bei Geräten ist, die keinen Kartenslot haben, weiß ich nicht.
Allerdings gibt es bei einigen CM-Nutzern (inklusive mir) einen Bug, der beim Einsatz als mass storage durch das mounten/unmounten regelmäßig die Mediendatenbank zerstört.
29. August 2012 um 15:02 Uhr
Grundsätzlich gebe ich dir recht, bei dem was du über das HTC One S sagst. Hab das selbst im Einsatz und es ist ein würdiger Nachfolger für mein Desire.
Aber: HTC hat still und heimlich die Hardware geändert. Statt dem neuen Snapdragon S4 kommt jetzt der ältere S3 zum Einsatz. Das wird lediglich durch den Zusatz “Neue Hardware” bzw. “C2″ gekennzeichnet. Der Preis ist gleich!
Also aufpassen, wenn sich jemand so ein Teil zulegen möchte.
29. August 2012 um 18:39 Uhr
Ähm,
ich habe mein frisch erworbenes Galaxy Nexus (Android 4.04) eben via USB an mein Ubuntu 12.04 angeschlossen.
Ich kann auf das Nexus via Nautilus zugreifen, und ich habe zum Test eine mp3-Datei und einen mp4-Movie (ca. 100MB) drauf kopiert. Es scheint alles (inzwischen) problemlos zu funktionieren.
Oder habe ich da jetzt was falsch verstanden? :-/
29. August 2012 um 19:00 Uhr
Ja, du hast was falsch verstanden
MTP funktioniert, so lange nur wenige Daten auf dem Gerät liegen, beim Zugriff wird allerdings regelmässig ein kompletter Index übertragen, was dann bei einer bestimmten Datenmenge eben abbricht. Details dazu stehen in dem verlinkten Launchpad-Bug. Entweder lässt du also dein Nexus jungfräuchlich, oder du bekommst — wie wir alle — auch noch das Problem
Grüße
Christoph
29. August 2012 um 19:31 Uhr
Ah, alles klar. Ich habe mir schon gedacht dass da noch ein Haken sein muss, da die Kommentare ja absolut aktuell sind. Danke fúr die schnelle Antwort.
2. September 2012 um 19:40 Uhr
Hallo,
vielleicht ist es ja nur ein temporäres Problem, aber wget kann keine Verbindung zu research.jacquette.com aufbauen. Auch http://www.google.com/url?sa=D&q=http://research.jacquette.com/jmtpfs-exchanging-files-between-android-devices-and-linux/&usg=AFQjCNFFcDLiwccOPGyE_ybqYBgkUp3Q5g ist im Browser nicht erreichbar. Gibt es das Archiv noch woanders?
Schöne Grüße
Christoph
5. September 2012 um 17:04 Uhr
Heute funktioniert es wieder.
6. September 2012 um 13:48 Uhr
Mit meinem frischen Nexus 7 bekomm ich leider keine Verbindung hin.
jmtpfs ~/android/
No mtp devices found.
Das bauen hat tadellos funktioniert. Das Nexus 7 ist eingesteckt und MTP ist als USB-Verbindungstyp ausgewählt. Hab ich was übersehen?
6. September 2012 um 14:04 Uhr
Mit meinem S3 funktioniert es auch nicht. Das Nexus 7 und das S3 sind noch zu neu und zumindest das S3 wird erst in der Entwicklerversion von libmtp unterstützt, die in Ubuntu noch nicht enthalten ist. Du kannst dir zwar auch von libmtp eigene Pakete bauen, aber ich warte lieber auf native Ubuntu-Pakete. Solange benutze ich Airdroid.
6. September 2012 um 18:39 Uhr
Zumindest in eine Richtung funktioniert der Dateitransfer über PTP.
Ne Krücke, aber immerhin. Dann heißts wohl warten auf neue Pakete.
7. September 2012 um 18:23 Uhr
Bei meinem Nexus 7 läuft es:
Wie erstelle ich eine udev rule die mein Nexus 7 automatisch unte /mnt/Nexus mounted?
7. September 2012 um 18:44 Uhr
Gibt es ein 1,9 GB file limit? Bei dieser größe bricht der download immer ab
7. September 2012 um 19:13 Uhr
Du hast das Paket nach Christophs Anleitung gebaut? Mein Lubuntu will nicht. Kannst du das Paket irgendwo hochladen? Vielleicht braucht es außer mir sonst noch jemand…
7. September 2012 um 20:13 Uhr
@Chris
Nur in 64Bit.
8. September 2012 um 09:12 Uhr
@Chris
http://www.file-upload.net/download-4764313/jmtpfs_0.4-1_amd64.deb.html
Läst sich nur mit “dpkg -i jmtpfs_0.4-1_amd64.deb” installieren.
10. September 2012 um 12:54 Uhr
Gibt es große Unterschiede zu gomtpfs?
Oder ist das nur alternativ einsetzbar?
Gruß Andy
12. September 2012 um 17:34 Uhr
Die Unterschiede sind nicht riesig, da ja FUSE als Unterbau dient.
27. September 2012 um 03:13 Uhr
Was jmptfs genau macht weiß ich nicht, aber go-mtpfs cached die übertragenen Dateien in einem Verzeichnis in /tmp. Somit geht das Ganze zumindest nach dem ersten Zugriff deutlich schneller. Wenn man auch mehrere Video-Dateien drauf hat ist es auch hilfreich, wenn man die Anzeige von Miniaturbildern ausschaltet. Die müssen sonst nämlich auch erst vom Gerät geholt werden, und bei etlichen Videos je 300mb ist das kein Spaß.
11. September 2012 um 09:46 Uhr
Vielen Dank für die Anleitung.
Bekomme zwar ebenfalls beim Nexus 7 die Meldung, das das Gerät unbekannt ist, aber z.B. hochladen von Musik funktioniert einwandfrei.
Grüße
Thomas
15. September 2012 um 08:42 Uhr
Installation ging klaglos, allein mein XPeria S weigert sich gemountet zu werden
”Device 0 (VID=0fce and PID=0169) is a SONY Xperia S.
LIBMTP PANIC: Unable to read device information on device 4 on bus 1…”
Schade, ich persönlich bevorzuge auch das Kabel vor den Air – Alternativen.
Ralf
Pingback: Link Cloud #1 » cloudlog.de
Pingback: Galaxy S3 without UMS (USB Mass Storage Mode)! Howto mount under Linux with MTP? | Galaxy S3 and Linux Blog
19. November 2012 um 10:07 Uhr
Hallo,
funktioniert hier die Funktion mit dem Starter anlegen auch? Bei go-mtpfs ist ein Kommentar dazu hinterlegt. Ich komme nur nicht mit dem Dateipfad bei jmtpfs klar. Kann ich hierzu Hilfe haben.
Bei mir ist es unter usr/local/bin hinterlegt. Ich habe foldenen Dateipfad im Starter hinterlegt.
usr/local/bin/jmtpfs ~/android
Ist das nicht korrekt?
Danke
PS: Bei mir funktioniert auf dem LG P880 die Version besser. Bei go-mtp habe ich immer Abstürze.
19. November 2012 um 10:11 Uhr
Hallo,
habe bei mir jetzt erfolgreich jmtpfs laufen. Ich möchte aber einen Starter anlegen. Welchen Pfad gebe ich vor.
Bei mir liegt das Programm und usr/local/bin
Danke
Frank
Pingback: Eumel blogt | Nexus 7 unter Ubuntu mounten
24. November 2012 um 11:49 Uhr
Bei mir funktioniert schon das installieren nicht. Ubuntu 12.10 Gnome:
der Befehlaufruf funktioniert daher auch nicht:
24. November 2012 um 21:24 Uhr
Klar, wenn das Bauen nicht klappt, dann wird letztendlich auch das Binary nicht installiert und der Aufruf schlägt fehlt. Wenn sich jmtpfs unter 12.10 nicht mehr bauen lässt, dann kannst du es ja auch mal mit go-mtpfs probieren. Das Tool wird vom Entwickler von gvfsd-mtp empfohlen, das — hoffentlich — in baldiger bälde das manuelle mounten unnötig macht.
Grüße
Christoph
7. Dezember 2012 um 14:32 Uhr
Unter Debian Wheezy müssen noch folgende Einträge in jmtpfs.cpp gemacht werden, um es erfolgreich zu kompilieren:
#include <unistd.h>
#include <sys/types.h>
19. Dezember 2012 um 15:53 Uhr
Danke, Mihael – das hab ich auch bei Xubuntu 12.10 gebraucht.
20. Dezember 2012 um 13:02 Uhr
Danke für die Anleitung, gomtpfs hatte ich nicht installiert bekommen (da hat der git-befehl nicht funktioniert).
Warum eine kleine Hinterhoffirma wie Google das allerdings nicht auf android.com/filetransfer als Pakete bereit stellen kann, bleibt wohl deren Geheimnis.
30. Dezember 2012 um 22:43 Uhr
Danke für die Anleitung, leider erhalte ich (Ubuntu 12.04, Samsung GT-N7000 mit Android 4.03) nach erfolgreicher Installation nur
Pingback: Тупичок мыслей » Blog Archive » Скрещиваем Samsung Galaxy S3/Galaxy Note2 с Ubuntu 12.10: боремся с дубовым mtp.
25. März 2013 um 18:40 Uhr
Also das mit dem HTC stimmt leider auch nur solange man kein Update auf Android 4.1.1 macht. Danach is Feierabend. Zumindest ist das der Stand auf dem ich mich gerade befinde.
Falls es da Neuerungen geben sollte wäre ich froh über einen post.
Hawk
1. April 2013 um 21:47 Uhr
Hm, ich hab da jetzt ein Problem. Kompilieren hat geklappt, Erkannt wurde mein Samsung-Smartphone zunächst auch unter home/android. Dann ist der Dateibrowser allerdings abgestürzt. Jetzt Bekomme ich keinen Zugriff mehr auf meine /home, da für /home/android ein Ein- und Ausgabefehler gemeldet wird. Wie bekomme ich das Verzeichnis bzw. den Mountpoint wieder restlos gelöscht?
7. April 2013 um 18:26 Uhr
Hallo nunatalk, hast du dein Problem noch?
Pingback: GVFS-Update ermöglicht unter Ubuntu/Linux endlich den bequemen Zugriff auf Android-Geräte via MTP | Linux und Ich