Como obter o nome do dispositivo MTP


11

... Eu tentei pesquisar, mas ele fornece toneladas de "como conectar dispositivos MTP"

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

Respostas:


13

Achei isso surpreendentemente difícil. Eu tenho um Nexus 5 e o KDE (usando libmtp, acho) o exibe como um Nexus 5. Meu primeiro instinto foi que o KDE estava simplesmente olhando o banco de dados de hardware. Isso mapeia as cadeias de fornecedores 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 acabou de receber um downgrade! Portanto, o KDE não está conseguindo isso a partir daí.

Podemos usar udevadmpara consultar dispositivos. Nesse caso, precisamos passar uma referência ao dispositivo. Vou usar os números de barramento / dispositivo de cima (eles precisam ser %03dformatados, 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_MODELparece ser o que queremos. Se você precisar extrair e processar isso, poderá executá-lo awk(ou outro) para limpá-lo e substituir o sublinhado:

$ ... | awk -F'=' '/ID_MODEL=/{gsub("_"," ");print $2}'
Nexus 5

como eu estou correndo de udev / rules roteiro $ env {ID_MODEL} funciona como um encanto, obrigado
Andrew Matuk

Ah, melhor ainda.
Oli

8

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

Primeira instalação mtp-tools:

sudo apt-get install mtp-tools

E corra:

$ mtp-detect 2>/dev/null | grep Model:
    Model: Nexus 7 (2013) Wi-Fi

Tentei dependências evitar, mas ainda obrigado
Andrew Matuk

Eu dei uma olhada, mtp-detectmas achei muito lento. Demorou 40 segundos para concluir aqui.
Oli

@Oli: Com apenas o meu Nexus 7 conectado, é quase instantâneo, estranho. Mas olhando para o udev também é uma boa escolha :)
Sylvain Pineau
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.