Лучший способ подключить Galaxy Nexus (ICS) к Linux

13

Я могу подключить свой Galaxy Nexus к своей машине Kubuntu, используя протокол PTP , но это очень медленно. Я читал это интервью о том, почему Galaxy Nexus не поддерживает USB Mass Storage , и я пошел по адресу http://www.android.com/filetransfer/, как было указано, но я не вижу способа, который позволит мне подключиться к устройству с помощью машины Linux и MTP .

Кто-нибудь знает, как заставить работать MTP или любой другой протокол?

Martyn
источник

Ответы:

7

Вы также можете попробовать mtpfs или gMTP . mtpfs позволяет монтировать устройство MTP как файловую систему, а gMTP - отдельная программа.

В AskUbuntu есть ответ, который показывает, как использовать mtpfs.

elmicha
источник
Мне кажется, что gMTP очень хорошо работает для копирования фотографий со старого телефона. Попытка скопировать PTP была болезненной.
Райан
1
gMTP неудовлетворителен для меня. Это ОЧЕНЬ медленно и выдает ошибки с музыкальными файлами (он пытается создать альбомы для каждого переданного файла). gMTP также часто падает в Ubuntu. Мне больше нравится метод ADB. Я также использую SSHFS через WiFi и несколько других методов.
MountainX
6

Я расширю идею Райана Конрада:

adb из андроид-инструментов это путь.

Я предпочитаю следовать этому руководству, чтобы установить Eclipse с android-sdk:

http://developer.android.com/sdk/installing.html

Установка зависит только от JDK. Нет установки новых пакетов. Лично я делаю те же самые несколько шагов (= извлечение двух папок в любом месте и настройка eclipse) таким же образом в дистрибутивах Ubuntu, Mint или Debian, и все просто работает.

После завершения этого классического руководства у меня появилось две новые папки: eclipse и android-sdks . В папке android-sdks ./platform-tools/adb находится путь к adbинструменту, который можно использовать для push(загрузки) и pull(получения) файлов с устройства Android - без mtpfs или дополнительных монтирований.

Как adbи программа командной строки, она может быть автоматизирована в один миг. Кроме того, у вас есть представление File Explorer в Eclipse , которое обеспечивает красивую графическую древовидную файловую структуру и базовый интерфейс перетаскивания (не забудьте сначала выбрать ваше устройство в представлении Devices !).

Большим недостатком этого метода является то, что только adbинструмент видит устройство и может получить к нему доступ. Остальная часть моей системы, включая Наутилус, например, до сих пор не видит устройство. Но после привыкания к стабильности и надежности adbэто не проблема для меня.

furikuretsu
источник
1
adb - это проблема безопасности, если вы оставляете ее включенной постоянно. Имейте в виду, что нет диалога парольной фразы или чего-то еще. Можно обойти блокировки экрана и даже полное шифрование устройства. Особенно, если вам случится зарядить его в неизвестных местах (ПК в интернет-кафе и т. Д.)
ce4
спасибо за уведомление, ce4. Позвольте мне спросить: какие средства для доступа к хранилищу Android следует использовать в неизвестных местах?
furikuretsu
1
добавил собственный ответ по поводу bluetooth :-)
ce4
6

Вы можете использовать Bluetooth .

Bluetooth FTP (профиль передачи файлов) поддерживается Linux, и есть приложение для передачи файлов Bluetooth , которое добавляет эту функцию в Android. Однако это не так быстро (<200kb / s) в зависимости от ваших версий Bluetooth. -

Есть модуль предохранителей под названием obexfs , вот мой Nexus S, смонтированный:

root@local:/tmp# obexfs -b f0:08:f1:xx:xx:xx -- /media/bla
root@local:/tmp# cd /media/bla
root@leo61326:/media/bla# ls -lh /media/bla/DCIM/
total 5,5K
drwxr-xr-x 1 root root    0 2012-05-25 16:09 100ANDRO
drwxr-xr-x 1 root root    0 2012-07-05 17:31 2012-06-09_Rafting
drwxr-xr-x 1 root root    0 2012-07-09 22:30 Camera

Некоторые исследователи файлов поддерживают его с помощью плагинов напрямую (nautilus / gnome / kde / ...). Вот некоторые вопросы об exex для Ubuntu.

