Faire fonctionner les appareils compatibles MTP avec Ubuntu?

67
  

Depuis Ubuntu 13.04 , l’accès au stockage des périphériques externes via MTP est censé fonctionner immédiatement via un module GVFS-MTP.

     

Bien que cette question concerne le Galaxy Nexus, d’autres appareils Android, ainsi que les lecteurs multimédia Windows et MTP activés sont également pris en charge .

     

Pour le dépannage , consultez cette réponse .

Je rencontre pas mal de problèmes pour obtenir des transferts de fichiers sur MTP avec le Galaxy Nexus. J'utilise Kubuntu 11.10 64 bits, et c'est ce que j'ai fait et les résultats que j'ai obtenus:

  1. Ajout d’une règle pour le périphérique dans /etc/udev/rules.d/51-android.rules . La règle est la suivante et fonctionne pour adb :

    SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666", OWNER="leob" #Galaxy Nexus
    
  2. Redémarrage de udev (et de l'ordinateur juste pour en être sûr).

Adb fonctionne, et toutes les méthodes de lecture depuis le périphérique via MTP semblent fonctionner (j'ai essayé de monter avec mtpfs, gmtp et d'utiliser directement le package mtp-tools). Lorsque j'essaie d'écrire sur l'appareil, rien n'a été essayé.

Par exemple, l'exécution de mtp-newfolder test_dir 0 0 donne la sortie suivante:

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!

Si je lance mtp-folders après un mtp-newfolder défaillant sans avoir à rebrancher le périphérique, j'obtiens la sortie suivante:

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.

Accompagné de ce qui suit dans dmesg:

[ 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

Quelqu'un a-t-il une idée de ce qu'il faut faire?

MODIFIER:

J'ai aussi essayé le mode PTP. Encore une fois, la lecture fonctionne bien, mais je ne peux rien écrire sur l'appareil.

    
posée Leo 14.12.2011 - 10:01
la source

7 réponses

37

Depuis Ubuntu 13.04, l’accès au stockage sur des périphériques externes via MTP fonctionne directement via un module GVFS-MTP.

Question connexe: Existe-t-il Des plans pour améliorer le support de MT sur les futures versions d'Ubuntu?

Pour le dépannage, voir cette réponse .

Pour moi, le problème était de ne pas avoir les derniers fichiers libmtp sur mon système. J'ai donc corrigé le problème et mis cet article à aider les autres .

Résumé du lien: Il y avait un bogue dans libmtp fourni avec les anciennes versions d'Ubuntu. Ce bogue était déjà corrigé dans la dernière source de libmtp .

    
réponse donnée Shannon_VanWagner 18.12.2011 - 11:22
la source
21

Avez-vous essayé la suggestion de Bilal Akhtar à omgubuntu ?

Connecter votre téléphone ou tablette Android à Ubuntu avec MTPFS

  1. Configuration

    Tout d’abord, installez les outils nécessaires avec sudo apt-get install mtp-tools mtpfs

    Connectez votre Galaxy Nexus à votre ordinateur. Sur votre téléphone, ouvrez le tiroir de notification et cliquez sur "Type de connexion USB". Assurez-vous que MTP est sélectionné.

    Ensuite, exécutez ces commandes:

    mtp-detect | grep idVendor
    mtp-detect | grep idProduct
    

    Vous obtiendrez un résultat comme celui-ci:

    Maintenant, exécutez ces commandes:

    gksu gedit /etc/udev/rules.d/51-android.rules
    

    Une fenêtre Gedit devrait s’ouvrir. Tapez ce texte, le tout dans une seule ligne :

    SUBSYSTEM=="usb", ATTR{idVendor}=="VENDORID", ATTR{idProduct}=="PRODUCTID", MODE="0666"
    

    Remplacez VENDORID par le idVendor que vous avez noté précédemment. De même, remplacez PRODUCTID par le idProduct que vous avez noté. Dans mon cas, ils étaient respectivement 04e8 et 685c , mais ils étaient peut-être différents pour vous.

    Enregistrez et fermez le fichier. Ensuite, déconnectez votre téléphone et exécutez ces commandes:

    sudo service udev restart
    sudo mkdir /media/GalaxyNexus
    sudo chmod a+rwx /media/GalaxyNexus
    sudo adduser $USER fuse
    

    $USER est une variable de shell par défaut et devrait être l'utilisateur que vous souhaitez ajouter (généralement vous-même). Maintenant, lancez cette commande:

    gksu gedit /etc/fuse.conf
    

    Dans la fenêtre Gedit, supprimez le # au début de la dernière ligne (celle qui commence par #user_allow_other ) comme ceci:

    Tu es presque fini! Maintenant, redémarrez votre ordinateur, puis exécutez ces trois commandes:

    echo "alias android-connect=\"mtpfs -o allow_other /media/GalaxyNexus\"" >> ~/.bashrc
    echo "alias android-disconnect=\"fusermount -u /media/GalaxyNexus\"" >> ~/.bashrc
    source ~/.bashrc
    
  2. Utilisation

    Connectez votre téléphone, assurez-vous que votre téléphone utilise MTP et exécutez android-connect .

    Voila! Vous pouvez maintenant parcourir le contenu de votre téléphone Android à l'aide de Nautilus. Il suffit de lancer le gestionnaire de fichiers, puis dans la barre latérale, cliquez sur GalaxyNexus pour parcourir le contenu de votre téléphone comme vous le feriez avec une clé USB. Vous pouvez également ajouter, supprimer et modifier des fichiers comme un système de fichiers normal.

    Pour retirer le téléphone en toute sécurité, exécutez simplement android-disconnect .

  3. Conclusion

    À partir de maintenant, il vous suffit d'exécuter android-connect pour monter votre téléphone, puis android-disconnect pour retirer votre téléphone en toute sécurité. Tout le reste devrait être traité automatiquement. J'ai essayé de nombreuses manières de faire en sorte que le montage et le démontage se fassent automatiquement sur la connexion par câble, mais c'était la meilleure solution que je pouvais trouver.

    Ces deux commandes ne nécessiteront pas d’autorisations root à exécuter. Tous les utilisateurs membres du groupe d'utilisateurs de fusibles doivent pouvoir exécuter ces commandes sans accès root.

    C'est ça! Vous avez connecté avec succès votre téléphone Ice Cream Sandwich à votre ordinateur Ubuntu. Le processus peut être long pour un débutant, mais je suis sûr que quelqu'un va venir et créer une interface graphique pour tout cela afin que tout se passe bien. :)

réponse donnée desgua 17.12.2011 - 19:13
la source
19

Connexion de périphériques via MTP avec GVFS

Depuis Ubuntu 13.04, l’accès au stockage aux périphériques compatibles MTP fonctionne par l’intermédiaire d’un backend GVFS . Regardez s'il vous plaît Existe-t-il des plans pour améliorer le support de mtp sur les futures versions d'Ubuntu? pour instructions d'installation avant 13.04.

Cette solution devrait fonctionner pour tous les appareils Android fournissant des fonctionnalités MTP et probablement tous les appareils non Android dotés de fonctionnalités MTP telles que Téléphones Windows et Lecteurs de médias portables .

Ne soyez pas confus

Il y a eu une certaine confusion, essayons de clarifier les choses:

  • Vous ne devez pas faire quoi que ce soit qui pourrait annuler votre garantie!

    • Vous n'avez pas besoin de rooter votre appareil.
    • Vous n'avez pas besoin de déverrouiller le chargeur de démarrage. (Vous pouvez trouver des instructions pour Android son e .)

    Le déverrouillage fait simplement référence à l'écran de verrouillage du système d'exploitation dans cette réponse.

  • Vous n'avez pas besoin de configurer l’accès des développeurs à votre appareil, comme ADB, fastboot ou quelque chose de similaire, par le biais de certaines règles udev. (Vous pouvez trouver des instructions pour Android dans le chapitre Configurer l'accès USB sa e ou ses e .)

  • Autant que je sache, vous n'avez pas non plus besoin de FUSE ni de configurer les options liées à FUSE.

