Как подключить телефон с Android к Ubuntu как MTP устройство

ubuntu androidДанное руководство проверено для телефонов Samsung Galaxy Nexus и Samsung Galaxy S 2 (в дальнейшем "телефон" или "Android"). Думаю, и для многих других будет также справедливо.

Телефон при подключении к компьютеру по USB кабелю информирует пользователя и предлагает выбрать: подключиться как MTP-устройство (это различные музыкальные плееры, хранилища музыки и просто файлов), или же подключиться как камера.

Однако, Ubuntu об этом устройстве мало что знает, поэтому не предлагает что-либо с ним делать. Что же, наша задача: объяснить как пользоваться Android'ом Ubunt'е :)

android ubuntuКстати, на месте "Ubuntu" тут можно написать "Linux Mint" -- для него всё ровно то же. А при должной замене названий команд установки пакетов -- это будет работать на большинстве Linux-based систем (названия самих пакетов обычно совпадают).

Итак, чтобы можно было использовать в Ubuntu телефон с Android в качестве MTP-устройства, нужно установить пакеты mtpfs -- для того, чтобы можно было использовать телефон, как обычный примонтированный диск. mtp-tools также окажется полезным.

sudo apt-get install mtpfs mtp-tools

Далее вводим команду mtp-detect для выяснения подробностей о телефоне, что мы подключили:

$ mtp-detect
libmtp version: 1.1.3
Listing raw device(s)
Device 0 (VID=04e8 and PID=685c) is a Samsung Galaxy Nexus/Galaxy S
i9000/i9250, Android 4.0 updates.
   Found 1 device(s):
   Samsung: Galaxy Nexus/Galaxy S i9000/i9250, Android 4.0 updates
(04e8:685c) @ bus 1, dev 4
Attempting to connect device(s)
LIBMTP PANIC: Unable to find interface & endpoints of device
Unable to open raw device 0
OK.

Здесь для нас важны 2 числа: VID и PID. Это vendor id и product id -- идентификатор производителя и идентификатор продукта (модели устройства).

Теперь нам нужно отредактировать конфигурационный файл:

sudo gedit /etc/udev/rules.d/51-android.rules

Тут то нам и пригодятся VID и PID! Пишем в файле:

SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="685c", MODE="0666"

Не забыть заменить 04e8 и 685c на нужные VID и PID -- соответственно!

Чтобы правило из конфигурационного файла вступило в силу -- перезапускаем udev:

sudo service udev restart

Создаём папку, в которую будет монтироваться (подключаться Android). Например так:

sudo mkdir /media/Android
sudo chmod a+rwx /media/Android

Теперь добавим себя в группу тех, кто может подключать устройства:

sudo adduser $USER fuse

На всякий случай проверим, можно ли пользователям вообще подключать подобные устройства:

sudo gedit /etc/fuse.conf

Строчка "#user_allow_other" должна быть раскоментирована (без решётки спереди), то есть "user_allow_other".

После перезагрузки можно будет подключать устройство с помощью довольно длинной команды. Однако, для удобства создадим свои команды, делающие то же самое:

echo "alias android-on=\"mtpfs -o allow_other /media/Android\"" >> ~/.bashrc
echo "alias android-off=\"fusermount -u /media/Android\"" >> ~/.bashrc
source ~/.bashrc

После перезагрузки можно будет выполнить команду "android-on", чтобы подключить телефон. И команду "android-off", чтобы отключить.

Поделиться заметкой:
Планшет HTC Nexus 9
Обзор планшета Nexus 9
Как MacBook, но не Mac
Ноутбук Dell XPS 15 L521X
Sony Extra Bass
Отзыв на наушники Sony Extra Bass
  • llǝɥ oʇ oƃ

    сделал всё по инструкции, как выдавал, так и продолжает выдавать следующее сообщение при подключении телефона, при этом никакое взаимодействие с телефоном, помимо рассматривания дерева папок не возможно. Может я где-то налажал?

    • Анатолий

      Спасибо. Мне достаточно было установить

      mtpfs mtp-tools, что бы подключились внутренняя SD карта (раньше она была nand) и внешняя SD карта.

  • vager

    На ubuntu.ru советуют использовать прогу gMTP, у меня она просто вылетает с ошибкой, попробую сегодня приконектить свой нексус 7 по Вашему мануалу.
    Спасибо.

  • vager

    Нет, это не вариант.
    Работает плохо, очень, очень долго открываются директории, и, кроме этого, все равно все папки не показывает.

  • Михаил

    всем привет =)))

    подскажите пожалуйста что не так. ввожу команду android-on и система выдаёт такую ошибку:

    Listing raw device(s)
    Device 0 (VID=1004 and PID=61f9) is a LG Electronics Inc. V909 G-Slate.
    Found 1 device(s):
    LG Electronics Inc.: V909 G-Slate (1004:61f9) @ bus 2, dev 4
    Attempting to connect device
    PTP_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
    Error 1: Get Storage information failed.
    Error 2: PTP Layer error 02fe: get_handles_recursively(): could not get object handles.
    Error 2: Error 02fe: PTP: Protocol error, data expected
    Listing File Information on Device with name: (NULL)
    LIBMTP_Get_Storage() failed:-1

    LG Optimus L7, система Ubuntu 12.10

  • Жека

    для android 4.0.4 не работает (

  • benny

    Работает, но видит только память телефона, можете подсказать как карту памяти подключить?

  • http://tmin10.ru/ Tmin10

    Для своего nexus 7 использую gMTP, хорошая программа, только очень всё тормозит, но это уже ограничения MTP…

  • Ares

    В Ubuntu 13.04 — подключение mtp устройств реализовано на ура! Ядро 3.8

    • http://www.facebook.com/tatyana.volova.5 Tatyana Volova

      не сказал бы. Наоборот. в 12.10 go-mtpfs обеспечивал успешное монтирование андройда как устройства и быструю синхронизацию (с пом. rsync например) а тут монтирования нет и, соотв., синхронизация не работает.

    • vit

      13.04 позволяет на него заливать файлы но по 1му и только через nautilus
      c глюками и зависаниями, так как как норм. /dev/ не видит его , о
      rsync(который на более древних устр-вах отлично и быстро синхронизировал кучу файлов) и речи не идет.
      Кто-нибудь решил проблему как возм. применять rsync?

  • http://www.facebook.com/faiwer Faiwer Zubashev

    Nautilus отказался войти в папку «внутренная память». Через консоль заходит. Сделал ln -s, nautius смог войти. В целом связь практически не функционирует. Т.е. пользоваться невозможно. + похоже, что нужно включит usb-debugging

  • vit

    кто придумал это гребанное MTP(вместо старого подкл. как флешка)? (ну дайте дайте хоть раз его ударить:)
    SAMSUNG Note 2 по данной схеме не работает

    13.04 позволяет на него заливать файлы но по 1му и только через nautilus c глюками и зависаниями, так как как норм. /dev/ не видит его , о rsync(который на более древних устр-вах отлично делал) и речи не идет.
    Кто-нибудь решил проблему как возм. применять rsync?

  • |<tо-tо úз /еç¥

    Почему терминал mtp-tool не находит, т.е. 404; какая-то внутр. ошибка; невозможно аунтефиц.