12 octubre, 2012

Conecta tu tablet Android 4 con Ubuntu a través de MTP (Media Transfer Protocol) sin desmontar tus tarjetas de almacenamiento

Estos días ando trasteando con mi tablet instalando la última versión de Android (en este caso la versión 4.1 Jelly Bean). Tengo que decir que el sistema me encanta, su fluidez, robustez y el grado de madurez que ha alcanzado Android... Sin embargo, el trabajar con la ultimísima release de cualquier software tiene sus contras, y una de ellas es que en mi caso me he quedado sin poder acceder a los dispositivos de almacenamiento masivo (vamos, que cuando enchufo la tablet al PC, no puedo acceder a la tarjeta de memoria micro SD). Tampoco os creáis que es algo tan raro, las versiones 9 de CyanogenMod, también han perdido esta característica; así que vamos a solucionarlo accediendo por MTP (Media Transfer Protocol) a dicha tarjeta (que además tiene como ventaja que no es necesario desmontar el sistema de almacenamiento del dispositivo para poder manejarlo desde el oredenador).


Perfecto, en Windows, no problem, lo activas (en Ajustes -> Almacenamiento -> Opciones -> Conexión USB al ordenador) y Windows Media Player se encarga del resto. Lo mismo ocurre en Mac con la aplicación Android File Transfer. Pero... ¿y en Ubuntu? Bueno, pues por defecto Ubuntu 12.04 no soporta este protocolo (qué quereis, son las historias de Microsoft: siempre complicando la vida).

Pero bueno, todo en esta vida tiene solución, y activar MTP en Ubuntu, no va a ser menos, así que manos a la obra.

1.- Primero, como ya os he comentado arriba, nos cercioramos de que tenemos activada la conexión como "Dispositivo multimedia (MTP)" en Ajustes -> Almacenamiento -> Opciones -> Conexión USB al ordenador. Allí seleccionamos "Dispositivo multimedia (MTP)" y de forma automática nos desactivará el "Almacenamiento masivo".


2.- Comenzamos. Abrimos la terminal y allí tecleamos:

sudo apt-get install mtp-tools mtpfs

3.- Una vez instaladas las herramientas necesarias para la conexión MTP vamos a identificar nuestra tablet en Ubuntu. Para ello, la conectamos a un puerto USB libre y a continuación volvemos a la terminal para teclear:

 sudo mtp-detect | grep idVendor

Lo que nos devolverá un  número asociado a idVendor (en mi caso 2207)

Volvemos a la terminal para conocer ahora el idProduct tecleando:

sudo mtp-detect | grep idProduct

Al igual que con el idVendor,  el sistema nos devolverá un número de identificación (en mi caso 0001).


4.- Apuntamos estos identificadores y continuamos en la terminal. Escribimos el siguiente comando:

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

Se abrirá  el editor de texto Gedit y allí escribiremos la siguiente línea con los números de identificación idVendor e idProduct que apuntamos antes:

SUBSYSTEM==”usb”, ATTR{idVendor}==”2207”, ATTR{idProduct}==”0001”, MODE=”0666″


Guardamos y cerramos el editor de texto.

5.- A continuación desconectamos nuestra Tablet del ordenador y tecleamos en la terminal:


sudo service udev restart

sudo mkdir /media/tablet

sudo chmod a+rwx /media/tablet

sudo adduser TUNOMBREDEUSUARIO fuse

Donde cambiaremos "TUNOMBREDEUSUARIO" por el nombre de usuario con el que haces logging en Ubuntu y que puedes ver en la esquina superior derecha de tu pantalla:


6.- Si la línea de comandos no nos reporta ningún error, continuamos. Tecleamos de nuevo:

sudo gksu gedit /etc/fuse.conf

