Ceci est une ancienne révision du document !


MTP - Media Transfer Protocol : un protocole de transfert de fichiers multimédias sur des périphériques externes

Si lorsque vous branchez votre appareil Android, celui-ci est reconnu mais est vide sous l'explorateur, c'est que vous avez sans doute configuré un verrouillage par code, modèle ou signature. Déverrouillez-le et vous aurez alors accès à vos fichiers. Il s'agit d'une sécurité implémentée dans le protocole MTP.
A partir de la version 13.04 ou 14.04 selon les sources, les périphériques mtp "sont" nativement gérés.

Media Transfer Protocol (MTP) est un protocole de transfert de fichiers destiné au monde du multimédia. Créé récemment (depuis 2004 environ), il s'agit d'un ensemble d'ajouts au Picture Transfer Protocol déjà existant utilisé par les appareils photos numériques. Les ajouts apportés à ce protocole permettent de gérer les spécificités des divers appareils multimédia : baladeurs, appareils de photographie numérique, caméras vidéo, téléphones portables, etc. Il est de plus en plus utilisé par les périphériques mobiles.

Originalement créé par Microsoft®, le protocole MTP est désormais développé par le USB Implementers Forum et est en cours de normalisation. Actuellement, le protocole MTP est bien supporté par Windows XP SP2 (Windows Media Player 11 requis, car c'est celui-ci qui apporte le support de MTP sous cet OS) et Windows Vista ; pour les autres systèmes d'exploitation, il est nécessaire d'avoir recours la libmtp.

Sous Ubuntu, le protocole MTP est géré nativement. Ainsi, vos baladeurs sont pris en charge par votre lecteur audio préféré (Banshee, Rhythmbox, Amarok, etc.).

Récemment, MTP est devenu le protocole recommandé par Google pour l'accès aux mémoires des téléphones Android.

Versions équivalentes ou postérieures à Trusty 14.04

A partir de la version 14.04 les périphériques mtp "sont" nativement gérés. Il peut y avoir aussi des problèmes de reconnaissance et de droit d'accès aux fichiers.

Certains utilisateurs rapportent que des problèmes subsistent selon l'explorateur de fichier utilisé : par exemple Nautilus permet d'accéder sans problème à un Galaxy S3 alors qu'avec Dolphin c'est impossible.

FIXME Pour Ubuntu 14.04: solution a priori trouvée (valide utilisé pour Dolphin, et un android phone)

voir : https://wiki.ubuntuusers.de/MTP/

et https://askubuntu.com/questions/505932/ubuntu-14-04-mtp-error/

Principe

  sudo apt-get install mtpfs mtp-tools 
  sudo mtp-detect 

modification du fichier de configuration /etc/udev/rules.d/69-libmtp.rules

VERSIONS <=12.10

Cette méthode a été mise en place pour Ubuntu 12.04 et 12.10 (pour la 13.04 et + le support est déjà intégré).

Pour les appareils Android (4.0 et supérieur) ou tout autre appareil utilisant le protocole MTP, il existe un PPA sur Unity.

Installation

Nous allons utiliser ici un PPA de webupd8team.

  sudo add-apt-repository ppa:webupd8team/unstable
  sudo apt-get update
  sudo apt-get install go-mtpfs go-mtpfs-unity

Une fois fait, supprimez le PPA dans les paramètres du gestionnaire de mises à jour, onglet 'Autres Logiciels', puis décocher la ligne du PPA ppa:webupd8team/unstable. En ligne de commande, la suppression du PPA se fait grace à la commande :

  sudo add-apt-repository --remove ppa:webupd8team/unstable
Les trois méthodes proposées ci-dessous nécessitent l'utilisation de la bibliothèque Fuse

Utilisation de gphotofs

libmtp2 n'est plus disponible sur Ubuntu 12.04 LTS. Mais la manipulation marche quand même.

Tout d'abord, installez les dépendances libmtp2, libgphoto2-2, libgphoto2-port0. Ensuite, installez l'outil-clé : gphotofs

Ensuite, l'utilisation de gphotofs pour un montage dans /media/mtp (par exemple) :

sudo mkdir -m 777 /media/mtp 
sudo gphotofs /media/mtp -o allow_other
Donner les droits au bon propriétaire ou au bon groupe à l'aide de la commande chown est toujours préférable à un chmod 777.

ou pour être accessible que par root :

sudo gphotofs /media/mtp -o allow_root

Voilà ! Il ne vous reste plus qu'à rajouter les fichiers musicaux de votre baladeur situés dans le point de montage à votre collection dans votre lecteur favori !

Pour faire l'inverse, c'est-à-dire mettre des fichiers de votre ordinateur dans le lecteur, il faut ajouter l'utlisateur au groupe "fuse". On peut ainsi utiliser un navigateur de fichier (Nautilus, Konqueror…), l'intérêt de cette méthode étant de pouvoir créer/transférer des sous-dossiers. — xaad67 Le 06/05/2010, 17:08

Et pour démonter /media/mtp, tapez la commande :

fusermount -u /media/mtp

Utilisation de mtpfs

Vous pouvez utiliser aussi Mtpfs ( disponible sous Hardy ), le fonctionnement est similaire à gphotofs mais est accessible pour un simple utilisateur.

Installez le paquet mtpfs en cliquant ici.

Taper la commande suivante pour créer le point de montage si il n'existe pas déjà :

mkdir ~/mtp

puis pour monter un périphérique en tapant la commande suivante :

mtpfs ~/mtp

Utilisation de jmtpfs (pour périphériques MTP >= Android 4)

Installer le paquet jmtpfs (disponible à partir de Ubuntu 14.04) en cliquant ici

Pour garder une cohérence avec le reste de Linux, taper la commande suivante (facultatif) :

sudo ln -s /usr/bin/jmtpfs /sbin/mount.jmtpfs

Taper la commande suivante pour créer le point de montage s'il n'existe pas déjà :

mkdir ~/mtp

Et enfin, taper la commande suivante pour monter le filesystem mtp dans le répertoire choisi précédemment :

jmtpfs ~/mtp

Si le périphérique MTP n'est pas connu par libmtp, alors le message suivant s'affichera :

Device 0 (VID=2931 and PID=0a05) is UNKNOWN.
Please report this VID/PID and the device model to the libmtp development team

Il faut alors faire une mise à jour de libmtp via le PPA de libmtp 1).

