Como obter o nome do dispositivo MTP

11

... Eu tentei pesquisar, mas dá uma tonelada de "como conectar dispositivos MTP"

Eu só quero saber como obter o nome do dispositivo conectado como (Nexus 10 ou Galaxy S5), que eu posso ver na lista de dispositivos Nautilus.

    
por Andrew Matuk 07.07.2014 / 12:53

2 respostas

13

Eu achei isso surpreendentemente difícil. Eu tenho um Nexus 5 e KDE (usando libmtp , eu acho) exibe como um Nexus 5. Meu primeiro instinto foi que o KDE estava simplesmente olhando para o banco de dados de hardware. Isso mapeia cadeias de produtos e produtos de dispositivos USB para nomes conhecidos. Aqui está o problema:

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

Meu Nexus 5 acaba de receber um downgrade! Então o KDE não está conseguindo de lá.

Podemos usar udevadm para consultar dispositivos. Neste caso, precisamos passar uma referência para o dispositivo. Eu vou usar os números de barramento / dispositivo acima (eles precisam ser %03d formatados, então 1 se torna 001, 20 se torna 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
...

Há muitas outras porcarias lá, mas ID_MODEL parece ser o que queremos. Se você precisar extrair e processar isso, você pode executá-lo através de awk (ou outro) para limpá-lo e substituir o sublinhado:

$ ... | awk -F'=' '/ID_MODEL=/{gsub("_"," ");print }'
Nexus 5
    
por Oli 07.07.2014 / 13:40
8

Você pode analisar a saída de mtp-detect .

Primeiro, instale mtp-tools :

sudo apt-get install mtp-tools

E corra:

$ mtp-detect 2>/dev/null | grep Model:
    Model: Nexus 7 (2013) Wi-Fi
    
por Sylvain Pineau 07.07.2014 / 14:00