¿Cómo hago que mi PC con Linux monte mi teléfono Android 4.2.2 usando MTP?

Acabo de comprar un nuevo teléfono TCL (S950) Idol x y estoy resolviendo un problema para hacerlo visible en mi sistema.

Este teléfono usa Android 4.2.2 y supongo que esta es la causa del problema: mi teléfono anterior con Android 4.1 se mostraba correctamente en nautilus/dolphin (usando mtpfs)

Ahora he intentado instalar mtp-toolspero nada ha cambiado.

lsusbme da esa lista (T & A Mobile Phones debería ser mi teléfono)

Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 002: ID 1bbb:0168 T & A Mobile Phones 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 1bcf:2b80 Sunplus Innovation Technology Inc. 
Bus 002 Device 003: ID 8086:0189 Intel Corp. 

dmesgme da esta salida:

[15780.855333] usb 3-2: new high-speed USB device number 2 using xhci_hcd
[15780.874336] usb 3-2: New USB device found, idVendor=1bbb, idProduct=0168
[15780.874348] usb 3-2: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[15780.874354] usb 3-2: Product: TCL S950
[15780.874359] usb 3-2: Manufacturer: TCT
[15780.874364] usb 3-2: SerialNumber: FESKMRSOYLW8RKSK

¿Alguna idea de lo que podría estar mal aquí?

ACTUALIZACIÓN: he agregado las siguientes reglas a udev ( /etc/udev/rules.d/11-android.rules ) y ahora al menos adb shellfunciona bien:

## TLC
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1bbb", ATTRS{idProduct}==”0167″, MODE="0777", OWNER="fra"

( cambie OWNERel nombre de usuario con el suyo )

Su dispositivo parece ser reconocido bien. Nunca jugué con MTP, pero tal vez necesite hacer que el sistema conozca el dispositivo de una manera similar a adb . Consulte primero ¿Cómo instalo un Kindle Fire 10.2.6 en mi computadora con Linux? (aunque se trata de un Kindle, la parte MTP debería ser la misma;)
en realidad mtpfsme da esta salida:No raw devices found.
También probé github.com/hanwen/go-mtpfs pero también se está quejandono MTP devices found
Esto puede sonar obvio, pero ¿ha habilitado la depuración USB en su teléfono?

Respuestas (4)

He escrito un tutorial sobre cómo hacer que los dispositivos MTP sean reconocidos en Ubuntu . Si ya instaló mtptools y agregó la regla udev, aún necesita crear un punto de montaje estático para su dispositivo e informar a mtp que es donde vive. Asegúrese de haber reiniciado su computadora o el servicio udev desde que agregó la regla udev (reinicio de udev del servicio sudo), y luego

  1. sudo mkdir /media/MTPdevice (llame al directorio como quiera)
  2. sudo chmod 775 /media/MTPdispositivo
  3. sudo mtpfs -o allow_other /media/dispositivoMTP

Conecte su teléfono (asegúrese de que esté desbloqueado, si tiene un pin o un patrón de deslizamiento). Entonces debería poder ver las tarjetas internas y externas. Tenga en cuenta que no podrá abrir archivos directamente desde las tarjetas, primero deberá copiarlos localmente.

esto está funcionando bien ... como puedo ver, hay 2 problemas: 1. el dispositivo no está en la lista libmtfs int (he enviado un error) 2. Necesito usar sudo. Sin embargo, todavía no puedo ver el dispositivo en natilus/dolphin y todo no es estable.
No estoy seguro de seguir tu comentario. ¿Por qué usar sudo es un problema? No podrá hacer y administrar el trabajo en un sistema sin él.
mmm tal vez tengas razón, pero con el otro teléfono (sony experia j) solo conecto el teléfono y puedo verlo en nautilus/dolphin (también es mtp)
Entonces, ¿realmente no está buscando una respuesta, solo quiere quejarse del hecho de que no funciona con uno de sus teléfonos de fábrica?
Solo quiero recopilar la mayor cantidad posible de información precisa para que otras personas con el mismo problema puedan comenzar desde un buen punto... No me "quejo", me pregunto por qué no funciona de la manera esperada. Sospecho que eso está relacionado con el hecho de que el dispositivo no está en la lista libmtpfs (en Windows funciona de forma inmediata, así que realmente quiero que esto suceda también en Linux)

Según lo sugerido por @Logos, esto funciona (tenga cuidado de usar sudo):

sudo mtpfs -o allow_other /media/MTPdevice

Sin embargo mtpfs, es muy inestable en este teléfono, así que probé go-mtpfsy descubrí que funciona mejor. Puede instalar go-mtpfsutilizando la información proporcionada en su sitio

El comando para montar el teléfono es muy similar (cambie la ruta del contenedor según la suya):

sudo /usr/lib/go/bin/go-mtpfs /media/MTPdevice/

Montaje automático
Una vez que pueda montar el dispositivo con el comando anterior, puede hacer que el teléfono se monte automáticamente: solo tiene que agregar un par de reglas a udev.

Necesitarás esa información:

  • ID_MODEL (el mío es TCL_S950 )
  • ID_MODEL_ID (el mío es 0167 )
  • Ruta de instalación de go-mtpfs (la mía es /usr/lib/go/bin/go-mtpfs )

Puede encontrar esa información ejecutando este comando en una terminal udevadm monitor --environment --udevy conectar/desconectar su teléfono.

Ahora puede crear/editar reglas de udev /etc/udev/rules.d/99-android.rulesy agregar estas líneas (cambie ID_MODEL e ID_MODEL_ID con las suyas):

 # Mount  
ENV{ID_MODEL}=="TCL_S950", ENV{ID_MODEL_ID}=="0167", ACTION=="add", RUN+="/usr/bin/sudo -b  /usr/lib/go/bin/go-mtpfs -allow-other=true /media/MTPdevice"
# Umount 
ENV{ID_MODEL}=="TCL_S950", ENV{ID_MODEL_ID}=="0167", ACTION=="remove", RUN+="/bin/umount /media/MTPdevice"

En este punto todo debería funcionar, consulte este hilo para obtener más detalles: fuente

Por curiosidad, ¿cuál fue el comportamiento inestable?
Extraño. Mi máquina (Linux Mint 15, MATE) se monta y desmonta automáticamente sin estas reglas adicionales.

Suponiendo que está utilizando una distribución basada en Ubuntu 12.04 o 12.10 (v13 y superior es compatible de forma nativa) y que gvfs-mtpya está instalada:

  1. Agregue el repositorio de backport para compatibilidad con MTP en GVFS:

    sudo add-apt-repository ppa:langdalepl/gvfs-mtp
    sudo apt-get update
    
  2. Actualice el sistema, debería ver muchos paquetes gvfs en la lista:

    sudo apt-get upgrade
    
  3. Reiniciar.

Fuente: http://blog.sukria.net/2013/03/09/support-for-nexus-4-in-ubuntu-12-10/

En realidad, la forma más fácil es modificar /usr/lib/udev/rules.d/69-libmtp.rules agregando su ID de producto, ya que es probable que ya contenga su ID de proveedor, así que cree una nueva línea para su dispositivo con su VID y PID, reinicie udev y ¡funciona!