Problèmes de dépannage

  1. Je ne peux pas mettre de fichiers sur l'appareil.

    Votre appareil doit être déverrouillé pour accéder au stockage de l'appareil avec Ubuntu via MTP.

  2. Je reçois un message d'erreur indiquant que le périphérique ne peut pas être monté.

    Si vous obtenez le message d'erreur ci-dessous, essayez de connecter le périphérique une fois .

    Si le message d'erreur apparaît à nouveau, ouvrez une nouvelle fenêtre Nautilus à partir du lanceur (de préférence en cliquant sur l'icône du périphérique) et probablement en fermant la fenêtre Nautilus actuelle. Peut-être lié: Comment créer des règles udev pour désactiver l'un des appareils Android?

  3. Vérifiez s'il existe des règles udev pour votre appareil

    Ouvrez un terminal et tapez lsusb . Recherchez votre appareil dans la sortie et notez l'ID (p. Ex.% Co_de%). La première partie est l'ID du fournisseur, la dernière partie de l'ID du produit.

    Ouvrez le fichier de règles mdp udev correspondant avec 0fce:01b1 et seach pour l'ID de votre produit (utilisez Ctrl + W ). Si vous ne le trouvez pas, vous devez créer une entrée personnalisée dans nano /lib/udev/rules.d/69-libmtp.rules en suivant le modèle ci-dessous et reboot .

    # SONY Xperia Z2 MTP
    ATTR{idVendor}=="01b1", ATTR{idProduct}=="01b1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
    

    Vous devriez envisager de classer un bogue dans le package libmtp (plus précisément libmtp-common ) pour que votre appareil soit inclus dans les futures versions, si cela fonctionnait pour vous.

  4. Je n'arrive toujours pas à me connecter

    Votre appareil n'est pas pris en charge par le /etc/udev/rules.d/69-libmtp.rules sous-jacent ou vous pouvez rencontrer le même problème que mon Lumia 620, veuillez suivre la solution de contournement (étapes à reproduire) que j'ai publiée dans LP#1247572: Nokia Lumia 620 (WP8) ne parvient pas à se monter de manière fiable via gvfs-mtp dans nautilus . (L'appareil ne fonctionne toujours pas sans problème ici, mais l'utilisation de libmtp aide.)

    Vous devriez chercher dans votre outil de suivi des bogues libmtp pour votre appareil et suivre les instructions pour les nouveaux appareils sur la page du projet pour ouvrir un rapport de bogue.

  5. L'analyseur de bogues répertorie mon appareil comme étant pris en charge, mais ne fonctionnera toujours pas

    Dans certains cas, un rapport de bogue concernant votre appareil a peut-être déjà été déposé et résolu dans une version plus récente de libmtp que celle fournie par votre distribution (par exemple: Motorola Moto G ). Si tel est le cas, vous devrez soit attendre la mise à jour des référentiels officiels, soit rechercher un PPA mis à jour.

    Une liste mise à jour de toutes les versions de libmtp disponibles via les canaux officiels du logiciel Ubuntu et les PPA privés peut être trouvée ici (veillez à développer Autres versions de 'libmtp' dans les archives non fiables ). A partir du 2014/02/13 cet PPA de Matthieu Baerts propose le dernier package libmtp disponible pour Ubuntu.

    Avertissement : ce PPA contient une variété de packages différents et éventuellement instables. Je déconseille de l'ajouter à votre système. Au lieu de cela, vous pouvez télécharger les paquets libmtp séparément et les installer manuellement sur votre système.

    Veuillez vous familiariser avec les PPA et leurs risques avant d'aller plus loin. Veuillez également lire le paragraphe ci-dessous sur la restauration de vos paquets originaux avant de procéder aux étapes suivantes:

    1. Rendez-vous sur la page de détail du package du PPA et développez l’entrée libmtp
    2. Téléchargez les packages suivants: mtp-detect , libmtp-common , libmtp-runtime , libmtp9 . Assurez-vous de choisir la bonne architecture pour votre système (ce sera généralement mtp-tools ).

      Voici les liens du package à partir du 13/02/2014: libmtp-common , libmtp-runtime , libmtp9 , mtp-tools

    3. Procédez à l'installation manuelle des packages mis à jour avec dpkg (modifiez amd64 dans votre dossier de téléchargement et assurez-vous qu'aucun autre fichier deb n'est présent:

      cd "$HOME/Downloads"
      sudo dpkg -i *.deb
      
    4. Une fois que tout a été installé avec succès, redémarrez votre ordinateur, déverrouillez votre appareil Android, connectez-le via USB et il devrait apparaître dans votre gestionnaire de fichiers.

    Cela a bien fonctionné pour moi (@Glutanimate) avec mon Motorola Moto G. Parce que je travaillais sous Ubuntu 12.04 LTS, j'ai d'abord dû installer une version mise à jour de $HOME/Downloads . Veuillez consulter les instructions d’installation avant 13.04 en haut pour plus d’informations.

    Pour annuler les modifications en cas de problème ou si le périphérique n’est toujours pas reconnu, vous devrez installer manuellement les packages d’origine. Rendez-vous sur la vue d'ensemble des sources libmtp et trouvez votre version d'Ubuntu. Développez l'entrée en question et téléchargez les packages, comme vous l'avez fait précédemment. Continuez l'installation comme décrit à l'étape 3 et redémarrez votre système. Tout devrait redevenir normal maintenant.