On peut le faire en tapant la commande suivante :

sudo add-apt-repository -y ppa:fossfreedom/libmtp && sudo apt-get update -q && sudo apt-get upgrade

On peut alors relancer le montage du périphérique MTP :

$ jmtpfs ~/mtp
Device 0 (VID=2931 and PID=0a05) is a Jolla Sailfish (ID2).

Démontage du repertoire

Pour démonter le périphérique dans les deux cas ci-dessus :

fusermount -u /media/mtp

Automatiser un peu le montage d'un baladeur mtp sur Jaunty avec mtpfs

Une procédure assez simple permet de créer des raccourcis dans votre menu "Application" de Gnome pour y retrouver les fonctions "Monter le baladeur" et "Démonter le baladeur". Cette procédure utilise le mtpfs et a été réalisée pour le Créative Zen mais peut trouver à s'appliquer pour tout baladeur mtp.

Notez cependant que la version de GVFS proposée ici provient du dépôt personnel (PPA) de Philip Langdale, le développeur du greffon MTP pour GVFS; bien qu’étant testé, elle pourrait néanmoins rendre votre système instable ou entrer en conflit avec des futures mises à jour d’Ubuntu.

L’intérêt de GVFS est qu’il s’agit d’une composante de base d’Ubuntu, bien intégrée dans le système. Ainsi, l’appareil mobile est reconnu par le gestionnaire de fichiers, mais aussi les lecteurs de musique Rhythmbox et Banshee pour synchroniser sa médiathèque, et le gestionnaire de photos Shotwell pour synchroniser sa photothèque.

Pour procéder à la mise à jour de GVFS, suivez les instructions suivantes:

Ouvrez un terminal et exécutez les commandes suivantes:

sudo add-apt-repository ppa:langdalepl/gvfs-mtp
sudo apt-get update

Ouvrez ensuite le gestionnaire de mises à jour, puis appliquez l’ensemble des mises à jour proposées;

Enfin, lorsque les mises à jour sont installées, redémarrez votre système.

