Начиная с Ubuntu 13.04, доступ к внешним устройствам через MTP должен работать "из коробки" через модуль GVFS-MTP.
Хотя этот вопрос касается Galaxy Nexus, также поддерживаются другие устройства Android, а также Windows Phone и медиаплееры с поддержкой MTP .
Для устранения неисправностей см. Этот ответ .
У меня довольно много проблем с передачей файлов, работающих через MTP с Galaxy Nexus. Я использую Kubuntu 11.10 64-bit, и это то, что я сделал, и результаты, которые я получаю:
Добавлено правило для устройства в
/etc/udev/rules.d/51-android.rules
. Правило следующее и работает дляadb
:SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666", OWNER="leob" #Galaxy Nexus
Перезагрузка
udev
(и компьютер только для того, чтобы убедиться).
Adb работает, и все методы для чтения с устройства через MTP, кажется, работают (я пробовал монтировать с помощью mtpfs, gmtp и напрямую используя пакет mtp-tools). Однако, когда я пытаюсь записать на устройство, ничего, что я пробовал, не работает.
В качестве примера, запуск mtp-newfolder test_dir 0 0
дает следующий вывод:
libmtp version: 1.1.0
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1.
Folder creation failed.
ERROR: Could not close session!
Если я запускаю mtp-folders
после сбоя mtp-newfolder без повторного подключения устройства, я получаю следующий вывод:
Attempting to connect device(s)
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1.
PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
mtp-folders: Successfully connected
Friendly name: (NULL)
Error 1: Get Storage information failed.
Error 2: PTP Layer error 02fe: get_all_metadata_fast(): could not get proplist of all objects.
Error 2: (Look this up in ptp.h for an explanation.)
Error 2: PTP Layer error 02fe: get_handles_recursively(): could not get object handles.
Error 2: (Look this up in ptp.h for an explanation.)
LIBMTP_Get_Storage()
: Resource temporarily unavailable
OK.
Сопровождается следующим в dmesg:
[ 1000.912082] usb 2-4: reset high speed USB device number 7 using ehci_hcd
[ 1001.045877] usb 2-4: usbfs: process 3166 (mtp-folders) did not claim interface 0 before use
Кто-нибудь имеет представление о том, что делать?
РЕДАКТИРОВАТЬ:
Я также попробовал режим PTP. Опять же, чтение работает нормально, но я не могу ничего записать на устройство.
Ответы:
Начиная с Ubuntu 13.04, доступ к хранилищу внешних устройств через MTP работает «из коробки» через модуль GVFS-MTP.
Смежный вопрос: есть ли планы улучшить поддержку mtp в будущих выпусках Ubuntu?
Для устранения неполадок см. Этот ответ .
Для меня это была проблема отсутствия последних
libmtp
файлов в моей системе. Поэтому я исправил проблему и написал эту статью, чтобы помочь другим .Краткое содержание ссылки: в
libmtp
комплекте со старыми версиями Ubuntu была ошибка . Эта ошибка уже исправлена в последнем источнике вlibmtp
.источник
Вы пробовали предложение Билала Ахтара в omgubuntu ?
Подключение телефона или планшета Android к Ubuntu с помощью MTPFS
Настроить
Сначала установите необходимые инструменты с помощью
sudo apt-get install mtp-tools mtpfs
Подключите ваш Galaxy Nexus к вашему компьютеру. На телефоне откройте ящик уведомлений и нажмите «Тип USB-соединения». Убедитесь, что выбран MTP.
Затем выполните эти команды:
Вы получите такой вывод:
Теперь запустите эти команды:
Окно Gedit должно открыться. Введите этот текст, все в одной строке :
Замените
VENDORID
наidVendor
то, что вы записали ранее. Аналогичным образом заменитеPRODUCTID
наidProduct
записанный вами. В моем случае они были04e8
и685c
соответственно, но они могли бы быть другими для вас.Сохраните и закройте файл. Затем отключите телефон и выполните следующие команды:
$USER
является переменной оболочки по умолчанию и должен быть пользователем, которого вы хотите добавить (обычно самим собой). Теперь запустите эту команду:В окне Gedit удалите
#
в начале последней строки (с которой начинается#user_allow_other
) следующую строку :Вы почти закончили! Теперь перезагрузите компьютер и выполните следующие три команды:
использование
Подключите телефон, убедитесь, что ваш телефон использует MTP и запустите
android-connect
.Вуаля! Теперь вы можете просматривать содержимое телефона Android с помощью Nautilus. Просто запустите файловый менеджер, а затем в боковой панели нажмите GalaxyNexus, чтобы просмотреть содержимое телефона, как если бы вы использовали USB-флешку. Вы также можете добавлять, удалять и изменять файлы, как обычная файловая система.
Чтобы безопасно удалить телефон, просто запустите
android-disconnect
.Заключение
Отныне вам просто нужно запустить,
android-connect
чтобы смонтировать телефон, а затемandroid-disconnect
безопасно удалить его. Все остальное должно обрабатываться автоматически. Я пробовал много способов, чтобы автоматическое монтирование и размонтирование происходило при кабельном соединении, но это было лучшее решение, которое я мог придумать.Эти две команды не требуют прав root для запуска. Все пользователи, которые являются членами группы пользователей fuse, должны иметь возможность запускать эти команды без прав root.
Это оно! Вы успешно подключили свой телефон Ice Cream Sandwich к компьютеру Ubuntu. Процесс может быть долгим для новичка, но я уверен, что кто-то придет и создаст графический интерфейс для всего этого, чтобы все прошло гладко. :)
источник
mtpfs
, или он просто поддерживает только 1 подключенное устройство одновременно?Подключение устройств через MTP с GVFS
Начиная с Ubuntu 13.04, доступ к устройствам с поддержкой MTP работает «из коробки» через бэкэнд GVFS . Пожалуйста, посмотрите, есть ли планы улучшить поддержку mtp в будущих выпусках Ubuntu? для инструкций по установке до 13.04.
Это решение должно работать на всех устройствах Android, обеспечивающих функциональность MTP, и, вероятно, на всех устройствах, отличных от Android с функциями MTP, таких как телефоны Windows и портативные медиаплееры .
Не путайся
Была некоторая путаница, давайте попробуем прояснить ситуацию:
Вам не нужно делать ничего, что может аннулировать вашу гарантию!
Разблокировка относится только к экрану блокировки операционной системы в этом ответе.
Вам не нужно настраивать доступ разработчика к вашему устройству, такому как ADB, fastboot или что-то подобное через определенные правила udev. (Вы можете найти инструкции для Android в разделе Настройки USB Access ее е или ее е .)
Насколько я знаю, вам также не нужно FUSE или настраивать параметры, связанные с FUSE.
Проблемы с устранением неполадок
Я не могу поместить файлы на устройство.
Ваше устройство должно быть разблокировано для доступа к хранилищу устройства с Ubuntu через MTP.
Я получаю сообщение об ошибке, что устройство не может быть подключено.
Если вы получили следующее сообщение об ошибке, попробуйте подключить устройство один раз .
Если сообщение об ошибке появляется снова, откройте новое окно nautilus из панели запуска (предпочтительно щелкнув значок устройства) и, возможно, закройте текущее окно nautilus. Возможно связано: Как создать правила udev для отключения одного из устройств Android?
Проверьте, есть ли правила udev для вашего устройства
Откройте терминал и введите
lsusb
. Найдите ваше устройство на выходе и запишите идентификатор (например0fce:01b1
). Первая часть - это идентификатор поставщика, а последняя часть - идентификатор продукта.Откройте соответствующий файл правил mtp udev с помощью команды
nano /lib/udev/rules.d/69-libmtp.rules
seach для идентификатора вашего продукта (используйте Ctrl+ W). Если вы не можете найти его, вам нужно создать пользовательскую запись,/etc/udev/rules.d/69-libmtp.rules
следуя приведенному ниже шаблону, и перезагрузиться .Вам следует рассмотреть возможность сообщения об ошибке в пакете libmtp (точнее libmtp-common ), чтобы включить ваше устройство в будущие версии, если это сработало для вас.
Я до сих пор не могу подключиться
Ваше устройство либо не поддерживается базовым устройством,
libmtp
либо вы можете столкнуться с той же проблемой, что и у меня с моим Lumia 620, пожалуйста, следуйте обходному пути (шаги по воспроизведению), который я опубликовал в LP # 1247572: Nokia Lumia 620 (WP8) не удается надежно установить с помощью гвфс-мтп в наутилус . (Устройство все еще не работает безупречно, но с помощьюmtp-detect
подсказок.)Вам следует поискать в устройстве отслеживания ошибок libmtp ваше устройство и следовать инструкциям для новых устройств на странице проекта, чтобы открыть отчет об ошибках.
Система отслеживания ошибок отображает мое устройство как поддерживаемое, но оно все равно не будет работать
В некоторых случаях сообщение об ошибке, касающееся вашего устройства, возможно, уже было зарегистрировано в более позднем выпуске libmtp, чем то, с чем поставляется ваш дистрибутив (например, Motorola Moto G ). Если это так, вам придется либо дождаться обновления официальных репозиториев, либо искать обновленный PPA.
Обновленный список всех версий libmtp, доступных через официальные каналы программного обеспечения Ubuntu и частные PPA, можно найти здесь (не забудьте расширить другие версии libmtp в ненадежных архивах ). По состоянию на 2014/02/13 этот PPA от Matthieu Baerts предлагает последний пакет libmtp, доступный для Ubuntu.
Предупреждение : этот PPA содержит множество различных и, возможно, нестабильных пакетов. Я бы посоветовал не добавлять его в вашу систему. Вместо этого вы можете скачать пакеты libmtp отдельно и вручную установить их в вашей системе.
Пожалуйста, ознакомьтесь с PPA и их рисками, прежде чем двигаться дальше. Пожалуйста, прочитайте параграф ниже о восстановлении ваших оригинальных пакетов, прежде чем выполнять следующие шаги:
Загрузите следующие пакеты:
libmtp-common
,libmtp-runtime
,libmtp9
,mtp-tools
. Убедитесь, что вы выбрали правильную архитектуру для вашей системы (как правило, так и будетamd64
).Вот ссылки на пакеты по состоянию на 2014/02/13: libmtp-common , libmtp-runtime , libmtp9 , mtp-tools
Перейдите к установке обновленных пакетов вручную с помощью dpkg (перейдите
$HOME/Downloads
в папку загрузки и убедитесь, что другие файлы deb отсутствуют:После того, как все будет успешно установлено, перезагрузите компьютер, разблокируйте устройство Android, подключите его через USB, и он должен появиться в вашем файловом менеджере.
Это отлично сработало для меня (@Glutanimate) с моим Motorola Moto G. Поскольку я работал под управлением Ubuntu 12.04 LTS, мне сначала пришлось установить обновленную версию
gnome-gvfs
. Пожалуйста, смотрите инструкции по установке до 13.04 в верхней части для получения дополнительной информации.Чтобы отменить изменения, если что-то пойдет не так или устройство не распознается, вам придется вручную установить исходные пакеты. Перейдите к обзору исходного кода libmtp и найдите ваш релиз Ubuntu. Разверните соответствующую запись и перейдите к загрузке пакетов, как вы это делали в шаге 2 ранее. Продолжите установку, как описано в шаге 3, и перезагрузите систему. Все должно вернуться к нормальной жизни сейчас.
источник
/etc
зависит только от вас. Как объяснено выше, в идеале все правила udev должны быть предоставлены ootb. Если нет, нужно сообщить об ошибке, чтобы включить отсутствующее правило/lib/.../69-libmtp.rules
, чтобы все были довольны следующим выпуском./etc
зависит от вас./lib/udev/rules.d/69-libmtp.rules
Это то, что выбрали сопровождающие пакета, и я предлагаю подать сообщение об ошибке в этом пакете (я обновил свой ответ) для пользователей, которые сталкиваются с этой проблемой. Если у вас все еще есть проблема, пожалуйста, поговорите с сопровождающими или напишите свой собственный ответ. Сейчас я склоняюсь от разговора с вами на эту тему.libmtp
Кажется, что все программы на основе все еще имеют проблемы с Galaxy Nexus (по состоянию на libmtp 1.1.3). Программы, основанные наgphoto2
работе для меня.Лично я пользуюсь
gphotofs
, доступно в одноименной упаковке.Используйте
gphotofs ~/mymountpoint
для монтирования, а затемfusermount -u ~/mymountpoint
для размонтирования, когда вы закончите.источник
gphotofs
оставляет меня с одним каталогом, который пуст.Установите следующее и перезагрузите компьютер:
источник
The following packages have unmet dependencies: gvfs-backends : Depends: gvfs (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed Depends: gvfs-daemons (= 1.28.2-1ubuntu1~16.04.2) Depends: gvfs-libs (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed Depends: gvfs-common (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed E: Unable to correct problems, you have held broken packages.
В качестве первого шага я должен установить
jmtpfs
(sudo apt-get install jmtpfs
в терминале - Ctrl+ Alt+ T), затем создать папку с,mkdir foldername
а затем смонтировать устройство с помощьюjmtpfs foldername
, а затем перейти к nautilus (Файлы).Если ваше устройство не совместимо с
libmtp
версией в Ubuntu. Вы должны загрузить и собрать последнююlibmtp
версию (> 1.1.12), как в: Как я могу установить последнюю версию libmtp?Вы должны увидеть папки, которые также используются
mtp-folders
в терминале или с графическим интерфейсомgmtp
.Предыдущие шаги могут показать ошибку, если вы запустите их без
sudo
:Чтобы избежать использования sudo, вы должны добавить свое устройство в
/etc/udev/rules.d/51-android.rules
файл, как указано выше (см. Desgua) и перезагрузить правила или перезапустить.источник
Просто небольшой обходной путь, подключите свой телефон на базе ICS к старому доброму МАССОВОМУ ХРАНИЛИЩЕ http://forum.xda-developers.com/showthread.php?t=1556367
источник