Начиная с третьей ветки в платформе Android изменился метод организации внешнего доступа к накопителю мобильного устройства. Если раньше устройство маскировалось под USB-накопитель, который воспринимался внешними системами как обычный USB Flash, то начиная с выпуска Android 3 для доступа к данным предлагается использовать разработанный компанией Microsoft протокол [[http://ru.wikipedia.org/wiki/Media_Transfer_Protocol MTP]] (Media Transfer Protocol), поддержка которого в большинстве Linux-дистрибутивов недоступна из коробки. Причиной перехода на MTP является желание избавится от основного недостатка старой реализации - необходимости размонтирования раздела перед его экспортом, из-за чего во время подключения раздела к ПК он становился недоступным для мобильного устройства.Наиболее простым способом обеспечения работы с Android 4 в Linux является установка из репозиториев или сборка из исходных текстов GTK-приложения gMTP (http://gmtp.sourceforge.net/), которое предоставляет графический интерфейс для работы с файлами на устройстве, в том числе даёт возможность перемещать файлы между gMTP и файловым менеджером в режиме Drag and Drop. При сборке рекомендуется использовать самую свежую версию библиотеки libmtp (http://libmtp.sourceforge.net/), иначе в процессе работы время от времени приходится сталкиваться с проблемами. Готовые свежие сборки gMTP для Ubuntu можно загрузить из специального [[https://launchpad.net/ubuntu/+source/gmtp PPA-репозитория]], а libmtp - [[https://launchpad.net/ubuntu/+source/libmtp здесь]].
Другим способом является монтирование MTP-устройств в виде дисковых разделов при помощи FUSE-модулей [[http://code.google.com/p/mtpfs/ mtpfs]] или [[https://launchpad.net/mtp-fuse/ mtp-fuse]]. Следует отметить, что работают данные модули с некоторыми устройствами весьма нестабильно и оставляют желать лучшего в плане скорости копирования данных. Относительно недавно для решения проблем с ранее доступными FUSE-реализациями был создан FUSE-модуль [[https://github.com/hanwen/go-mtpfs Go-mtpfs]], из особенностей которого можно отметить необходимость установки для сборки компилятора языка программирования Go.
Готовые сборки Go-mtpfs отныне доступны через PPA для Ubuntu 13.04, 12.10 и 12.04. Unstable PPA используется для задействования самой свежей версии libmtp. Кроме того, подготовлен специальный апплет для оболочки Unity, позволяющий быстро монтировать и отмонтировать MTP-разделы.Установим Go-mtpfs из PPA:
sudo add-apt-repository ppa:webupd8team/unstable
sudo apt-get update
sudo apt-get install go-mtpfsУстановим дополнение для Unity:
sudo apt-get install go-mtpfs-unity
Для монитрования раздела вручную следует использовать команду:
go-mtpfs /media/MyAndroid
Для отмонтирования:
fusermount -u /media/MyAndroid
Для самостоятельной сборки go-mtpfs из Git-репозитория можно использовать следующую инструкцию, в результате которой будет подготовлен исполняемый файл /tmp/go/bin/go-mtpfs:sudo apt-get install golang fuse git-core libmtp-dev libfuse-dev
sudo adduser $USER fuse
mkdir /tmp/go
GOPATH=/tmp/go go get github.com/hanwen/go-mtpfs
Кроме того, в состав libmtp входит несколько полезных утилит:
Определение устройства:
mtp-detect
Подсоединение к устройству:
mtp-connect
Манипуляции с контентом на устройстве:
mtp-albumart
mtp-getplaylist
mtp-albums
mtp-files
mtp-sendfile
mtp-folders
mtp-newfolder
mtp-delfile
mtp-newplaylist
mtp-getfile
mtp-playlists
mtp-tracks
URL: http://www.webupd8.org/2012/12/how-to-mount-android-40-ubunt... http://blog.itsbilal.com/index.php/2012/12/connect-an-androi.../ https://wiki.archlinux.org/index.php/MTP
Обсуждается: http://www.opennet.me/tips/info/2724.shtml
В кеды что-нибудь возможно нормально интегрирать? А то при подключении смартфона предлагает только просмотреть на нем фотки через какую-то кривую прогу, и то не работает.
А в mate работает как просто новый ресурс в системе.
А чё, самба/nfs уже не феншует?
Использую jmtpfs, работает.
> Использую jmtpfs, работает.Cyanogenmod (Версия Andriod 4.0.4) и Debian. Протоколы Майкрософт не беспокоят.
> Причиной перехода на MTP является желание избавится от основного недостатка старой реализации - необходимости размонтирования разделаперед его экспортом, из-за чего во время подключения раздела к ПК он становился недоступным для мобильного устройства.
хм... а что нибудь типа unionfs для монтирования не тру разве нежели блобы от мс?
Как Вы себе это представляете? Unionfs _объединяет_ разные fs в одной виртуальной точке монтирования. Тут же нужно ОДНО блочное устройство отдать ДВУМ операционным системам, каждая из которых будет считать себя вправе владеть им монопольно.
Вот потому и размонтируется перед эмуляцией UMS...
Используйте ADB
Как использовать adb с устройством без root ?
> Как использовать adb с устройством без root ?Да, так же. Включить USB Debugging. Без root-а не будет root-а в этом adb. Вроде как... Впрочем, не все прошивки созданы равными, ymmv.
> Как использовать adb с устройством без root ?Точно так же. Всё, не требующее root (доступ к /system и другим системным разделам) будет работать. По-вашему, создавая SDK и, в частности, иструмент ADB, Google считал, что все устройства обязаны быть рутованы?
Только вот работает эта штука плохо.
go-mtpfs сначала выкачивает файл целиком, а пока она эта делает программа весит.К тому же глючит.
Спасибо за статью. В результате смог нормально завести Pixus 4, без использования дополнительной флешки. Не знаю, что там в качестве ОС, но похоже работает через MTP
Долго мучался (LMDE 64) пока не сдалал$ modprobe ohci_hcd
$ modprobe uhci_hcdв добавление к сказанному в статье.