Merci à ubuntuser.com pour cette méthode.

A partir de la version 13.04, il semble y avoir un support natif de MTP.

Pour rendre votre téléphone Android compatible avec les anciennes versions de Ubuntu à travers le protocole MTP, vous allez devoir compiler un système de fichiers compatible FUSE (Système de fichiers en environnement utilisateur) appelé : go-mtpfs

N'oubliez pas de vérifier que votre compte utilisateur est membre du groupe « fuse ».

Comme son nom l'indique, go-mtpfs est écrit en langage Go. Il faut donc installer le support de ce langage, ainsi que la librairie de développement libmtp-dev sur laquelle go-mtpfs est basé. Enfin, il faut installer Git, le gestionnaire de version utilisé par le projet go-mtpfs. Installez les dépendances : apt://libmtp-dev, apt://golang, apt://git

Une fois l'environnement de compilation installé, il ne vous reste qu'à lancer les commandes ci-dessous pour compiler et installer go-mtpfs.

mkdir /tmp/go 
export GOPATH=/tmp/go
go get github.com/hanwen/go-mtpfs
sudo cp /tmp/go/bin/go-mtpfs /usr/local/bin/

Pour utiliser go-mtpfs rien de plus simple : branchez votre téléphone/baladeur compatible MTP à l'un des ports USB de votre ordinateur, créez un dossier qui servira de point de montage pour le contenu du périphérique et lancez go-mtpfs. Exemple :

mkdir ~/Bureau/Nexus
go-mtpfs ~/Bureau/Nexus

Une fois vos échanges terminés, pour démonter proprement le périphérique :

fusermount -u ~/Bureau/Nexus

Automatisation de montage/démontage à l'aide du script suivant à associer à un lanceur :

#!/bin/bash
go-mtpfs && thunar ~/Bureau/Nexus
thunar ~/Bureau/Nexus
if  ! go-mtpfs ~/Bureau/Nexus ; then
  fusermount -u ~/Bureau/Nexus
fi

Enfin, pour supprimer toute trace de l'installation de go-mtpfs si vous n'en voulez plus :

rm -rf /tmp/go && rm -f /usr/local/bin/go-mtpfs
Cette méthode fonctionne sous XFCE 12.04 pour le smartphone Acer Z3.

Faire l'installation en 1.1.

Personnalisation du launcher

Chercher le launcher en utilisant le mot clé Android, puis conservez-le dans la barre des tâches.

Nous allons le personnaliser comme suit :


Ouvrir le fichier :

  gksudo gedit /usr/share/applications/go-mtpfs-unity.desktop

Puis remplacer le contenu par cela :

[Desktop Entry]
Name=Branchement de ma tablette Android
GenericName=Branchement de ma tablette Android
Comment=Mount an Android device filesystem using Go-mtpfs
Keywords=Android; mount; unmount; go-mtpfs; mtpfs; nexus; tablette
Exec=notify-send --icon=go-mtpfs-android "Go-mtpfs" "Ceci est destiné à être utilisé comme une icône de Unity Launcher - ajouter le à la barre de lancement Unity, puis cliquez droit sur l'icône pour voir les options disponibles"
Icon=go-mtpfs-android
Type=Application
Categories=System;
OnlyShowIn=Unity;
X-Ayatana-Desktop-Shortcuts=Mount;Unmount;
TargetEnvironment=Unity
 
[Mount Shortcut Group]
Name=Branche ma Tablette Android
Exec=go-mtpfs-unity mount
TargetEnvironment=Unity
 
[Unmount Shortcut Group]
Name=Débranche ma Tablette Android
Exec=go-mtpfs-unity unmount
TargetEnvironment=Unity

Enregistrer puis fermer Gedit.

Cette méthode fonctionne pour mon cas (12.04 LTS avec tablette ASUS Android 4.2) à condition de lancer les commandes en étant root :

Pour monter : sudo go-mtpfs-unity mount

Seul root a accès à /media/MyAndroid

Pour démonter : sudo go-mtpfs-unity unmount

Fonctionnement

