yes1111: (веселка)
[personal profile] yes1111


Купили мы на днях сыну подарок - смартфон LG P880 Optimus 4x HD. Под Android`ом 4.0.3. Впрочем, дело не в производителе и не в модели. А в том, что в нынешних версиях Android, в угоду Сами-Знаете-Кому, фантастически удобный протокол передачи данных USB MSC (USB mass storage device class, при котором устройство при подключении к компьютеру видится как простая флешка, не требуя установки каких-либо дополнительных драйверов и прочих глупостей - под любой ОС!), был заменен новомодным MTP. В итоге телефон при подключении к компьютеру под Линуксом и при включении режима MTP переставал видеться вообще. Альтернативных же вариантов, пригодных для обмена файлами, за исключением PTP, дающего доступ только к папке с картинками, в менюшках телефона попросту не оказалось.

Честно говоря, подвоха именно с этой стороны я не ждал, поскольку у меня уже был опыт абсолютно беспроблемной эксплуатации планшета Wexler TAB 7b, работающего под еще более новым Android 4.1.1. Там протокол MSC уже присутствовал "из коробки", плюс имелось еще некоторое количество приятных ништячков - наподобие предустановленной поддержки NTFS. В результате дополнительную SDHC-карточку на 32 GB я отформатировал прямо в планшете, но с внешнего Linux-компьютера - в NTFS, из-под GParted. Форматнул бы с таким же успехом и в Ext3, да передумал: все же, как знать - вдруг когда-нибудь доведется сунуть девайс и в компьютер с Другой Безусловно Хорошей Операционной Системой?

Увы, все вышеописанные радости оказались лишь следствием удачного допиливания Android'а совместной русско-китайской бригадой. В Лыже это счастье отсутствовало напрочь. Каково же было мое удивление, когда я узнал, что эта проблема (отсутствие поддержки протокола USB MSC в устройствах под управлением ОС Android 4.x) на самом деле носит массовый характер: Интернет по этому поводу буквально воет матом! И доставляет эта идиотская хрень прогрессивная тенденция практически всем - кроме, собственно, производителей оборудования. Им наши проблемы до задницы близки и понятны, но возможностей для их успешного разрешения они пока что не видят.

С другой стороны, народные массы тоже не сидят, сложа руки: в Интернете буквально масса рецептов, как добавить поддержу USB MSC в Android-устройства. В том числе и собственно под нашу модель смартфона. Одно огорчает: для описанной там операции телефон необходимо рутировать. Когда-нибудь я этим безусловно займусь. Но, по-видимому, не раньше, чем закончися гарантия. Файлы же надо перекидывать прямо сейчас, здесь и сегодня!

Итак, выяснил, что для решения поставленной задачи народ успешно юзает софтину под названием MTPfs. Подробное руководство по ее установке под Ubuntu 10.04 LTS нашел вот здесь. Скачал исходник, добавил все недостающие библиотеки, пока команда ./configure не перестала ругаться, собрал и установил. Запускаю - ура, телефон примонтировался! Успешно? А вот как бы не так: папки-то высвечиваются, да вот только файлов в них в упор не видно! Хотел уж было плюнуть и пойти спать. Да вдруг надумал для смеха попробовать еще и предыдущую версию - не 1.1, а 0.9. Все же Scientific Linux 6.x, который я юзаю на работе и дома - дистрибутив довольно консервативный.

Итак (руководство заимствовано отсюда, с поправками и уточнениями на "местные особенности"):

1. Качаем исходник версии 0.9 (mtpfs-0.9.tar.gz).
2. Разархивируем его в рабочую папку.
3. Переходим в нее и задаем по очереди сакраментальное:
        ./configure (при необходимости добавляем соответствующие модули, пока не перестанет ругаться)
       make
       make install (последнее с правами суперпользователя)
4. Монтируется Android-устройство командой
       mtpfs -o allow_other <точка монтирования>,
а размонтируется - командой

      fusermount -u <точка монтирования>
(то и другое - с правами суперпользователя, иначе будет ругаться на отказ в доступе).

5. Проверяем работоспособность и наводим легкий марафет для удобства пользователя. Так, сыну в ноутбуке я сделал 2 кнопки запуска: Connect (su -c 'mtpfs -o allow_other /mnt/usb') и Disconnect (su -c 'fusermount -u /mnt/usb').



Ссылку на точку монтирования (/mnt/usb) я вытащил в папку на рабочем столе, рядом с кнопками запуска - для удобного доступа:



На данный момент программу успел поставить и проверить на двух ноутбуках: своем (Scientific Linux 6.4 x86_64) и сына (Scientific Linux 6.3 i386). Результат - однозначно положительный (тьфу-тьфу-тьфу!) :)))

[UPD 2013/09/14]: После успешного опробования, в дальнейшем столкнулся сразу на двух компьютерах со следующей проблемой: Android-устройство прекрасно монтируется из командной строки, но отказывается делать это через лаунчер (кнопку запуска). При этом ссылка на точку монтирования получается "битой" и не работает. Причина оказалась в том, что после выполнения команды, записанной в командной строке лаунчера, терминал тут же закрывается. А вместе с ним преждевременно завершаются и дочерние процессы. Чтобы команда успела отработать правильно, надо искусственно задержать закрытие терминала (например, с помощью команды sleep). В качестве одного из возможных способов можно написать простейший скрипт:

  #! /bin/sh
  su -c 'mtpfs -o allow_other /mnt/usb'
  sleep 5


(команда "sleep 5" удерживает окно терминала открытым на протяжении 5 секунд).

Сохраняем этот файл под именем mtpconnect. Делаем его исполняемым с помощью команды:

  chmod +x mtpconnect

и помещаем полученный скрипт в папку /usr/local/bin

В дальнейшем запускаем его на выполнение обычной командой:

  mtpconnect

Теперь можем записать ее в комаднную строку соответствующего лаунчера (вместо первоначального
  su -c 'mtpfs -o allow_other /mnt/usb')

(no subject)

Date: 09/09/2013 09:16 (UTC)
From: [identity profile] chaotic-sys.livejournal.com
Кстати, посмотрел - для lg, кажется, вышло обновление до 4.1. Вдруг там msc уже есть? :)

(no subject)

Date: 09/09/2013 09:20 (UTC)
From: [identity profile] yes1111.livejournal.com
Спасибо, я в курсе. Но апдейтить будем позже, когда 14 дней пройдут (у нас в течение этого времени аппарат можно безоговорочно вернуть, если что не понравится - по закону о защите прав потребителя).

обновление до 4.1

Date: 24/10/2013 20:37 (UTC)
From: [identity profile] yes1111.livejournal.com
Обновил. MSC по-прежнему нет. Через MTP по-прежнему работает :)

Re: обновление до 4.1

Date: 24/10/2013 20:44 (UTC)
From: [identity profile] chaotic-sys.livejournal.com
Ну, хоть это работает - и то хорошо :)

Profile

yes1111: (Default)
yes1111

June 2021

M T W T F S S
 123456
7891011 1213
14151617181920
21222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags