... Я пробовал поиск, но он дает массу "как подключить устройства MTP"
Я просто хочу узнать, как получить имя подключенного устройства, например (Nexus 10 или Galaxy S5), которое я вижу в списке устройств Nautilus.
... Я пробовал поиск, но он дает массу "как подключить устройства MTP"
Я просто хочу узнать, как получить имя подключенного устройства, например (Nexus 10 или Galaxy S5), которое я вижу в списке устройств Nautilus.
Ответы:
Я нашел это на удивление жестким. У меня Nexus 5, и KDE (используя libmtp
, я думаю) отображает его как Nexus 5. Мой первый инстинкт был в том, что KDE просто смотрел на аппаратную базу данных. Это сопоставляет строки поставщиков и продуктов USB-устройств с известными именами. Вот проблема:
$ lsusb
Bus 002 Device 011: ID 18d1:4ee1 Google Inc. Nexus 4
Мой Nexus 5 только что получил оценку! Так что KDE не получает его оттуда.
Мы можем использовать udevadm
для запроса устройств. В этом случае нам нужно передать ему ссылку на устройство. Я собираюсь использовать номера шин / устройств сверху (они должны быть %03d
отформатированы, поэтому 1 становится 001, 20 становится 020 и т. Д.):
$ 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
...
Там много другого дерьма, но, ID_MODEL
похоже, мы этого хотим. Если вам нужно дополнительно извлечь и обработать это, вы можете выполнить его awk
(или другое), чтобы очистить и заменить подчеркивание:
$ ... | awk -F'=' '/ID_MODEL=/{gsub("_"," ");print $2}'
Nexus 5
Вы можете проанализировать вывод mtp-detect
.
Первая установка mtp-tools
:
sudo apt-get install mtp-tools
И запустить:
$ mtp-detect 2>/dev/null | grep Model:
Model: Nexus 7 (2013) Wi-Fi
mtp-detect
но нашел это серьезно медленно. Это заняло 40 секунд.