CE4
источник
1
Этот ответ заслуживает большего числа голосов - я не смог заставить ни MTP, ни PTP хорошо работать с моей установкой Kubuntu.
Натан Осман
Надеемся, что с новыми версиями Ubuntu все станет лучше. Я действительно уверен в этом. В основном я использую ADB в командной строке (которую я часто использую), так что сейчас это самый быстрый путь для меня. Я также иногда использую "bluetooth-sendto some-file".
ce4
3

Вы можете использовать adb и перевод с помощью команд adb pull / push.

Не уверен , что дистрибутив Linux вы используете, но я нашел это , что говорит MTP упаковывается и доступен для Ubuntu , хотя пакет , называемый МТР-инструменты .

Также обратите внимание, что это не относится к Android 3.x / 4.x, это справедливо для любых устройств под управлением 3.x / 4.x, которые не имеют внешней SD-карты. Если устройство имеет слот для SD-карты, вы сможете смонтировать устройство, как в предыдущих версиях Android.

Райан Конрад
источник
2

mpfs - это файловая система на основе FUSE, которая может монтировать Nexus в вашей системе.

mtpfs -o allow_other /media/MOUNTPOINT

Смонтирую его для вас. Для размонтирования просто размонтируйте / media / MOUNTPOINT

stsquad
источник
0

Другим вариантом является WebDAV .

Настройка сервера Android WebDAV

На своем Nexus 7 я установил WebDAV Server , открыл его, нажал кнопку «Пуск» и сразу же смог увидеть свою /storage/sdcardпапку в своем веб-браузере по URL-адресу, отображаемому приложением, т.е.http://192.168.x.y:8080

Обратите внимание, что с сервером WebDAV у вас также есть возможность выбрать Root (/) или DCIM, а также SdCard в качестве корня WebDAV .

Использование сервера WebDAV через Nautilus

В Nautilus я выбрал «Подключиться к серверу ...» в меню «Файл», выбрал «WebDAV (HTTP)», ввел 192.168.x.yв качестве сервера и 8080порта и нажал «Подключиться».

Навигация по иерархии каталогов медленнее, чем доступ к другим сетевым ресурсам, но не невозможна. Копирование одного 42 МБ файла с помощью Nautilus заняло около 12 секунд, то есть 3,6 МБ / с.

Монтирование диска WebDAV из командной строки

Я установил davfs2 и установил свой общий ресурс, /mntиспользуя команду:

sudo mount -t davfs http://192.168.x.y:8080 /mnt

Копирование того же 42 МБ файла, но с более точной синхронизацией, заняло 12,88 с или 3,24 МБ / с.

$ time cp music.fsb /tmp

real    0m12.880s
user    0m0.002s
sys     0m0.143s

Предостережения

  • Доступ к WebDAV небезопасен . Даже если вы установили пароль для общего ресурса WebDAV, соединение все равно httpне будет установлено https, поэтому оно не будет зашифровано. Используйте WebDAV только в защищенной сети Wi-Fi и, конечно, не включайте сервер WebDAV, пока вы находитесь в интернет-кафе или другом незащищенном Wi-Fi.
Марк Бут
источник
0

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

https://play.google.com/store/apps/details?id=com.theolivetree.ftpserver

инструкции находятся в описании магазина игры.

Андрей Лосев
источник
0

Работа MTP на Ubuntu для Galaxy Nexus, Nexus 7 и Acer A500 С чего начать.

Я нашел некоторые инструкции для Nexus 7 (которые я только что привез) на этом сайте Ubuntu 12.04 - Automount Nexus 7 в режиме MTP. Вся благодарность автору этой страницы за то, что он это выяснил. Инструкции, приведенные ниже, взяты с этого сайта, урезаны до команд, если вы хотите получить более подробное объяснение, см. Сайт выше.

Я использовал Ubuntu 12.10 и настроил для своих Nexus 7, Galaxy Nexus и Acer A500. инструкции

Настроить FUSE

Измените /etc/fuse.conf, чтобы он читался всеми ..

# sudo chmod a+r /etc/fuse.conf

Отредактируйте /etc/fuse.conf, чтобы удалить комментарий # из user_allow_other, чтобы стандартный файл fuse.conf выглядел следующим образом

# Set the maximum number of FUSE mounts allowed to non-root users.
# The default is 1000.
#
#mount_max = 1000