Une fois branchée en USB, la tablette se monte dans le dossier /media/MyAndroid. Apparaît alors un dossier dans Nautilus, sur lequel on peut cliquer et accéder au contenu de la carte SD de la tablette. Le transfert terminé, on peut démonter la tablette et attendre la notification avant de totalement la débrancher du PC.

Une fois connecté en USB deux dossiers "SAMSUNG_Android" sont montés mais les sous dossiers sont vides. Lorsqu'on fait un clic droit sur l’icône Android puis sur "Branche ma Tablette Android" le dossier "/media/MyAndroid" est monté et il contient les sous dossiers à utiliser. NB : Il est conseillé de démonter proprement la partition /media/MyAndroid en faisant un clic droit sur l’icône Android puis sur "Débranche ma Tablette Android"
Cette méthode a été mise en place pour Ubuntu 12.04 avec gnome-shell.

Installation

Même installation que pour unity (méthode 4)

Création de shells pour se connecter et se déconnecter

Tout d'abord, en mode sudo créez le dossier qui accueillera la connexion :

sudo mkdir /media/MyAndroid

Ensuite créez deux shells qui vous permettront de vous connecter et de vous déconnecter.

Connexion :

#!/bin/bash
go-mtpfs /media/MyAndroid

Déconnexion :

#!/bin/bash
sudo nautilus /media
exit

Si vous voulez que ces fonctionnalités soient accessibles par tous les comptes ubuntu, en plus de leur donner les droits à exécution :

chmod +x *-Android

Déplacez-les dans le dossier qui va bien :

sudo mv *-Android /usr/local/bin

Pour une question de simplicité, ajoutez-les dans les menus. Par exemple dans Accessoires, ajoutez un dossier : Clic-droit sur le menu Applications ⇒ Éditer les menus Clic-gauche sur Accessoires (dans la liste à gauche) Nouveau menu ⇒ Android Déplier Accessoires et cliquer sur Android Nouvel élément

   => Nom : Monter Android
   => Commande : /usr/local/bin/monter-Android
   Cliquer sur l'icone pour la changer
   Dans la liste de gauche => icons
   Dans la liste de droite => Humanity => devices => 48 => music-player.svg => Ouvrir
   Valider le lanceur
   

Recommencer avec le démontage : Nouvel élément

   => Nom : Démonter Android
   => Commande : /usr/local/bin/demonter-Android
   Cliquer sur l'icone pour la changer
   Dans la liste de gauche => icons
   Dans la liste de droite => Humanity => devices => 48 => music-player.svg => Ouvrir
   Valider le lanceur
   

Fonctionnement

Connexion :

Lors de l'insertion, Ubuntu vous ouvrira un périphérique nommé Android. Vous y verrez tous les dossiers, mais rien dedans. Fermez-le et connectez-vous avec le shell :

Applications ⇒ Accessoires ⇒ Android ⇒ Monter Android

Vous aurez alors accès à MyAndroid et à tous les dossiers et fichiers du périphérique, et vous pourrez copier, déplacer, … les fichiers que vous voulez traiter.

Déconnexion :

Comme tout périphérique, celui-ci doit être démonté, notamment si une écriture a été effectuée sur le périphérique. Ici, le fonctionnement est curieux. La seule façon est de retirer le périphérique en sudo sous nautilus. D'où le shell vous demandant votre mot de passe, et ouvrant ensuite nautilus dans le dossier /media. Vous pourrez alors démonter MyAndroid en utilisant le panneau latéral gauche et en cliquant sur l'icône d'éjection. Personnellement, je préfère avoir le dossier ouvert dans nautilus en arrière-plan pour voir visuellement la déconnexion (la fenêtre de nautilus se fermant lors de l'éjection).

Je n'ai pas été en mesure de monter le périphérique (il s'agissait d'un smartphone) quand dans celui-ci était installé avec une carte SD. Si quelqu'un a la solution …

Recompiler son logiciel de musique : Voici plusieurs tutos que vous avez certainement dû rencontrer lors de vos vaines (ou pas) recherches de solutions :

Et voilà, votre baladeur devrait maintenant soit être reconnu comme baladeur mp3 dans amaroK/Gnomad2 , soit être utilisable en tant que stockage amovible !


  • mtp.1467543130.txt.gz
  • Dernière modification: Le 03/07/2016, 12:52
  • par eagle08