Da Ubuntu 13.04 Speicher Zugriff auf externe Geräte über MTP soll aus der Box arbeiten über ein GVFS-MTP - Modul.
Während es sich bei dieser Frage um das Galaxy Nexus handelt, werden auch andere Android-Geräte sowie Windows Phones und MTP-fähige Media Player unterstützt .
Für Fehlersuche sehen diese anwser .
Ich habe einige Probleme damit, dass Dateiübertragungen über MTP mit dem Galaxy Nexus funktionieren. Ich verwende Kubuntu 11.10 64-Bit, und das habe ich getan und die Ergebnisse, die ich erhalte:
Regel für Gerät in hinzugefügt
/etc/udev/rules.d/51-android.rules
. Die Regel ist die folgende und funktioniert füradb
:SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666", OWNER="leob" #Galaxy Nexus
Neustart
udev
(und Computer nur um sicherzugehen).
Adb funktioniert, und alle Methoden zum Lesen vom Gerät über MTP scheinen zu funktionieren (ich habe versucht, mit mtpfs, gmtp und direkt mit dem mtp-tools-Paket zu mounten). Wenn ich jedoch versuche, auf das Gerät zu schreiben, funktioniert nichts, was ich versucht habe.
Wenn Sie beispielsweise mtp-newfolder test_dir 0 0
ausführen, erhalten Sie die folgende Ausgabe:
libmtp version: 1.1.0
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1.
Folder creation failed.
ERROR: Could not close session!
Wenn ich mtp-folders
nach einem fehlgeschlagenen mtp-newfolder starte, ohne das Gerät neu anzuschließen, erhalte ich die folgende Ausgabe:
Attempting to connect device(s)
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1.
PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
mtp-folders: Successfully connected
Friendly name: (NULL)
Error 1: Get Storage information failed.
Error 2: PTP Layer error 02fe: get_all_metadata_fast(): could not get proplist of all objects.
Error 2: (Look this up in ptp.h for an explanation.)
Error 2: PTP Layer error 02fe: get_handles_recursively(): could not get object handles.
Error 2: (Look this up in ptp.h for an explanation.)
LIBMTP_Get_Storage()
: Resource temporarily unavailable
OK.
In dmesg begleitet von:
[ 1000.912082] usb 2-4: reset high speed USB device number 7 using ehci_hcd
[ 1001.045877] usb 2-4: usbfs: process 3166 (mtp-folders) did not claim interface 0 before use
Hat jemand eine Idee, was zu tun ist?
BEARBEITEN:
Ich habe auch den PTP-Modus ausprobiert. Auch hier funktioniert das Lesen einwandfrei, aber ich kann nichts auf das Gerät schreiben.
Antworten:
Seit Ubuntu 13.04 funktioniert der Speicherzugriff auf externe Geräte über MTP standardmäßig über ein GVFS-MTP-Modul.
Verwandte Frage: Gibt es Pläne, die MTP-Unterstützung für zukünftige Ubuntu-Versionen zu verbessern?
Informationen zur Fehlerbehebung finden Sie in dieser Antwort .
Für mich war es ein Problem, nicht die neuesten
libmtp
Dateien auf meinem System zu haben. Also habe ich das Problem behoben und diese Beschreibung gemacht, um anderen zu helfen .Zusammenfassung des Links: Es gab einen Fehler in den
libmtp
älteren Ubuntu-Versionen. Dieser Fehler wurde bereits in der neuesten Quelle von behobenlibmtp
.quelle
Haben Sie Bilal Akhtars Vorschlag bei omgubuntu ausprobiert ?
Verbinden Sie Ihr Android-Handy oder -Tablet mit Ubuntu über MTPFS
Konfiguration
Installieren Sie zunächst die erforderlichen Werkzeuge mit
sudo apt-get install mtp-tools mtpfs
Verbinden Sie Ihr Galaxy Nexus mit Ihrem Computer. Öffnen Sie auf Ihrem Telefon das Benachrichtigungsfach und klicken Sie auf "USB-Verbindungstyp". Stellen Sie sicher, dass MTP ausgewählt ist.
Führen Sie dann diese Befehle aus:
Sie erhalten eine Ausgabe wie diese:
Führen Sie nun die folgenden Befehle aus:
Ein Gedit-Fenster sollte sich öffnen. Geben Sie diesen Text in einer einzigen Zeile ein :
Ersetzen Sie sie
VENDORID
durch dasidVendor
zuvor notierte. In ähnlicher Weise ersetzen Sie es durch das,PRODUCTID
dasidProduct
Sie notiert hatten. In meinem Fall waren sie04e8
und685c
sind, aber sie könnten für Sie anders gewesen.Speichern und schließen Sie die Datei. Trennen Sie dann Ihr Telefon und führen Sie die folgenden Befehle aus:
$USER
ist eine Standard-Shell-Variable und sollte der Benutzer sein, den Sie hinzufügen möchten (normalerweise Sie selbst). Führen Sie nun diesen Befehl aus:Entfernen Sie im Gedit-Fenster
#
die Zeile am Anfang der letzten Zeile (die mit "" beginnt#user_allow_other
) wie folgt :Du bist fast fertig! Starten Sie jetzt Ihren Computer neu und führen Sie dann diese drei Befehle aus:
Verwendungszweck
Schließen Sie Ihr Telefon an, stellen Sie sicher, dass Ihr Telefon MTP verwendet, und führen Sie es aus
android-connect
.Voila! Mit Nautilus können Sie jetzt die Inhalte Ihres Android-Telefons durchsuchen. Starten Sie einfach den Dateimanager und klicken Sie dann in der Seitenleiste auf GalaxyNexus, um den Inhalt Ihres Telefons zu durchsuchen, genau wie Sie es mit einem USB-Stick tun würden. Sie können wie bei einem normalen Dateisystem auch Dateien hinzufügen, entfernen und ändern.
Führen Sie einfach aus, um das Telefon sicher zu entfernen
android-disconnect
.Fazit
Von nun an müssen Sie nur noch laufen
android-connect
, um Ihr Telefon zu aktivieren und dannandroid-disconnect
sicher zu entfernen. Alles andere sollte automatisch erledigt werden. Ich habe viele Möglichkeiten ausprobiert, um das Ein- und Aushängen bei Kabelverbindungen automatisch durchzuführen, aber dies war die beste Lösung, die ich finden konnte.Für diese beiden Befehle sind keine Root-Berechtigungen erforderlich . Alle Benutzer, die Mitglieder der Fuse-Benutzergruppe sind, sollten in der Lage sein, diese Befehle ohne Root-Zugriff auszuführen.
Das ist es! Sie haben Ihr Ice Cream Sandwich-Telefon erfolgreich mit Ihrem Ubuntu-Computer verbunden. Der Prozess mag für einen Neuling lang sein, aber ich bin sicher, dass jemand vorbeikommt und eine GUI für all dies erstellt, damit alles reibungslos verläuft. :)
quelle
mtpfs
, oder unterstützt es nur jeweils 1 verbundenes Gerät?Geräte über MTP mit GVFS verbinden
Seit Ubuntu 13.04 funktioniert der Speicherzugriff auf MTP-fähige Geräte sofort über ein GVFS- Backend. Bitte werfen Sie einen Blick auf Gibt es Pläne, die MTP-Unterstützung für zukünftige Ubuntu-Versionen zu verbessern? für Montageanleitungen vor dem 13.04.
Diese Lösung sollte für alle Android-Geräte mit MTP-Funktionalität und wahrscheinlich für alle Nicht-Android-Geräte mit MTP-Funktionalität wie Windows Phones und Portable Media Player funktionieren .
Sei nicht verwirrt
Es gab einige Verwirrung, lassen Sie uns versuchen, die Dinge zu klären:
Sie brauchen nichts zu tun, was Ihre Garantie ungültig machen könnte!
Das Entsperren bezieht sich in dieser Antwort nur auf den Sperrbildschirm des Betriebssystems.
Sie müssen den Entwicklerzugriff auf Ihr Gerät wie ADB, Fastboot oder ähnliches nicht über bestimmte udev-Regeln konfigurieren. (Sie können Ihre Anweisungen für Android finden Sie im Kapitel Konfigurieren der USB - Zugang ihre E oder ihre e .)
Soweit ich weiß, benötigen Sie auch keine FUSE- oder FUSE-bezogenen Optionen.
Fehlerbehebung
Ich kann keine Dateien auf dem Gerät ablegen.
Ihr Gerät muss entsperrt sein, um mit Ubuntu über MTP auf den Speicher des Geräts zugreifen zu können.
Ich erhalte die Fehlermeldung, dass das Gerät nicht gemountet werden kann.
Wenn die folgende Fehlermeldung angezeigt wird, versuchen Sie einmal, das Gerät erneut zu verbinden .
Wenn die Fehlermeldung erneut angezeigt wird, öffnen Sie im Launcher ein neues Nautilus-Fenster (vorzugsweise durch Klicken auf das Symbol des Geräts) und schließen Sie möglicherweise das aktuelle Nautilus-Fenster. Möglicherweise verwandt: Wie erstelle ich udev-Regeln, um eines der Android-Geräte zu deaktivieren?
Überprüfen Sie, ob es für Ihr Gerät udev-Regeln gibt
Öffnen Sie ein Terminal und geben Sie ein
lsusb
. Finden Sie Ihr Gerät in der Ausgabe und notieren Sie sich die ID (zB0fce:01b1
). Der erste Teil ist die Lieferanten-ID, der letzte Teil die Produkt-ID.Öffnen Sie die entsprechende mtp udev rules-Datei mit
nano /lib/udev/rules.d/69-libmtp.rules
und suchen Sie nach Ihrer Produkt-ID (verwenden Sie Ctrl+ W). Wenn Sie es nicht finden können, müssen Sie einen benutzerdefinierten Eintrag/etc/udev/rules.d/69-libmtp.rules
gemäß dem folgenden Muster erstellen und neu starten .Sie sollten erwägen , einen Fehler gegen das libmtp-Paket (genauer gesagt libmtp-common ) einzureichen , damit Ihr Gerät in zukünftigen Versionen enthalten ist, wenn dies für Sie funktioniert.
Ich kann immer noch keine Verbindung herstellen
Ihr Gerät wird entweder nicht vom Basiswert unterstützt,
libmtp
oder es tritt möglicherweise dasselbe Problem auf, das ich mit meinem Lumia 620 habe. Befolgen Sie die in LP # 1247572: Nokia Lumia 620 (WP8) bereitgestellte Problemumgehung (Schritte zum Reproduzieren), die nicht zuverlässig über bereitgestellt werden kann gvfs-mtp im nautilus . (Das Gerät funktioniert hier immer noch nicht einwandfrei, aber esmtp-detect
hilft.)Sie sollten den libmtp-Bug-Tracker nach Ihrem Gerät durchsuchen und die Anweisungen für neue Geräte auf der Projektseite befolgen , um einen Fehlerbericht zu öffnen.
Der Bug-Tracker listet mein Gerät als unterstützt auf, aber es funktioniert immer noch nicht
In einigen Fällen wurde möglicherweise bereits in einer neueren Version von libmtp ein Fehlerbericht zu Ihrem Gerät abgelegt und behoben, der über den Lieferumfang Ihrer Distribution hinausgeht (z. B. Motorola Moto G ). In diesem Fall müssen Sie entweder auf die Aktualisierung der offiziellen Repositorys warten oder nach einem aktualisierten PPA suchen.
Eine aktualisierte Liste aller libmtp-Versionen, die über die offiziellen Ubuntu-Software-Kanäle und private PPAs verfügbar sind, finden Sie hier (erweitern Sie Andere Versionen von 'libmtp' in nicht vertrauenswürdigen Archiven ). Ab dem 13.02.2014 bietet dieser PPA von Matthieu Baerts das neueste libmtp-Paket für Ubuntu an.
Warnung : Diese PPA enthält eine Vielzahl unterschiedlicher und möglicherweise instabiler Pakete. Ich würde davon abraten, es zu Ihrem System hinzuzufügen. Stattdessen können Sie die libmtp-Pakete separat herunterladen und manuell auf Ihrem System installieren.
Machen Sie sich bitte mit PPAs und deren Risiken vertraut , bevor Sie fortfahren . Lesen Sie auch den folgenden Abschnitt zur Wiederherstellung Ihrer Originalpakete, bevor Sie mit den folgenden Schritten fortfahren:
Laden Sie die folgenden Pakete:
libmtp-common
,libmtp-runtime
,libmtp9
,mtp-tools
. Stellen Sie sicher, dass Sie die richtige Architektur für Ihr System auswählen (dies ist in der Regel der Fallamd64
).Hier sind die Paketlinks vom 13.02.2014: libmtp-common , libmtp-runtime , libmtp9 , mtp-tools
Fahren Sie mit der manuellen Installation der aktualisierten Pakete mit dpkg fort (wechseln Sie
$HOME/Downloads
in Ihren Download-Ordner und stellen Sie sicher, dass keine anderen Deb-Dateien vorhanden sind:Sobald alles erfolgreich installiert wurde, starten Sie Ihren Computer neu, entsperren Sie Ihr Android-Gerät, schließen Sie es über USB an und es sollte in Ihrem Dateimanager angezeigt werden.
Dies hat für mich (@Glutanimate) mit meinem Motorola Moto G gut funktioniert. Da ich Ubuntu 12.04 LTS ausgeführt habe, musste ich zuerst eine aktualisierte Version von installieren
gnome-gvfs
. Weitere Informationen finden Sie in den Installationsanweisungen vor 13.04 oben.Um die Änderungen rückgängig zu machen, wenn ein Fehler auftritt oder das Gerät immer noch nicht erkannt wird, müssen Sie die Originalpakete manuell installieren. Gehen Sie zur Übersicht der libmtp-Quellen und finden Sie Ihre Ubuntu-Version. Erweitern Sie den betreffenden Eintrag und laden Sie die Pakete wie in Schritt 2 zuvor herunter. Fahren Sie mit der Installation wie in Schritt 3 beschrieben fort und starten Sie Ihr System neu. Jetzt sollte alles wieder normal sein.
quelle
/etc
liegt ganz bei Ihnen. Wie oben erläutert, sollten im Idealfall alle udev-Regeln ootb bereitgestellt werden. Wenn nicht, sollte man einen Fehler melden, um die fehlende Regel aufzunehmen/lib/.../69-libmtp.rules
, damit alle mit der nächsten Version zufrieden sind./etc
liegt ganz bei Ihnen./lib/udev/rules.d/69-libmtp.rules
ist das, was die Paketbetreuer ausgewählt haben und ich schlage vor, einen Fehler gegen dieses Paket (ich habe meine Antwort aktualisiert) für die Benutzer einzureichen, die auf dieses Problem stoßen. Wenn Sie immer noch ein Problem damit haben, wenden Sie sich bitte an die Betreuer oder senden Sie Ihre eigene Antwort. Ich beuge mich jetzt aus diesem Gespräch mit Ihnen zu diesem Thema.Alle auf basierenden Programme
libmtp
scheinen weiterhin Probleme mit dem Galaxy Nexus (ab libmtp 1.1.3) zu haben. Programme, die aufgphoto2
meiner Arbeit basieren .Persönlich verwende ich
gphotofs
, verfügbar in einem Paket mit dem gleichen Namen.Verwenden Sie
gphotofs ~/mymountpoint
diese Option,fusermount -u ~/mymountpoint
um die Bereitstellung zu beenden, wenn Sie fertig sind.quelle
gphotofs
verbleibt ein einzelnes Verzeichnis, das leer ist.Installieren Sie Folgendes und starten Sie neu:
quelle
The following packages have unmet dependencies: gvfs-backends : Depends: gvfs (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed Depends: gvfs-daemons (= 1.28.2-1ubuntu1~16.04.2) Depends: gvfs-libs (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed Depends: gvfs-common (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed E: Unable to correct problems, you have held broken packages.
Als ersten Schritt würde ich installieren
jmtpfs
(sudo apt-get install jmtpfs
in Terminal - Ctrl+ Alt+ T), dann einen Ordner mit erstellenmkdir foldername
und dann das Gerät mit mountenjmtpfs foldername
, dann zu Nautilus (Dateien) gehen.Wenn Ihr Gerät nicht mit der
libmtp
Ubuntu-Version kompatibel ist . Sie müssen eine aktuelle Versionlibmtp
(> 1.1.12) herunterladen und erstellen, wie in: Wie kann ich die neueste Version von libmtp installieren?Sie sollten die Ordner auch
mtp-folders
in einem Terminal oder mit der grafischen Oberfläche anzeigen könnengmtp
.In den vorherigen Schritten wurde möglicherweise ein Fehler angezeigt, wenn Sie sie ohne Folgendes ausführen
sudo
:Um die Verwendung von sudo zu vermeiden, sollten Sie Ihr Gerät
/etc/udev/rules.d/51-android.rules
wie oben beschrieben zur Datei hinzufügen (siehe desgua) und Regeln neu laden oder neu starten.quelle
Nur eine kleine Problemumgehung, verbinden Sie Ihr ICS-basiertes Telefon mit dem guten alten MASS STORAGE http://forum.xda-developers.com/showthread.php?t=1556367
quelle