70 votes

Faire fonctionner les appareils activés MTP avec Ubuntu ?

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

Alors que cette question concerne le Galaxy Nexus, d'autres appareils Android ainsi que les téléphones Windows et les lecteurs multimédias activés en MTP sont également pris en charge.

Pour des remèdes, consultez cette réponse.


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

  1. Ajouté 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émarré udev (et l'ordinateur juste pour être sûr).

Adb fonctionne, et toutes les méthodes pour lire depuis le périphérique via MTP semblent fonctionner (j'ai essayé de monter avec mtpfs, gmtp et en utilisant directement le package mtp-tools). Cependant, lorsque j'essaie d'écrire sur le périphérique, rien de ce que j'ai essayé ne fonctionne.

Par exemple, exécuter mtp-newfolder test_dir 0 0 donne la sortie suivante :

libmtp version: 1.1.0
Device 0 (VID=04e8 et PID=6860) est un Samsung GT-P7510/Galaxy Tab 10.1.
La création de dossier a échoué.
ERREUR : Impossible de fermer la session !

Si j'exécute mtp-folders après un échec de mtp-newfolder sans rebrancher le périphérique, j'obtiens la sortie suivante :

Attempting to connect device(s)
Device 0 (VID=04e8 et PID=6860) est un Samsung GT-P7510/Galaxy Tab 10.1.
PTP_ERROR_IO : échec de l'ouverture de la session, nouvelle tentative après avoir réinitialisé l'interface USB
LIBMTP libusb : tentative de réinitialisation du périphérique 
mtp-folders : Connecté avec succès.
Nom convivial : (NULL)
Erreur 1 : Impossible d'obtenir les informations de stockage.
Erreur 2 : Erreur de la couche PTP 02fe : get_all_metadata_fast() : impossible d'obtenir la liste de propriétés de tous les objets.
Erreur 2 : (Consultez ptp.h pour une explication).
Erreur 2 : Erreur de la couche PTP 02fe : get_handles_recursively() : impossible d'obtenir les poignées d'objet.
Erreur 2 : (Consultez ptp.h pour une explication).
LIBMTP_Get_Storage()
: Ressource temporairement indisponible
OK.

Ainsi que ce qui suit dans dmesg :

[ 1000.912082] usb 2-4 : réinitialisation du périphérique USB haute vitesse numéro 7 à l'aide de ehci_hcd
[ 1001.045877] usb 2-4 : usbfs : le processus 3166 (mtp-folders) n'a pas revendiqué l'interface 0 avant utilisation

Est-ce que quelqu'un a une idée de ce qu'il faut faire ?

ÉDIT :

J'ai également essayé le mode PTP. Encore une fois, la lecture fonctionne bien, mais je ne peux rien écrire sur le périphérique.

38voto

Shannon_VanWagner Points 871

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

Question connexe : Y a-t-il des projets pour améliorer le support de MTP dans les futures versions d'Ubuntu ?

Pour dépanner, consultez cette réponse.


Pour moi, le problème résidait dans le fait que je n'avais pas les derniers fichiers libmtp sur mon système. J'ai donc résolu le problème et rédigé cet article pour aider d'autres personnes.

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

24voto

Bill K Points 32115

Avez-vous essayé la suggestion de Bilal Akhtar sur 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é.

    image montrant les réglages de connexion USB Android

    Ensuite, exécutez ces commandes:

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

    Vous obtiendrez une sortie comme ceci: description de l'image

    Maintenant, exécutez ces commandes:

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

    Une fenêtre Gedit devrait s'ouvrir. Tapez ce texte dedans, tout sur une seule ligne:

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

    Remplacez VENDORID par l' idVendor que vous aviez noté précédemment. De même, remplacez PRODUCTID par l' idProduct que vous aviez noté. Dans mon cas, ils étaient respectivement 04e8 et 685c, mais ils auraient pu ê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 shell par défaut et devrait être l'utilisateur que vous souhaitez ajouter (généralement vous-même). Maintenant, exécutez 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:

    description de l'image

    Vous avez presque terminé! 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 le MTP et exécutez android-connect.

    Voilà! Vous pouvez maintenant parcourir les contenus de votre téléphone Android en utilisant Nautilus. Il vous suffit d'ouvrir le gestionnaire de fichiers, puis dans la barre latérale, cliquer sur GalaxyNexus pour parcourir les contenus de votre téléphone comme vous le feriez avec une clé USB. Vous pouvez également ajouter, supprimer et modifier des fichiers comme avec un système de fichiers normal.

    capture d'écran de Nautilus affichant les contenus du téléphone

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

  3. Conclusion

    Désormais, il vous suffit d'exécuter android-connect pour monter votre téléphone et ensuite android-disconnect pour retirer en toute sécurité votre téléphone. Tout le reste devrait être géré automatiquement. J'ai essayé de nombreuses façons de faire monter et démonter automatiquement en connectant le câble, mais c'était la meilleure solution que j'ai pu trouver.

    Ces deux commandes ne nécessiteront pas de permissions root pour s'exécuter. Tous les utilisateurs membres du groupe d'utilisateurs fuse devraient pouvoir exécuter ces commandes sans accès root.

    C'est tout! Vous avez réussi à connecter 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 finira par créer une interface graphique pour tout cela afin que tout se passe en douceur. :)

23voto

David Grant Points 8477

Connexion de périphériques via MTP avec GVFS

Depuis la version 13.04 d'Ubuntu, l'accès au stockage des périphériques compatibles MTP fonctionne d'emblée par l'intermédiaire d'une interface de type GVFS backend. Jetez un coup d'œil à Est-il prévu d'améliorer le support mtp sur les futures versions d'Ubuntu ? pour les instructions d'installation antérieures à la version 13.04.

Cette solution devrait fonctionner pour tous les appareils Android fournissant la fonctionnalité MTP et probablement tous les appareils non-Android avec la fonctionnalité MTP comme Téléphones Windows y Lecteurs multimédia portables .

Ne soyez pas confus

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

  • Vous Ne le fais pas. vous ne devez rien faire qui puisse annuler votre garantie !

    • Vous n'avez pas besoin de créer un root sur votre appareil.
    • Vous n'avez pas besoin de déverrouiller le bootloader. (Vous pouvez trouver des instructions pour Android her e .)

    Le déverrouillage se réfère simplement à 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 à travers certaines règles udev. (Vous trouverez des instructions pour Android dans le chapitre Configuration de l'accès USB son e ou elle e .)

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

Dépannage des problèmes

  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.

    showing device in nautilus in locked and unlocked state

  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 rebrancher le dispositif. une fois .

    error message that might pop up when connecting

    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 fermez probablement la fenêtre nautilus actuelle. Probablement lié : Comment créer une règle udev pour désactiver l'un des appareils Android ?

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

    Ouvrez un terminal et tapez lsusb . Trouvez votre appareil dans la sortie et notez l'ID (par ex. 0fce:01b1 ). La première partie est l'ID du vendeur, la dernière partie est l'ID du produit.

    Ouvrez le fichier de règles udev mtp correspondant avec nano /lib/udev/rules.d/69-libmtp.rules et recherchez l'ID de votre produit (utilisez Ctrl + W ). Si vous ne le trouvez pas, vous devez créer une entrée personnalisée dans le dossier /etc/udev/rules.d/69-libmtp.rules en suivant le modèle ci-dessous et redémarrer .

    # 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 Enregistrement d'un bogue contre le paquet libmtp (plus précisément libmtp-common ) pour que votre dispositif soit inclus dans les futures versions, si cela a fonctionné pour vous.

  4. Je ne peux toujours pas me connecter

    Votre appareil n'est pas pris en charge par le système sous-jacent libmtp ou si vous rencontrez le même problème que moi avec mon Lumia 620, veuillez suivre la solution de contournement (étapes à reproduire) que j'ai postée sur le site Web de la Commission européenne. LP#1247572 : Nokia Lumia 620 (WP8) ne parvient pas à monter de manière fiable via gvfs-mtp dans nautilus. . ( mtp-detect aide.)

    Vous devez chercher dans le libmtp bug tracker pour votre appareil et suivez les instructions pour les nouveaux appareils sur la page du projet pour ouvrir un rapport de bogue.

  5. Le système de suivi des bogues indique que mon appareil est pris en charge, mais il ne fonctionne toujours pas.

    Dans certains cas, un rapport de bogue concernant votre appareil peut avoir déjà été déposé et résolu dans une version de libmtp plus récente que celle fournie par votre distribution (par exemple : Motorola Moto G ). Si c'est le cas, vous devrez soit attendre que les dépôts officiels soient mis à jour, soit chercher un PPA mis à jour.

    Une liste mise à jour de toutes les versions de libmtp disponibles par le biais des canaux officiels de distribution de logiciels Ubuntu et des PPA privés est disponible. ici (assurez-vous de développer Autres versions de 'libmtp' dans des archives non fiables ). En date du 13 février 2014 ce PPA par Matthieu Baerts offre le dernier paquet libmtp disponible pour Ubuntu.

    Avertissement Ce PPA contient une variété de paquets différents et peut-être instables. Je vous déconseille de l'ajouter à votre système. Vous pouvez plutôt télécharger les paquets libmtp séparément et les installer manuellement sur votre système.

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

    1. Rendez-vous au page de détail du paquet de l'AAE et développez l'entrée libmtp

    2. Téléchargez les paquets suivants : libmtp-common , libmtp-runtime , libmtp9 , mtp-tools . Assurez-vous de choisir la bonne architecture pour votre système (ce sera généralement amd64 ).

      Voici les liens des paquets à la date du 13/02/2014 : libmtp-common , libmtp-runtime , libmtp9 , mtp-tools

    3. Procéder à l'installation manuelle des paquets mis à jour avec dpkg (modifier $HOME/Downloads dans votre dossier de téléchargement et vérifiez 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. Comme j'utilisais Ubuntu 12.04 LTS, j'ai d'abord dû installer une version mise à jour de gnome-gvfs . Veuillez consulter instructions d'installation avant 13.04 en haut de la page pour plus d'informations.

    Pour annuler les changements si quelque chose ne va pas ou si l'appareil n'est toujours pas reconnu, vous devrez installer manuellement les paquets originaux. Rendez-vous sur le site Aperçu des sources de libmtp et trouvez votre version d'Ubuntu. Développez l'entrée en question et procédez au téléchargement des paquets, comme vous l'avez fait à l'étape 2 auparavant. Continuez l'installation comme décrit à l'étape 3 et redémarrez votre système. Tout devrait être revenu à la normale maintenant.

5voto

bseibold Points 1513

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

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

Utilisez gphotofs ~/mymountpoint pour monter, puis fusermount -u ~/mymountpoint pour démonter une fois que vous avez fini.

4voto

mchid Points 36939

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

sudo apt update
sudo apt install android-tools-adb gvfs-backends go-mtpfs jmtpfs gmtp  libgoogle-glog0v5 libmtp-common libmtp-dbg libmtp-dev libmtp-runtime libmtp9 gmtp jmtpfs mtp-tools python-pymtp

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X