Skip navigation

Vediamo come far riconoscere e montare-smontare automaticamente il nostro dispositivo Android MTP sotto linux. Prima chiariamo un’attimo cos’è MTP.

Mtp è l’acronimo di Media Transfer Protocol creato da Microsoft per permettere di gestire da PC i file contenuti in un device senza doverne interrompere l’utilizzo. Tutto sommato un’idea niente male che è stata adottata da Google per i devices equipaggiati Android di nuova generazione molto probabilmente dovuto al fatto che i devices ufficiali Google, tipo Galaxy Nexus e Nexus 7, non avendo memoria SD ma un solo blocco unico di memoria interna, sono impossibilitati ad usare il protocollo UMS (usb mass storage) perchè è impossibile “smontare” (umount) la memoria per accedervi.

Questi dispositivi funzionano nativamente sotto Windows e Google ha provveduto a creare l’app “Android File Transfer” per Mac OSX ma non ha pensato a Linux!!! Che razza di idiozia è!? Un sistema Linux che non comunica con un’altro sistema Linux? Gooogleeee?!? Ma che combini?!!

Comunque, con un po’ di lavoro, si può utilizzare il dispositivo anche sotto Linux grazie al lavoro della grande comunità open source e non di certo per merito di Google che fin’ora da Linux ha solo preso e non ha ancora dato abbastanza.

Vediamo come fare.

P.s.: nello specifico i comandi da terminale sono riferiti a Sabayon ed al suo packet manager. Voi adattate in base alla distribuzione che avete (yast; rpm; yaourt; apt-get; etc.)

Per prima cosa installiamo “libmtp” e “Fuse” (le versioni sono quelle disponibili ad oggi. Voi adattate in base alla temporalità o alla distribuzione)-

flexer@cinnabook ~ $ sudo equo install libmtp-1.1.2

flexer@cinnabook ~ $ sudo equo install fuse-2.9.1-r1

Bene, fatto questo, in molti tutorial si suggerisce di installare “mtpfs” che a me non ha funzionato. Io invece vi propongo di usare l’ottimo “jmtpfs” di Jason Ferrara che trovate qui. Ad oggi la versione è la 0.4.

Scarichiamo jmtpfs-0.4.tar.gz  in una cartella a scelta e scompattiamolo. Una volta scompattato, entriamo nella cartella e compiliamo l’applicazione con i ben noti “./configure”, “make” e “make install”. Mi raccomando di eseguire solo “make install” con privilegi di root. Quindi:

flexer@cinnabook ~/Scaricati/jmtpfs-0.4 $ ./configure

Poi:

flexer@cinnabook ~/Scaricati/jmtpfs-0.4 $ make

ed infine, con privilegi di root:

flexer@cinnabook ~/Scaricati/jmtpfs-0.4 $ sudo make install.

Bene. Se tutto ha funzionato, dovremmo essere in grado di accedere al nostro dispositivo. Facciamo una prova creando una cartella (ad es. /home/<user>/galaxy) e montandovi il dispositivo:

flexer@cinnabook ~$ jmtpfs /home/<user>/galaxy

Bene. Se riusciamo ad accedere al dispositivo, tutto è ok. Ora aggiungiamo il “tocco di magia” grazie allo script di Fabio Andrés Correa che abilita il servizio di automount.

Aggiungiamo una regola udev

flexer@cinnabook ~ $ sudo vi /etc/udev/rules.d/99-jmtpfs.rules

copiamo all’interno questo codice e salviamo.

# Automount an MTP device with jmtpfs
ACTION=="add", ENV{ID_MTP_DEVICE}=="1", RUN="/usr/local/sbin/mountmtp mtp%k"
ACTION=="remove", ENV{ID_MTP_DEVICE}=="1", RUN="/usr/local/sbin/umountmtp mtp%k"

Ora creiamo lo script di montaggio:

flexer@cinnabook ~ $ sudo vi /usr/local/sbin/mountmtp

e copiamo questo codice all’interno del file

#!/bin/bash
mkdir -p /media/$1
jmtpfs -o allow_other /media/$1 |& logger -t jmtpfs

salviamolo e rendiamolo eseguibile:

flexer@cinnabook ~ $ sudo chmod +x /usr/local/sbin/mountmtp

Ora creiamo lo script di smontaggio:

flexer@cinnabook ~ $ sudo vi /usr/local/sbin/umountmtp

e copiamo questo codice all’interno del file

#!/bin/bash
umount -v /media/$1 |& logger -t jmtpfs
rmdir /media/$1

salviamolo e rendiamolo eseguibile:

flexer@cinnabook ~ $ sudo chmod +x /usr/local/sbin/umountmtp

Finito.

Ora riavviate udev

flexer@cinnabook ~ $ sudo /etc/init.d/udev restart

(o riavviate il pc; de gustibus) e quando collegherete il vostro dispositivo, verrà montato automaticamente e smontato automaticamente quano lo scollegherete.

Lunghetto lo so! Ma risolve un bel problemino!

Have fun. …Always!


Annunci

Rispondi

Effettua il login con uno di questi metodi per inviare il tuo commento:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...