MTP : transfert de fichiers multimédias sur des périphériques

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.

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.

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.

Utilisation

À partir d'Ubuntu 14.04 les périphériques mtp "sont" nativement gérés. Il peut cependant y avoir 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 (voir la solution plus bas). Il est a noter que ce problème avec Dolphin peut se résoudre en utilisant un port USB 3 (si votre ordinateur en est equipé) au lieu d'un port USB 2. Il faut alors chercher dans le dossier "reseau" (network) pour y trouver les dossiers du smartphone.

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

Installer le paquet jmtpfs.

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

Sous Ubuntu 12.04

Le plus simple, faites une mise à niveau de version.

Méthode 1 : Avec un ppa

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

Les trois méthodes proposées ci-dessous nécessitent l'utilisation de la bibliothèque Fuse

Utilisation de mtpfs

Vous pouvez utiliser aussi Mtpfs.

Installez le paquet mtpfs.

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

Méthode 3 : En test, mais semble être la méthode la plus simple et la plus efficace

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.

Méthode 4 : Android (4.0 et supérieur)

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"

Méthode 6 : pour les appareils Android (4.0 et supérieur) et un PPA sur gnome-shell

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 …

Problèmes connus

Avec Dolphin

Si Dolphin gère mal votre Android, installez les paquets mtpfs,mtp-tools, puis lancez la commande suivante dans un ici et pour plus d'informations.

Liens

  • mtp.txt
  • Dernière modification: Le 28/04/2018, 11:17
  • (modification externe)