Установка Android телефона на Ubuntu/Server/Raspberry Pi не работает даже после установки gmtp и mtp-tools.

Вопрос или проблема

После успешного подключения Android телефона в качестве USB/MTP устройства к моему настольному компьютеру на Ubuntu (22.04.1 LTS), я переключился на Raspberry Pi 4 с новой загруженной версией образа Ubuntu/Server/Raspberry Pi (Ubuntu 22.04.1 LTS). Я подключил Android телефон, но не увидел никаких директорий/файлов, которые видел при подключении телефона к моему настольному компьютеру с Ubuntu.

Затем я установил “gmtp” и “mtp-tools” и перезагрузил Raspberry Pi. Я по-прежнему не увидел никаких новых директорий/файлов. Я проверил и обнаружил новое /dev/*mtp* устройство на Raspberry Pi, когда телефон был подключен. Но я никогда не видел ожидаемых директорий/файлов в /run/user/… директории.

Затем я наблюдал за /var/log/syslog как на рабочем настольном компьютере с Ubuntu, так и на неработающем Raspberry Pi. Оба начали с того, что “увидели” новое USB-устройство Android телефона. Но затем настольный компьютер с Ubuntu, по всей видимости, провел “аудит” телефона, что (я предполагаю) вызвало у телефона запрос на разрешения для передачи файлов.

По-видимому, Raspberry Pi пропускает этот шаг “аудита”. Возможно ли, что это еще один отсутствующий MTP пакет? Или какая-то неактивированная служба?

Все пакеты с “mtp” в их именах на Raspberry Pi:

$ sudo dpkg -l | grep mtp
ii  gmtp                            1.3.11-3build1                          arm64        простая программа передачи файлов для устройств на базе MTP
ii  libmtp-common                   1.1.19-1build1                          all          общие файлы Media Transfer Protocol (MTP)
ii  libmtp-runtime                  1.1.19-1build1                          arm64        инструменты времени выполнения Media Transfer Protocol (MTP)
ii  libmtp9:arm64                   1.1.19-1build1                          arm64        библиотека Media Transfer Protocol (MTP)
ii  mtp-tools                       1.1.19-1build1                          arm64        инструменты библиотеки Media Transfer Protocol (MTP)
$ 

Stackexchange уведомил меня, что этот вопрос просмотрели более 1K раз, и я решил, что должен по крайней мере отчитаться о том, как я решил свою ситуацию. Вот ответ, который я опубликовал на аналогичный вопрос, заданный мной на raspberrypi/stackexchange:


Вопрос об установке USB / MTP Android телефона, используя дистрибутив Ubuntu для Raspberry Pi, и не касался автоматической монтировки. Я обнаружил, что в дистрибутиве для Raspberry Pi / Ubuntu / Server (22.04.1 LTS) нет правил UDEV для Android телефона, как это было в моем настольном дистрибутиве Ubuntu. В результате я выбрал ручную монтировку USB / MTP, так как это работает для моего приложения.

Я обнаружил, что после установки упомянутых в вопросе пакетов и android-file-transfer я смог вручную подключить Android телефон, используя USB / MTP. Вот что я смог сделать:

$ mkdir /home/ubuntu/mnt
$ sudo aft-mtp-mount /home/ubuntu/mnt
$ sudo ls /home/ubuntu/mnt
'Внутренняя память'

… когда закончил, отключил Android телефон с помощью следующей команды:

$ sudo fusermount -uz /home/ubuntu/mnt

.

Ответ или решение

Теория

При подключении Android-устройства к любому компьютеру с операционной системой Linux, такой как Ubuntu на Raspberry Pi, важно чтобы операционная система могла корректно распознать и управлять устройством как USB- или MTP-устройством (Media Transfer Protocol). На настольной версии Ubuntu это, как правило, работает «из коробки» благодаря предустановленным пакетам и настройкам. Однако на серверной версии Ubuntu, такой как версия для Raspberry Pi, могут отсутствовать некоторые конфигурации и правила, которые способствуют успешному монтажу устройств.

Пример

Пользователь описывает проблему с монтированием Android-телефона на Raspberry Pi, используя серверную версию Ubuntu 22.04.1 LTS. Даже после установки стандартных пакетов, таких как gmtp и mtp-tools, устройство не распознается корректно, и системные каталоги не отображаются. При сравнении с рабочей системой на настольной версии Ubuntu, был обнаружен процесс аудита, который инициирует запрос устройства на разрешение доступа к файлам, чего не происходило на Raspberry Pi.

Применение

Необходимые шаги для решения проблемы:

  1. Установка недостающих пакетов:
    Помимо уже установленных gmtp и mtp-tools, необходимо убедиться в наличии правил UDEV для Android-устройств. На серверных дистрибутивах они могут отсутствовать.

  2. Создание каталога для монтирования:

    $ mkdir /home/ubuntu/mnt
  3. Установка и использование android-file-transfer:
    Установите пакет android-file-transfer, который может помочь в обеспечении эмуляции MTP на уровне FUSE:

    $ sudo apt-get install android-file-transfer
  4. Ручное монтирование устройства:
    Используйте aft-mtp-mount для монтирования устройства:

    $ sudo aft-mtp-mount /home/ubuntu/mnt

    После этого должно появиться содержимое хранилища устройства, например, "Internal storage".

  5. Корректное размонтирование после использования:
    Чтобы избежать повреждений данных, необходимо правильно размонтировать устройство:

    $ sudo fusermount -uz /home/ubuntu/mnt

Диагностика возможных проблем:

  • Отсутствие UDEV правил: Разработайте и добавьте необходимые правила UDEV. Это позволит системе автоматически распознавать Android-устройство при подключении. Пример правила UDEV для устройств MTP:

    SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"
  • Проверка логов: Сравните выводы из /var/log/syslog на настольной и серверной версиях, что может дать подсказки о проблемах в детекцировании устройства.

  • Обновление системы: Убедитесь, что система и все установленные пакеты обновлены:

    $ sudo apt-get update && sudo apt-get upgrade

Итог

Проблемы с монтированием Android-устройства на Raspberry Pi чаще всего связаны с отсутствием предустановленных системных правил и конфигураций, которые доступны в настольной версии Ubuntu. Решение заключается в установке дополнительных пакетов и ручной настройке системы с учетом специфики серверного дистрибутива. Следуя четким шагам по установке правил UDEV и использованию инструментов типа android-file-transfer, можно добиться желаемого результата и успешно монтировать Android как MTP-устройство на Raspberry Pi.

Оцените материал
Добавить комментарий

Капча загружается...