Cómo obtener el nombre del dispositivo MTP

11

... He intentado buscar, pero me da un montón de "cómo conectar dispositivos MTP"

Solo quiero saber cómo conectar el nombre del dispositivo como (Nexus 10 o Galaxy S5), que puedo ver en la lista de dispositivos Nautilus.

Andrew Matuk
fuente

Respuestas:

13

Esto me pareció sorprendentemente difícil. Tengo un Nexus 5 y KDE (usando libmtp, creo) lo muestra como un Nexus 5. Mi primer instinto fue que KDE simplemente estaba mirando la base de datos de hardware. Esto asigna cadenas de proveedores y productos de dispositivos USB a nombres conocidos. Aquí está el problema:

$ lsusb
Bus 002 Device 011: ID 18d1:4ee1 Google Inc. Nexus 4

¡Mi Nexus 5 acaba de rebajarse! Entonces KDE no lo está obteniendo desde allí.

Podemos usar udevadmpara consultar dispositivos. En este caso, debemos pasarle una referencia al dispositivo. Voy a usar los números de bus / dispositivo de arriba (deben %03dformatearse, por lo que 1 se convierte en 001, 20 se convierte en 020, etc.):

$ udevadm info --name=/dev/bus/usb/002/011
...
E: ID_MODEL=Nexus_5
E: ID_MODEL_ENC=Nexus\x205
E: ID_MODEL_FROM_DATABASE=Nexus 4
...

Hay muchas otras tonterías allí, pero ID_MODELparece ser lo que queremos. Si necesita extraer y procesar más, puede ejecutarlo awk(u otro) para limpiarlo y reemplazar el guión bajo:

$ ... | awk -F'=' '/ID_MODEL=/{gsub("_"," ");print $2}'
Nexus 5
Oli
fuente
como lo estoy ejecutando desde udev / rules script $ env {ID_MODEL} funciona de maravilla, gracias
Andrew Matuk
Ah, incluso mejor.
Oli
8

Puede analizar la salida de mtp-detect.

Primera instalación mtp-tools:

sudo apt-get install mtp-tools

Y correr:

$ mtp-detect 2>/dev/null | grep Model:
    Model: Nexus 7 (2013) Wi-Fi
Sylvain Pineau
fuente
He tratado de evitar las dependencias, pero aún así, gracias
Andrew Matuk
Eché un vistazo, mtp-detectpero lo encontré muy lento. Tomó 40 segundos completarlo aquí.
Oli
@Oli: con solo mi Nexus 7 conectado, es casi instantáneo, extraño. Pero mirar a udev también es una buena opción :)
Sylvain Pineau