Media Transfer Protocol (Русский)
MTP, или Media Transfer Protocol, класс USB устройств, использующихся большинством мобильных телефонов (все Windows Phone 7/8/10, большинство современных Android устройств) и медиаплееров (например, Creative Zen).
Contents
Установка
Функциональность
Поддержка MTP в Linux осуществляется установкой пакета libmtp. Он может быть установлен отдельно и использоваться для доступа к устройствам. Тем не менее, доступно большое число пакетов, которые используют его как зависимость и добавляют удобные (например, файловый менеджер) функциональные возможности и совместимость с конкретными типами устройств, что включает в себя и ускорение передачи данных.
Каждый из этих пакетов реализует файловую систему в пользовательском пространстве:
- mtpfs
- jmtpfsAUR - подтверждена совместимость с устройствами новее Android 4+
- go-mtpfs-gitAUR - подтверждена совместимость с устройствами новее Android 3+
- simple-mtpfsAUR
- android-file-transfer - MTP клиент с аскетичным UI
Их общая цель заключена в расширении функционала и увеличении производительности libmtp
. Так как существует множество различных USB устройств, возможно, вы захотите проверить, какой из них лучше подходит для вас.
Интеграция с файловыми менеджерами
Чтобы просматривать содержимое накопителя вашего Android устройства через MTP в файловом менеджере, установите соответствующий плагин:
- Для файловых менеджеров, которые используют GVFS (GNOME Files, Xfce's Thunar), установите gvfs-mtp для поддержки MTP и gvfs-gphoto2 для поддержки PTP.
- Для файловых менеджеров, которые используют KIO (KDE's Dolphin), установите kio-mtp[ссылка недействительна: package not found] (поддержка PTP уже включена в него).
Также существует альтернатива плагинам: минималистичный MTP клиент android-file-transfer.
После установки необходимых пакетов, ваше устройство должно отобразиться в файловом менеджере автоматически, и вы сможете получать доступ к файлам по URL наподобие такого: mtp://[usb:002,013]/
.
Использование
После установки у вас есть несколько доступных MTP инструментов. При подключении вашего MTP-устройства используйте:
# mtp-detect
чтобы узнать, обнаружено ли ваше устройство MTP. Если вы получаете ошибки о разрешении, помните, что вам нужно быть в группе uucp для доступа к системе USB в целом.
Чтобы подключиться к вашему устройству MTP, используйте:
# mtp-connect
Если соединение выполнено успешно, для доступа к данным на устройстве существует несколько вариантов переключения в сочетании с mtp-connect
.
Есть также несколько автономных команд, которые вы можете использовать для доступа к вашему устройству MTP, например,
mtp-albumart mtp-emptyfolders mtp-getplaylist mtp-reset mtp-trexist mtp-albums mtp-files mtp-hotplug mtp-sendfile mtp-connect mtp-folders mtp-newfolder mtp-sendtr mtp-delfile mtp-format mtp-newplaylist mtp-thumb mtp-detect mtp-getfile mtp-playlists mtp-tracks
Если вы видите сообщение типа:
Device 0 (VID=XXXX and PID=XXXX) is UNKNOWN. Please report this VID/PID and the device model to the libmtp development team
Вы должны проверить, было ли уже ваше устройство в этом списке: [Список поддерживаемых устройств[1]] Если это не так, сообщите об этом команде разработчиков. Если это так, ваш libmtp может быть немного устаревшим. Чтобы libmtp нормально функционировал в данном случае, вы можете добавить свое устройство в:
/usr/lib/udev/rules.d/69-libmtp.rules
Использование медиаплееров
Использование медиаплееровВы также можете использовать свое устройство MTP в музыкальных проигрывателях, таких как Amarok. Для этого вам, возможно, придется отредактировать /usr/lib/udev/rules.d/51-android.rules (устройство MTP, используемое в следующем примере, представляет собой Galaxy Nexus): Для этого выполните:
$ lsusb
и найдите свое устройство, это будет что-то вроде:
Bus 003 Device 011: ID 04e8:6860 Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II], GT-P7500 [Galaxy Tab 10.1]
в этом случае запись будет:
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0666", OWNER="[имя пользователя]"
Затем перезагрузите правила udev:
# udevadm control --reload
mtpfs
Mtpfs - файловая система FUSE, которая поддерживает чтение и запись с любого устройства MTP. В основном это позволяет подключить ваше устройство к внешнему диску.
Mtpfs можно установить с пакетом mtpfs, доступным из official repositories.
- Сначала отредактируйте
/etc/fuse.conf
и раскомментируйте следующую строку:
user_allow_other
- Для примонтирования устройства:
$ mtpfs -o allow_other /mnt/YOURMOUNTPOINT
- Для размонтирования устройства:
$ fusermount -u /mnt/YOURMOUNTPOINT
- Для размонтирования устройства от root:
# umount /mnt/YOURMOUNTPOINT
Кроме того, вы можете поместить их в свой файл ~/.bashrc:
alias android-connect="mtpfs -o allow_other /media/YOURMOUNTPOINT" alias android-disconnect="fusermount -u /media/YOURMOUNTPOINT"
Или, с sudo:
alias android-disconnect="sudo umount -u /media/YOURMOUNTPOINT"
jmtpfs
jmtpfs - файловая система FUSE и libmtp для доступа к устройствам MTP (Media Transfer Protocol). Он был специально разработан для обмена файлами между системами Linux и новыми устройствами Android, поддерживающими MTP, но не USB Mass Storage. jmtpfs доступен как jmtpfsAUR в AUR.
Используйте эти команды для монтирования устройства:
$ jmtpfs ~/mtp
И данную команду для его размонтирования:
$ fusermount -u ~/mtp
go-mtpfs
If the above instructions do not show any positive results one should try go-mtpfs-gitAUR from the AUR. The following has been tested on a Samsung Galaxy Nexus GSM, Asus/Google Nexus 7 (2012 1st gen model), Samsung Galaxy S 3 mini and Google Nexus 4. (This is the only mtp software which worked for me on Nexus 4. Settings are usb debugging enabled, connected as media device.)
If you want do it simpler, install go, libmtp and git from the official repositories. After that install go-mtpfs-gitAUR from the AUR.
As in the section above install android-udev which will provide you with "/usr/lib/udev/rules.d/51-android.rules" edit it to apply to your idVendor and idProduct, which you can see after running mtp-detect. To the end of the line add with a comma OWNER="yourusername". Save the file.
- Add yourself to the "fuse" group:
gpasswd -a [user] fuse
- If the group "fuse" does not exist create it with:
groupadd fuse
Logout or reboot to apply these changes.
- To create a mount point called "Android" issue the following commands:
mkdir Android
- To mount your phone use:
go-mtpfs Android
- To unmount your phone:
fusermount -u Android
You can create a .bashrc alias as in the example above for easier use.
simple-mtpfs
Это еще одна файловая система FUSE для устройств MTP. Вы можете найти это более надежным, чем mtpfs. simple-mtpfsAUR доступен в AUR или может быть построен из источника. Не запускайте следующие команды с правами root!
Чтобы указать запуск MTP-устройств
$ simple-mtpfs --list-devices
Для монтирования устройств MTP (в этом примере устройства 0) выполните
$ simple-mtpfs /path/to/your/mount/point
Для отмнонтирования
$ fusermount -u /path/to/your/mount/point
Устранение неполадок gvfs-mtp
Если вы установили пакет gvfs-mtp, и ваше устройство не отображается в файловом менеджере, вам может потребоваться написать правило udev для автоматической установки устройства.
Подключите ваше устройство и получите идентификатор поставщика и идентификатор продукта, соответственно:
$ lsusb Bus 001 Device 007: ID 0421:0661 Nokia Mobile Phones Lumia 920 (...)
Два числа после ID vendorId:productID
Затем сделайте правило udev, то есть выполните
# nano /usr/lib/udev/rules.d/51-android.rules
и введите это правило:
ATTR{idVendor}=="ВАШ VENDOR УСТРОЙСТВА ЗДЕСЬ", ATTR{idProduct}=="ВАШ ID УСТРОЙСТВА ЗДЕСЬ", SYMLINK+="libmtp", MODE="660", ENV{ID_MTP_DEVICE}="1"
Перезагрузите правила udev.
# udevadm control --reload
И перезагрузите систему. Теперь файловые менеджеры (например, Thunar) должны иметь возможность авторизовать MTP-устройство. [2]
Устранение неполадок kio-mtp
Если вы не можете использовать действие «Открыть с помощью диспетчера файлов», вы можете обойти эту проблему, отредактировав файл /usr/share/apps/solid/actions/solid_mtp.desktop
Замените строку
Exec=kioclient exec mtp:udi=%i/
На
Exec=dolphin "mtp:/"