Переклад(и): English - Українська
Протокол передачі мультимедія (MTP) використовується для передавання файлів між пристроями. Зокрема, між новими смартфонами Android або Microsoft та компʼютером Debian.
Майте на увазі, що багато смартфонів вмикають MTP лише тоді, коли телефон розблоковано! Останні версії Android також вимагають змінити стан USB-з’єднання із Зарядити цей пристрій на Передача файлів.
Contents
Стільнична підтримка
GNOME
Програми GNOME (як-от Файли GNOME та Керівник архівами) для монтування розділів MTP і доступу до файлів на пристроях MTP використовують GVFS (віртуальну файлову систему GNOME) на основі GIO:
- запустіть підʼєднавши свій пристрій (напр., через кабель USB)
- взаємодійте з підʼєднаним пристроєм (напр., клцнувши два рази по значку пристрою в списку пристроїв).
Встановити пакунок gvfs-backends
KDE Plasma
KDE використовує MTP KIO Slave із схожим рівнем інтеґрації як у GVfs. Вимагає встановлення пакунка kio-extras. Коли телефон підʼєднано і налаштовано на передачу файлів через MTP, KDE відкриєє Сповіщення пристроїв і покаже запис про це. Звідси Ви можете відкривати його як теку в Dolphin або переглядати фотографії на пристрої через Gwenview.
Інші
gMTP — засіб, що не залежить від стільниці і дозволяє легко монтувати і керувати файлами на підʼєднаних пристроях MTP, який можна отримати встановивши пакунок gmtp.
libmtp
libmtp надає підтримку пристроїв MTP. Підтримка пристроїв змінюється з кожною версією коду, тому Вам може знадобитися конкретна версія libmtp (або пізніша) для підтримки конкретного пристрою: наприклад, телефон MotoG не підтримується прямо до версії libmtp == 1.1.8 від його супровідників.
Командний рядок
Деякі засоби надають файлову систему на основі FUSE для монтування пристроїв MTP в ієрархії файлової системи Unix, роблячи її доступною для будь-якої програми, що працює з файлами і каталогами. Прикладами є mtpfs, jMTPFS, go-mtpfs і simple-mtpfs тощо…
встановити пакунок із назвою=mtp-tools
ЗРОБ: задокументувати використання, проте дивіться нижче.
Використовує FUSE для монтування MTP-структури Вашого пристрою у файлову систему POSIX і fusermount для відмонтування пристрою.
встановити пакунок із назвою=jmtpfs
створити <каталог> для точки монтування: $ mkdir -p <каталог>
переконайтеся, що Ви маєте права на запис до <каталогу>: $ sudo chown $USER:$USER <каталог>
змонтувати Ваш пристрій: $ jmtpfs <каталог/>
На деяких MTP-пристроях: під час монтування Ваш екран має бути розблокованим. Хоча, Ви можете отримати (непомилкову) помилку вводу/виводу навіть якщо екран розблоковано.
відмонтувати пристрій: $ fusermount -u <directory/>
mtpfs осиротів починаючи від Squeeze, проте mtpfs дуже схожий на jmtpfs, крім назви виконуваного файлу, назви пакунка і стану пакунка.
назва пакунка для встановлення=mtpfs
змонтувати пристрій: $ mtpfs <каталог/>
відмонтувати Ваш пристій: $ fusermount -u <каталог/>
тестування і зневадження зʼєднання з пристроєм
Connect your target device (e.g., Android phone) to your Debian host (e.g., laptop) via USB cable, and unlock the target device. Relatively quickly, you should see the following:
Your Debian host's desktop should open a file browser (e.g., a nautilus window) showing the browsable contents of a location. If the location is mounted in your filespace, you should not need to read further from this article. Alternatively, the location will be shown with a URI beginning with mtp://, which will not be mounted, but can be manipulated via the usual means provided by your file browser (including copying and deleting files). If you wish to actually mount that location (i.e., your target device), read on.
- The target device may also show some GUI, such as choosing the connection mode. If so, choose mode=MTP.
If neither of those occur, you should
- Check your connection, e.g., the USB cable. If fixing that does not make your target device browseable as described above, then ...
Check which version of libmtp and associated packages you have installed on your Debian host: see following section=device statuses. Install them if not already done. You will minimally need to have the executable mtp-detect in your path.
Run mtp-detect from your host with your target device attached.
If you see results like
$ sudo mtp-detect Unable to open ~/.mtpz-data for reading, MTPZ disabled. libmtp version: 1.1.8 Listing raw device(s) No raw devices found.
... stop and seek help elsewhere. If you see results like
$ sudo mtp-detect Unable to open ~/.mtpz-data for reading, MTPZ disabled. libmtp version: 1.1.8 Listing raw device(s) Device 0 (VID=<something/> and PID=<something else/>) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team Found 1 device(s):<remaining text omitted for this documentation/>
... your target device is not currently supported. As noted in the result, you should report it to the libmtp maintainers by making a feature request like this one.
If you see results like
$ mtp-detect Unable to open ~/.mtpz-data for reading, MTPZ disabled. libmtp version: 1.1.8 Listing raw device(s) Device 0 <... remaining text omitted for this documentation, ending with/> OK.
then you should be able to mount the target device onto your host's filespace as discussed in the following example.
Приклади: laptop, MotoG, USB, libmtp, jmtpfs
стан пристрою
Я маю (працюючий) Motorola MotoG 1го-покоління, що працює на Android версії=4.4.4, і я хочу змонтувати його на ноутбуці Debian:
$ cat /etc/debian_version jessie/sid $ uname -rv 3.11-2-amd64 #1 SMP Debian 3.11.8-1 (2013-11-13) $ gcc --version | head -n 1 gcc (Debian 4.8.2-1) 4.8.2
Зауважте, що версії libmtp >= 1.1.8 підтримують MotoG від його супровідників. Після того, як я повозився з APT і своїми репозиторіями, я маю
$ aptitude versions --disable-columns mtp | grep -e '^Package\|^i' | grep -vie 'dovecot\|mtpaint\|smtp' Package gmtp: Package gmtp:i386: Package jmtpfs: i 0.5-2 100 Package kio-mtp: Package kio-mtp-dbg: Package kio-mtp-dbg:i386: Package kio-mtp:i386: Package libmtp-common: i 1.1.8-1 100 Package libmtp-dbg: Package libmtp-dbg:i386: Package libmtp-dev: Package libmtp-dev:i386: Package libmtp-doc: i 1.1.8-1 100 Package libmtp-runtime: i 1.1.8-1+b1 100 Package libmtp-runtime:i386: Package libmtp9: i 1.1.8-1+b1 100 Package libmtp9:i386: i 1.01-3 testing 500 Package mtp-tools: i 1.1.6-20-g1b9f164-1 testing 500 Package mtp-tools:i386: Package python-pymtp: Package uucp-lmtp:
налаштування/перевірка хоста Debian
# створити точку монтування ... $ mkdir -p ~/Android_transfer/ # ... і відмонтувати її $ fusermount -u /home/me/Android_transfer $ ls -al ~/Android_transfer/ total 8 drwxr-xr-x 2 me me 4096 Apr 5 20:08 . drwxr-xr-x 50 me me 4096 Apr 5 21:09 ..
Я бачу (з ноутбука), що нема підʼєднаних пристроїв MTP
$ date ; jmtpfs -l Sun Apr 5 20:08:46 EDT 2015 Unable to open ~/.mtpz-data for reading, MTPZ disabled. Available devices (busLocation, devNum, productId, vendorId, product, vendor):
вдале монтування jmtpfs
Потім я розблоковую екран MotoG і підʼєдную його до ноутбука за допомогою кабеля USB.
Відразу після підключення на ноутбуці відкрилося вікно nautilus із, доступним для перегляду, вмістом розташованим за адресою=mtp://[usb:001,040]/ із назвою пристрою=XT1028. Я також можу бачити (з ноутбука)
$ date ; jmtpfs -l Sun Apr 5 20:09:06 EDT 2015 Unable to open ~/.mtpz-data for reading, MTPZ disabled. Device 0 (VID=22b8 and PID=2e82) is a Motorola Moto G (ID2). Available devices (busLocation, devNum, productId, vendorId, product, vendor): 1, 41, 0x2e82, 0x22b8, Moto G (ID2), Motorola
Потім, я можу змонтувати сховище MotoG
$ jmtpfs ~/Android_transfer/ Unable to open ~/.mtpz-data for reading, MTPZ disabled. Device 0 (VID=22b8 and PID=2e82) is a Motorola Moto G (ID2). Android device detected, assigning default bug flags $ ls -al ~/Android_transfer/ total 4 drwxr-xr-x 3 me me 0 Dec 31 1969 . drwxr-xr-x 50 me me 4096 Apr 5 21:09 .. drwxr-xr-x 12 me me 0 Oct 2 4448648 Internal storage $ ls -al ~/Android_transfer/Internal\ storage/ total 0 drwxr-xr-x 12 me me 0 Oct 2 4448648 . drwxr-xr-x 3 me me 0 Dec 31 1969 .. drwxr-xr-x 2 me me 0 Aug 31 2024 Alarms drwxr-xr-x 3 me me 0 Aug 26 2014 Android drwxr-xr-x 3 me me 0 Feb 13 19:50 DCIM drwxr-xr-x 2 me me 0 Aug 31 2024 Download drwxr-xr-x 2 me me 0 Aug 31 2024 Movies drwxr-xr-x 2 me me 0 Aug 31 2024 Music drwxr-xr-x 2 me me 0 Aug 31 2024 Notifications drwxr-xr-x 2 me me 0 Aug 31 2024 Pictures drwxr-xr-x 2 me me 0 Aug 31 2024 Podcasts drwxr-xr-x 2 me me 0 Aug 31 2024 Ringtones
... і відмонтувати сховище MotoG
$ fusermount -u /home/me/Android_transfer $ ls -al ~/Android_transfer/Internal\ storage/ ls: cannot access /home/me/Android_transfer/Internal storage/: No such file or directory
невдале монтування jmtpfs
Спочатку я намагався змонтувати MotoG за допомогою sudo. Не робіть так! Ви отримаєте такий результат, як цей
$ sudo jmtpfs ~/Android_transfer/ Unable to open ~/.mtpz-data for reading, MTPZ disabled. Device 0 (VID=22b8 and PID=2e82) is a Motorola Moto G (ID2). ignoring libusb_claim_interface() = -6PTP_ERROR_IO: failed to open session, trying again after resetting USB interface LIBMTP libusb: Attempt to reset device Android device detected, assigning default bug flags $ ls -al ~/Android_transfer/ ls: cannot access /home/me/Android_transfer/: Permission denied $ sudo ls -al ~/Android_transfer/ ls: cannot access /home/me/Android_transfer/: Permission denied $ sudo fusermount -u /home/me/Android_transfer
Запамʼятайте: файлову систему MTP реалізовано як FUSE, що означає Файлова система у Вашому користувацькому просторі.
копіювання файлів з Вашого смартфона через mtp-getfile
Спочатку встановіть пакунок mtp-tools:
$ sudo apt-get install mtp-tools
Потім, отримайте список доступних файлів:
$ mtp-files > file_list.txt
file_list.txt тепер містить записи, схожі на ці:
File ID: 81 Filename: WP_20161029_16_26_49_Pro.jpg File size 936160 (0x00000000000E48E0) bytes Parent ID: 12 Storage ID: 0x00010001 Filetype: JPEG file
де «Parent ID» щось на зразок теки, в якій файл знаходиться на смартфоні. Тому Вам треба зробити щось на зразок цього, щоб отримати цей конкретний файл:
mkdir "12" mtp-getfile "81" "12/WP_20161029_16_26_49_Pro.jpg"
Так, mkdir "12" і 12 із Parent ID в локальному файлі важливі.