... 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.
... 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:
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_MODEL
dườ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
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
mtp-detect
nhưng thấy nó chậm nghiêm trọng . Phải mất 40 giây để hoàn thành ở đây.