Y en el editor de texto que nos abrirá, eliminamos el símbolo de almohadilla (#) al comienzo de la última línea:

...
#user_allow_other



7.- Reiniciamos el sistema para poder continuar.

8.- Una vez de vuelta, ejecutamos los siguientes comandos en el terminal:

sudo echo “alias conectar-tablet=\”mtpfs -o allow_other /media/tablet\”" >> ~/.bashrc

sudo echo “alias desconectar-tablet=\”fusermount -u /media/tablet\”" >> ~/.bashrc

sudo source ~/.bashrc

8.1.- Si por cualquier motivo, tenemos problemas a la hora de ejecutar los comandos anteriores (por ejemplo, se queda la terminal congelada sin realizar ninguna acción), procederemos de la siguiente forma. En la terminal tecleamos:

sudo gedit ~/.bashrc

 Y añadimos las dos lineas siguientes al final del fichero:

alias conectar-tablet='mtpfs -o allow_other /media/tablet'

alias desconectar-tablet='fusermount -u /media/tablet'



9.- Guardamos los cambios realizados y ejecutamos:


sudo -s source /etc/bash.bashrc

Reiniciamos de nuevo la máquina para que lo que acabamos de hacer surta efecto.

10.- Con los pasos 8 y 9, lo que hemos hecho ha sido crear los scripts necesarios para montar y desmontar el almacenamiento de nuestra tablet. De esta forma, cuando la conectemos al PC, teclearemos en la terminal:

conectar-tablet

Lo que nos permitirá acceder a los dispositivos de almacenamiento de nuestra tablet a través de Nautilus.

11.- Y para desmontar de forma segura nuestro dispositivo, tan fácil como:

desconectar-tablet
Ahora ya podéis conectar vuestra flamante tablet a Ubuntu, navegar a través de ella directamente con Nautilus y todo ello sin tener que desmontar el almacenamiento tanto interno como de la tarjeta Micro SD. ¿A qué es guay?

23 comentarios:

  1. gracias! sin este tutorial habria sido imposible navegar por los archivos de mi tablet!

    ResponderEliminar
  2. Me alegro que te funcione. La verdad que navegar por los archivos de la tablet usando Nautilus es una delicia.

    ResponderEliminar
  3. Hola
    Gracias por publicar el tutorial.
    En lo personal no me monta la tablet, cuando escribo conectar-tablet me sale el siguiente mensaje en la consola

    Found 1 device(s):
    Acer: Iconia TAB A200 (ID2) (0502:337d) @ bus 2, dev 4
    Attempting to connect device
    ignoring usb_claim_interface = -6ignoring usb_claim_interface = -5PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
    LIBMTP libusb: Attempt to reset device
    Android device detected, assigning default bug flags
    Listing File Information on Device with name: (NULL)
    fuse: bad mount point `/media/tablet': Transport endpoint is not connected

    Me imagino que hice algo mal, pero no me he podido dar cuenta. Si me ayudas te lo agradecería mucho

    ResponderEliminar
  4. Excelente, muchísimas gracias me sirvió al 100%, me gustó mucho su blog, el único problema que tuve fue al montar la tableta tuve que reiniciarla y funciono bien.


    Y al querer conectar mas de una tableta al mismo tiempo como haría, la reconocería con estos mismos pasos?.


    Saludos.

    ResponderEliminar
  5. Muchas gracias por el tutorial. Utilizo Elementary OS, basado en ubuntu 12.04 y también funciona.

    ResponderEliminar
  6. Luciano Guillermo Fantuzzi19 de enero de 2014, 12:57

    excelente, muchas gracias!! funciona para nexus 5 y android 4.4.2

    ResponderEliminar
  7. muchisimas gracias! pude conectar mi nexus4! aunque esta un poquitin lento al borrar pero normal! gracias!!!!!!!!!!!

    ResponderEliminar
  8. He intentado conectar mi teléfono Xperia siguiendo todos los pasos sin problemas. Pero al teclear
    ~$ conectar-tablet
    Unable to open ~/.mtpz-data for reading, MTPZ disabled.Listing raw device(s)
    Device 0 (VID=0fce and PID=0172) is a SONY LT22i Xperia P MTP.
    Found 1 device(s):
    SONY: LT22i Xperia P MTP (0fce:0172) @ bus 1, dev 5
    Attempting to connect device
    ignoring libusb_claim_interface() = -6PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
    LIBMTP libusb: Attempt to reset device
    Android device detected, assigning default bug flags
    Listing File Information on Device with name: XPERIA P
    fuse: bad mount point `/media/tablet': Transport endpoint is not connected

    Supongo que he hecho una barbaridad.

    Gracias de todos modos

    ResponderEliminar
  9. Samuel Fuentes Caballero4 de abril de 2014, 17:36

    Funciona en Elementary Luna también. Pero antes hay que instalar gedit.

    ResponderEliminar
  10. para ello solo tenemos que hacer lo siguiente:

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

    sudo apt-get update

    sudo apt-get upgrade

    ResponderEliminar
  11. Karlos Ursel Poeth17 de mayo de 2014, 4:03

    no lo pude hacer, me salio muchos errores.. como le pondo si tengo un LG L7 y conectarlo al pc Linux, ayuda porfavor, cuales son los comandos, Se les agradece.

    ResponderEliminar
  12. Yo he conseguido conectar tres tablets diferentes a Ubuntu 12.04.4 activando usando únicamente la opción "sólo almacenamiento masivo". Con las otras no he podido.

    ResponderEliminar
  13. Excelente!!!! Pude conectar mi tablet PCBOX con estos pasos. Estaba a punto de devolverla!!! Muchísimas gracias!!!

    ResponderEliminar
  14. Imperial Heigths2 de julio de 2014, 7:53

    Muchas gracias, ciertamente interesante y rápido tu método.

    ResponderEliminar
  15. Tengo un inconveniente con la tablet asus memopad 173x, en un principio siguiendo los pasos me fue posible conectarla pero luego en seguidas y reiterados intentos no e fue posible aun si sigo de nuevo los pasos que recomiendan aca el estado es conectado pero no puedo acceder ni manipular los archivos que estan dentro de la tablet...... de antemano gracias por la ayuda

    ResponderEliminar
  16. hola buen aporte gracias me sirvió de mucho si puede conectar bien mi
    tableta pero una pregunta no puedo borrar ni copiar a la tableta nada
    verdad solo puedo extraer y visualizar o es un error mio, te agradeseria
    tu respuesta gracias

    ResponderEliminar
  17. gedit es solo un editor de texto, utiliza el que ya tengas en el sistema, simplemente...

    ResponderEliminar
  18. Mejor imposible. Un reinicio y se abre cualquier tablet con iconos diferenciados.

    ResponderEliminar
  19. Francesc Xavier Salarich Marcó29 de mayo de 2015, 11:29

    He conseguido conectar mi movil Acer. Pero lo que falla es me encuentra carpetas y ficheros de la raiz (tanto interno como SD) pero no la información del interior de las carpetas.

    Que estara fallando?

    ResponderEliminar
  20. Haz lo siguiente, tendría que ir bien:
    sudo add-apt-repository ppa:langdalepl/gvfs-mtp
    sudo apt-get update
    sudo apt-get upgrade
    (reinicio)
    Si no sale bien instala esto para aumentar compatibilidad:
    sudo apt-get install go-mtpfs go-mtpfs-unitygmtp gcc libncurses5-dev dpkg-dev
    (reinicio)
    Si no va bien y sigue sin funcionar, pues deshaz los pasos:
    sudo apt-get install ppa-purge
    sudo ppa-purge ppa:langdalepl/gvfs-mtp
    sudo apt-get remove --purge go-mtpfs go-mtpfs-unitygmtp gcc libncurses5-dev dpkg-dev
    (reinicio)
    Trucos que suelen ir bien para que todo siga funcionando:
    1) conecta siempre el móvil o tablet encendido después del PC,
    2) las carpetas no registran los cambios, hay que reiniciar casi siempre, salvo que funcione correctamente la PPA instalada, que registra los cambios automáticamente,
    3) apaga siempre el móvil antes de desconectarlo del PC.
    Suerte.

    ResponderEliminar