réponse donnée LiveWireBT 15.06.2013 - 01:04
la source
5

Tous les programmes basés sur libmtp semblent toujours avoir des problèmes avec le Galaxy Nexus (à partir de libmtp 1.1.3). Les programmes basés sur gphoto2 fonctionnent pour moi.

Personnellement, j'utilise gphotofs , disponible dans un package du même nom.

Utilisez gphotofs ~/mymountpoint pour monter, puis fusermount -u ~/mymountpoint pour démonter lorsque vous avez terminé.

    
réponse donnée bseibold 07.07.2012 - 15:28
la source
3

Installez les éléments suivants et redémarrez:

sudo apt-get install gvfs-backends mtpfs jmtpfs libmtp-common mtp-tools libmtp-dev libmtp-runtime libmtp9 gmtp libdbus-cpp5 libgflags2v5 libgoogle-glog0v5 libmtp-dbg libmtp-doc libmtpserver-dev libmtpserver1 libprocess-cpp3 mtp-server
    
réponse donnée mchid 11.10.2015 - 13:10
la source
0

Dans un premier temps, j'installerais jmtpfs ( sudo apt-get install jmtpfs dans le terminal - Ctrl + Alt + T ), puis créer un dossier avec mkdir foldername , puis monter le périphérique avec jmtpfs foldername , puis aller à nautilus (Fichiers).

Si votre appareil n'est pas compatible avec la version libmtp dans ubuntu. Vous devez télécharger et construire un libmtp (& gt; 1.1.12) récent, comme dans: Comment puis-je installer la dernière version de libmtp?

Vous devriez pouvoir voir les dossiers aussi en utilisant mtp-folders dans un terminal ou avec l'interface graphique gmtp .

Les étapes précédentes peuvent afficher une erreur si vous les exécutez sans sudo :

libusb_open() failed!: Permission denied

Pour éviter d’utiliser sudo, vous devez ajouter votre appareil au fichier /etc/udev/rules.d/51-android.rules comme ci-dessus et recharger les règles ou redémarrer.

    
réponse donnée Ferroao 05.07.2018 - 22:01
la source
-1

Juste une petite solution de contournement, connectez votre téléphone ICS avec un bon vieux MASS STORAGE lien

adb install UMS1.0.apk
    
réponse donnée jflaflamme 23.03.2012 - 20:57
la source

Lire d'autres questions sur les étiquettes