# Allow non-root users to specify the 'allow_other' or 'allow_root'
# mount options.
#
user_allow_other

Скомпилируйте и установите go_mtp

# sudo apt-get install libmtp-dev golang 
# mkdir /tmp/go
# export GOPATH=/tmp/go
# go get github.com/hanwen/go-mtpfs
# sudo mv /tmp/go/bin/go-mtpfs /usr/local/sbin/go-mtpfs
# sudo chmod a+x /usr/local/sbin/go-mtpfs

Создать точку монтирования

Use the following as you need..
# sudo mkdir /media/Nexus7
# sudo chmod 777 /media/Nexus7
# sudo mkdir /media/GalaxyNexus
# sudo chmod 777 /media/GalaxyNexus
# sudo mkdir /media/A500
# sudo chmod 777 /media/A500

Настройка правил Udev

Используйте ваш любимый редактор и создайте следующий файл (удалите любые другие правила Android Udev, с которыми вы могли поэкспериментировать в первую очередь).

# sudo vi /etc/udev/rules.d/99-android.rules

Вставьте следующее содержимое. Вы можете удалить ненужные правила. У двух устройств nexus одинаковые идентификаторы для загрузчика и восстановления. ПРИМЕЧАНИЕ: вам нужно заменить # YOURLOGIN # своим именем пользователя / логином.

# Google Nexus 7 & Galaxy Nexus 16 Gb Bootloader & recovery mode
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666" # Recovery

# Google Nexus 7 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e43", MODE="0666" # PTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e44", MODE="0666" # PTP media with USB debug on

# Google Nexus 7 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0666" # MTP media with USB debug on

# Google Nexus 7 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus7"

# Google Nexus 7 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"


# Google Galaxy Nexus 16 Gb Bootloader & recovery mode
#SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666" # Bootloader
#SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666" # Recovery

# Google Galaxy Nexus 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6865", MODE="0666" # PTP media
#SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="4e44", MODE="0666" # PTP media with USB debug on

# Google Galaxy Nexus 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="685c", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0666" # MTP media with USB debug on

# Google Nexus 7 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="685c", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/GalaxyNexus"
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="6860", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/GalaxyNexus"

# Google Nexus 7 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="685c", ACTION=="remove", RUN+="/bin/umount /media/GalaxyNexus"
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="6860", ACTION=="remove", RUN+="/bin/umount /media/GalaxyNexus"


# Acer A500 16 Gb Bootloader & recovery mode
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3201", MODE="0666" # Bootloader
#SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="d001", MODE="0666" # Recovery

# Acer A500 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="33b2", MODE="0666" # PTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="33b1", MODE="0666" # PTP media with USB debug on

# Acer A500 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3341", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3325", MODE="0666" # MTP media with USB debug on

# Acer A500 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3341", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/A500"
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3325", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/A500"

# Acer A500 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3341", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3325", ACTION=="remove", RUN+="/bin/umount /media/A500"

ПРИМЕЧАНИЕ: если вы использовали gedit и отредактировали файл, вам нужно удалить 99-android.rules ~, так как udev расстроится ..

Далее перезапустите udev

# sudo service udev restart

Отредактируйте / etc / fstab

Add the following to /etc/fstab
DeviceFs(Nexus\0407)        /media/Nexus7         fuse.DeviceFs(Nexus\0407)      allow_other,rw,user,noauto    0    0
DeviceFs(Galaxy\040Nexu)    /media/GalaxyNexus    fuse.DeviceFs(Galaxy\040Nexu)  allow_other,rw,user,noauto    0    0
DeviceFs(A500)              /media/A500           fuse.DeviceFs(A500)            allow_other,rw,user,noauto    0    0

Законченный.

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

Примечание: кажется, что ENV {ID_MODEL} для nexus 7 изменился на Nexus_7 в какой-то момент (я думаю, с обновлением Android 4.2) ..

С http://www.winters.org.nz/android-hints-tips-stuff/working-mtp-on-ubuntu

Аврам
источник
0

Ну, есть очень полезный инструмент, его название «Wifi File Transfer». Просто скачайте его из Play Store на вашем Android-устройстве и установите. Он превращает ваш андроид мобильный на мини-сервер, который позволяет загружать и загружать файлы с и на телефон.

Shakalex
источник