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

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

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

3 ответа

Решение

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

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

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

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

На BQ E5 Ubuntu Edition с Ubuntu Touch 15.04 (r4) я могу размонтировать внешний sdcard и переключить 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-карту телефона в качестве устройства хранения данных.

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

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

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

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