Монтируется ли файловая система телефона Ubuntu через USB-соединение?

Монтируется ли файловая система телефона Ubuntu в Linux через USB-соединение?

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

4
задан 4 September 2018 в 10:51

3 ответа

Ubuntu Touch позволяет получить доступ к файловой системе по протоколу MTP , но не поддерживает режим USB Mass Storage . В этом отношении он похож на новые устройства Android и вряд ли изменится. Из коробки вы можете получить доступ к файлам на телефоне с помощью любого приложения, поддерживающего GVFS.

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

Если файловая система не разработана специально, только одна ОС должна одновременно обращаться к базовому блочному устройству. FAT не предназначен для этого случая использования, поэтому старые телефоны Android, поддерживающие режим запоминающего устройства, отключали SD-карту перед тем, как сделать ее доступной через USB.

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

0
ответ дан 4 September 2018 в 10:51

На BQ E5 Ubuntu Edition с Ubuntu Touch 15.04 (r4) я могу размонтировать внешнюю SD-карту и переключить usb-порт в режим запоминающего устройства с помощью скрипта massStorage.sh, а затем переключить usb-порт обратно на mtp с помощью скрипта mtp.sh.

Содержимое скрипта massStorage.sh:

#!/bin/sh

echo 0 > /sys/class/android_usb/android0/enable
cp /sys/class/android_usb/android0/functions /tmp/massStorageFunctions
echo mass_storage > /sys/class/android_usb/android0/functions
umount /dev/mmcblk1p1
echo /dev/mmcblk1 > /sys/devices/virtual/android_usb/android0/f_mass_storage/lun/file
cp /sys/devices/virtual/android_usb/android0/f_mtp/device/idVendor /tmp/massStorageVendor
cp /sys/devices/virtual/android_usb/android0/f_mtp/device/idProduct /tmp/massStorageProduct
echo 03f0 > /sys/devices/virtual/android_usb/android0/f_mass_storage/device/idVendor
echo 5607 > /sys/devices/virtual/android_usb/android0/f_mass_storage/device/idProduct
echo 1 > /sys/class/android_usb/android0/enable

Содержимое скрипта mtp.sh:

#!/bin/sh

if [ -f /tmp/massStorageFunctions ]; then
    echo 0 > /sys/class/android_usb/android0/enable
    cp /tmp/massStorageFunctions /sys/devices/virtual/android_usb/android0/functions
    cp /tmp/massStorageVendor  /sys/devices/virtual/android_usb/android0/f_mass_storage/device/idVendor
    cp /tmp/massStorageProduct /sys/devices/virtual/android_usb/android0/f_mass_storage/device/idProduct
    sudo -u phablet udisksctl mount -b /dev/mmcblk1p1
    echo 1 > /sys/class/android_usb/android0/enable
fi;

Обратите внимание, что поставщики и идентификаторы продуктов украдены из другой usb-массы запоминающее устройство.

Я сохранил эти сценарии в каталоге ~phablet/bin. Кроме того, я определил следующие псевдонимы для запуска сценариев из командной строки com.ubuntu.terminal:

alias u='sudo sh ~phablet/bin/massStorage.sh'
alias m='sudo sh ~phablet/bin/mtp.sh'

Вы можете установить эти псевдонимы в файле .bashrc в домашнем каталоге phablet.

Обратите внимание, что вы должны ввести свой пин-код, чтобы отсоединить / прикрепить SD-карту с этими сценариями.


Примечание: Одна большая проблема с альтернативным решением mtp, предложенным другими, заключается в том, что он недоступен изнутри cygwin. Можно использовать mtp в Windows, но устройства mtp не предоставляются в качестве буквы диска, которая необходима для Cygwin. У меня по сути тот же сценарий использования, что и у Tor Thommesen, и я нашел это решение, чтобы выставить мою вторичную SD-карту телефона в качестве устройства хранения данных.

0
ответ дан 4 September 2018 в 10:51

Если файловая система не разработана специально, только одна ОС должна одновременно обращаться к базовому блочному устройству. FAT не предназначен для этого случая использования, поэтому старые телефоны Android, поддерживающие режим запоминающего устройства, отключали SD-карту перед тем, как сделать ее доступной через USB.

Я не вижу смысла здесь. Да, он должен использоваться только одним устройством одновременно, и поэтому он отключается от телефона до того, как станет доступным с компьютера. В чем проблема? Если вы не хотите смотреть фильм с внешнего MicroSD во время копирования файлов.

Кроме того ... вам не нужно очень долго использовать MTP, чтобы понять, что он работает не так хорошо. Фоновые процессы не синхронизируются, когда вы ожидаете их. Вы не можете видеть эскизы ваших изображений. Передача медленная. Другой POC выдвигается на пользователях под маской хорошего «пользовательского опыта». Тот же аргумент, который Apple использует, чтобы полностью заблокировать каждого в своей «экосистеме» до такой степени, что вы даже не сможете вставить MicroSD или заменить батарею самостоятельно.

0
ответ дан 4 September 2018 в 10:51

Другие вопросы по тегам:

Похожие вопросы: