Cách nhận tên thiết bị MTP


11

... Tôi đã thử tìm kiếm nhưng nó cung cấp rất nhiều "cách kết nối thiết bị MTP"

Tôi chỉ muốn biết làm thế nào để có được tên thiết bị được kết nối như (Nexus 10 hoặc Galaxy S5), mà tôi có thể thấy trong danh sách thiết bị Nautilus.

Câu trả lời:


13

Tôi thấy điều này đáng ngạc nhiên khó khăn. Tôi có Nexus 5 và KDE (sử dụng libmtp, tôi nghĩ) hiển thị nó dưới dạng Nexus 5. Bản năng đầu tiên của tôi là KDE chỉ đơn giản là nhìn vào cơ sở dữ liệu phần cứng. Điều này ánh xạ chuỗi nhà cung cấp và sản phẩm từ các thiết bị USB đến các tên đã biết. Đây là vấn đề:

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

Nexus 5 của tôi vừa bị hạ cấp! Vì vậy, KDE không nhận được nó từ đó.

Chúng ta có thể sử dụng udevadmđể truy vấn các thiết bị. Trong trường hợp này, chúng ta cần truyền cho nó một tham chiếu đến thiết bị. Tôi sẽ sử dụng số xe buýt / thiết bị từ phía trên (chúng cần được %03dđịnh dạng, vì vậy 1 trở thành 001, 20 trở thành 020, v.v.):

$ 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
...

Có rất nhiều thứ nhảm nhí khác trong đó nhưng ID_MODELdường như là thứ chúng ta muốn. Nếu bạn cần giải nén thêm và xử lý nó, bạn có thể chạy nó qua awk(hoặc cái khác) để dọn sạch nó và thay thế dấu gạch dưới:

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

vì tôi đang chạy nó từ udev / script script $ env {ID_MODEL} hoạt động như một bùa mê, cảm ơn bạn
Andrew Matuk

Ah, thậm chí còn tốt hơn.
Oli

8

Bạn có thể phân tích đầu ra của mtp-detect.

Cài đặt đầu tiên mtp-tools:

sudo apt-get install mtp-tools

Và chạy:

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

Tôi đã cố gắng tránh phụ thuộc, nhưng vẫn cảm ơn bạn
Andrew Matuk

Tôi đã có một cái nhìn mtp-detectnhưng thấy nó chậm nghiêm trọng . Phải mất 40 giây để hoàn thành ở đây.
Oli

@Oli: Chỉ với Nexus 7 của tôi được cắm, nó gần như tức thời, kỳ lạ. Nhưng nhìn vào udev cũng là một lựa chọn tốt :)
Sylvain Pineau
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.