MyTetra Share
Делитесь знаниями!
О, смотри-ка какое хорошее место. Дайте два!
Galaxy Tab и Linux. Передача данных (обмен файлами)
04.01.2014
01:30
Текстовые метки: linux, samsung, galaxy, tab, передача данных, файл, монтирование
Раздел: Компьютер - Linux - Android

Не так давно стал обладателем сего девайса - Samsung Galaxy Tab 10.1. Рассказывать про впечатления от приобретения, плюсы и минусы планшета я не буду, скажу лишь, что доволен.

Все бы хорошо, но надоумился Google в Android 3.0+ убрать возможность подключения устройства как USB накопителя (USB Mass Storage). Да и Samsung показал себя не с лучшей стороны, не допилив USB Mass Storage, как это делают другие производители, например Acer. Вместо этого в операционную систему всунули гнусный майкрософтовский MTP (Media Transfer Protocol). У которого помимо прочих минусов, есть очень большой недостаток - сырая реализация под Linux. Ну по крайней мере подружить свою убунту и планшет через него мне так и не удалось. Поэтому я расскажу об альтернативном способе обмена файлами между Android устройством и устройством с ОС Linux. В данном случае Samsung Galaxy Tab 10.1 с Android 3.2 на борту и моя любимая Ubuntu 11.10 :)
Кстати, этот способ также подойдет и для Mac OS юзеров.

Сразу после обнаружения этой "фичи" я полез искать способ подключения к ПК. Пытался сначала все же задействовать этот MTP, но все безуспешно.
После этого начал искать альтернативу. Нашел очень интересный способ - использовать стандартную утилиту ADB из Android SDK. Она представляет собой отладочный протокол (мост) для обмена данными между ПК и Андроид устройством. Помимо этого имеется возможность обмениваться файлами, просматривать дерево каталогов и файлов, создавать директории, что нам как раз и требуется.

Так как утилита консольная, то для удобства использования нам потребуется графический интерфейс. Хоть выбор и не велик, но для себя я выбрал программку на Python - AAFM (Android ADB File Manager). Описание, установка и способ использования есть на официальной страничке, но я все же напишу краткий мануал на русском языке.

Требования

- Python с бибилиотеками PyGTK
- GTK
- git
- Android SDK

Для Ubuntu нам понадобится только git и Android SDK.

Устанавливаем git и копируем репозиторий

sudo apt-get install git

git clone git://github.com/sole/aafm.git ~/Applications/aafm

Устанавливаем Android SDK

sudo apt-get install ia32-libs

Скачиваем SDK отсюда - http://developer.android.com/sdk/index.html. Распаковываем в директорию ~/Applications/android-sdk и выполняем следующие команды в консоли:

sudo cp ~/Applications/android-sdk/platform-tools/adb /usr/bin/adb

sudo cp ~/Applications/android-sdk/platform-tools/aapt /usr/bin/aapt

Настраиваем udev

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

# Samsung

SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0777"

Чтобы узнать idVendor нужно выполнить в консоле команду lsusb и найти там свое устройство. Список будет примерно такой:

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 001 Device 002: ID 064e:a103 Suyin Corp. Acer/HP Integrated Webcam [CN0314]

Bus 002 Device 002: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader

Bus 006 Device 002: ID 147e:1000 Upek Biometric Touchchip/Touchstrip Fingerprint Sensor

Bus 001 Device 005: ID 04e8:6860 Samsung Electronics Co., Ltd


По последней строчке можно понять, откуда берется idVendor:

Bus 001 Device 005: ID 04e8:6860 Samsung Electronics Co., Ltd

Редактируем idVendor, если требуется и сохраняем файл.
Выставляем права и перезапускаем udev:

chmod a+r /etc/udev/rules.d/51-android.rules

sudo /etc/init.d/udev restart

Настраиваем устройство

Теперь нужно включить на Android устройстве режим отладки:
Настройки -> Приложения -> Разработка -> Отладка по USB
.

Запускаем AAFM

Подключаем телефон/планшет через USB шнур и выполняем следующие команды:

cd ~/Applications/aafm/src

chmod +x ./aafm-gui.py

python ./aafm-gui.py

После этого должно открыться окно такого вида:



Для себя я сделал кнопку запуска, привязал к ней иконку и добавил на панель Unity.

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


P.S. Графический интерфейс программы подвисает при передаче больших файлов. На самом деле это не значит, что файл не перадается. Это как раз показатель обратного - передача идет успешно, поэтому не спешите закрывать окно, дождитесь пока она отвиснет. Видимо это связано с тем, что разработчик решил не выносить передачу файлов в отдельный поток. Надеюсь в следующей версии они это исправят.


Так же в этом разделе:
← Содержание ...
 
MyTetra Share v.0.35
Яндекс индекс цитирования