MTP 장치 이름을 얻는 방법


11

... 검색을 시도했지만 수많은 "MTP 장치를 연결하는 방법"

노틸러스 장치 목록에서 볼 수있는 (Nexus 10 또는 Galaxy S5)와 같은 연결된 장치 이름을 얻는 방법을 알고 싶습니다.

답변:


13

나는 이것이 놀랍도록 힘든 것을 발견했다. 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

내가 udev / rules 스크립트에서 실행하는 것처럼 $ env {ID_MODEL}은 매력처럼 작동합니다.
Andrew Matuk

아, 더 좋아
Oli

8

의 출력을 구문 분석 할 수 있습니다 mtp-detect.

첫 설치 mtp-tools:

sudo apt-get install mtp-tools

그리고 다음을 실행하십시오.

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

나는 의존성을 피하려고 노력했지만 여전히 감사합니다
Andrew Matuk

나는 살펴 mtp-detect보았지만 심각하게 느리다는 것을 알았습니다 . 여기에서 완료하는 데 40 초가 걸렸습니다.
Oli

@Oli : Nexus 7 만 연결하면 거의 순간적이며 이상합니다. 그러나 udev를 보는 것도 좋은 선택입니다 :)
Sylvain Pineau
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.