LINUX.ORG.RU

Подключение андройдофона к компьютеру с debian. Часть 2

 , , ,


2

1

В продолжение темы.
В прошлой серии я узнал, что mtp вполне возможно пользоваться без определения идентификационных номеров устройства (libmtp), и без невыносимых тормозов (gmtp). Сие действие осуществимо с помощью go-mtpfs, которое без проблем собирается и работает в т.ч. под debian wheezy amd64. Остается решить вопрос с монтированием без sudo, в этом, надеюсь, дорогие читатели, вы мне поможете.
Исходные данные:
1. Пользователь включен в группу fuse:
2. Пакеты *mtp* из experimental (т.е. достаточно свежие);
3. Монтирование с помощью команды sudo go-mtpfs -allow-other android/ подключает внутренний накопитель устройства к директории в хомяке пользователя и дает возможность им пользоваться;
4. Монтирование с помощью команды go-mtpfs -allow-other android/ выводит:

[user@user-desktop ~]$ go-mtpfs -allow-other android/
2013/04/08 21:07:22 detect failed: no MTP devices found

Как осуществлять монтирование/размонтирование обходясь без sudo, чтобы можно было повесить функционал на кнопку запуска?

В sudoers можно назначить себе выполнение этой команды без необходимости вводить пароль.

uuwaan ★★ ()

Пользователь «user» состоит в группе «fuse»?

KennyMinigun ★★★★★ ()

Приду домой, тоже попробую.

Adonai ★★★ ()
Ответ на: комментарий от KennyMinigun

go-mtpfs -allow-other android/

s/-allow-other/--allow-other.

УМВР

Он работает и так, и так. Просто в дебиане м.б. групповая политика, отличная от вашего дистрибутива.

siphonops ★★★ ()
Последнее исправление: siphonops (всего исправлений: 1)
Ответ на: комментарий от KendovNorok

kio-mtp?

Мне нужно для гнома, а точнее для, прости господи, третьегнома.

siphonops ★★★ ()
Ответ на: комментарий от uuwaan

К сожалению, не подошло. По умолчанию команда выполняется без привилегий, поэтому назначение

user    user-desktop=NOPASSWD: /usr/bin/go-mtpfs
в sudoers ничего не изменилось. Мне нужно поймать ту группу, недоступность которой ограничивает функционал go-mtpfs. Возможно это какая-нибудь storage или usb?

siphonops ★★★ ()

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

siphonops ★★★ ()

Продолжает невзлетать.
Добавление в sudoers go-mtpfs и fusermount позволяет выполнять эти команды без пароля, но после монтирования доступен только просмотр каталогов на накопителе. Любая попытка открытия/копирования файлов выдает ошибку без опознавательных знаков:

cp: чтение «android/Внутренний накопитель/tomdroid/1e57cac0-fb5a-4584-8188-329e5cd3abfd.note»: Ошибка ввода/вывода
Что с этим делать, ума не приложу.

siphonops ★★★ ()
Ответ на: комментарий от siphonops

Было бы хорошо, если пользователь убунту перечислил здесь стандартные пользовательские группы,

$ grep $(whoami) /etc/group
adm:x:4:elvenfighter
cdrom:x:24:elvenfighter
sudo:x:27:elvenfighter
dip:x:30:elvenfighter
plugdev:x:46:elvenfighter
fuse:x:104:elvenfighter
lpadmin:x:107:elvenfighter
elvenfighter:x:1000:
sambashare:x:123:elvenfighter
bumblebee:x:1001:elvenfighter

bumblebee - не стандартная, как можно догадаться :) fuse - для go-mtpfs

KennyMinigun ★★★★★ ()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от siphonops

Вот, может вам будет интересно:

$ sudo go-mtpfs /mnt
2013/04/10 20:15:55 compiled against libmtp 1.1.5
Device 0 (VID=18d1 and PID=4ee1) is a Google Inc (for LG Electronics/Samsung) Nexus 4/10 (MTP).
2013/04/10 20:15:56 found device Google Inc (for LG Electronics/Samsung): Nexus 4/10 (MTP) (18d1:4ee1) @ bus 3, dev 3
: 
Unable to read MTPZ public exponent from ~/.mtpz-data, MTPZ disabledAndroid device detected, assigning default bug flags
2013/04/10 20:15:56 storage ID 65537: Внутренняя память
2013/04/10 20:15:56 backing data /tmp/go-mtpfs042517496
2013/04/10 20:15:56 starting FUSE unknown

$ ls /mnt
ls: невозможно получить доступ к /mnt: Отказано в доступе

$ sudo fusermount -u /mnt

$ sudo go-mtpfs -allow-other=true /mnt
2013/04/10 20:17:58 compiled against libmtp 1.1.5
Device 0 (VID=18d1 and PID=4ee1) is a Google Inc (for LG Electronics/Samsung) Nexus 4/10 (MTP).
2013/04/10 20:17:58 found device Google Inc (for LG Electronics/Samsung): Nexus 4/10 (MTP) (18d1:4ee1) @ bus 3, dev 4
: 
Unable to read MTPZ public exponent from ~/.mtpz-data, MTPZ disabledAndroid device detected, assigning default bug flags
2013/04/10 20:17:58 storage ID 65537: Внутренняя память
2013/04/10 20:17:58 backing data /tmp/go-mtpfs131241115
2013/04/10 20:17:58 starting FUSE unknown

$ $ ls /mnt/
Внутренняя память

$ echo working > /mnt/Внутренняя\ память/test
$ cat /mnt/Внутренняя\ память/test
working
$ rm /mnt/Внутренняя\ память/test

$ stat /mnt/
  Файл: «/mnt/»
  Размер: 4096          Блоков: 8          Блок В/В: 4096   каталог
Устройство: 801h/2049d  Inode: 1441793     Ссылки: 2
Доступ: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Доступ: 2013-04-10 20:12:20.836895017 +0300
Модифицирован: 2012-10-09 18:03:35.000000000 +0300
Изменён: 2012-12-10 21:00:27.270518422 +0200

Особенно обратите внимание на

-allow-other=true

KennyMinigun ★★★★★ ()
Ответ на: комментарий от KennyMinigun

sudo я использовал только для того, чтоб воспроизвести Вашу ситуацию. Всё прекрасно работает без sudo (только нужны соответствующие права на директорию, куда монтируется)

KennyMinigun ★★★★★ ()
Ответ на: комментарий от KennyMinigun

Без sudo:

$ go-mtpfs -allow-other=true android/
2013/04/10 21:35:00 detect failed: no MTP devices found
С sudo:
$ sudo go-mtpfs -allow-other=true android/2013/04/10 21:33:22 starting FUSE unknown
2013/04/10 21:33:44 AndroidGetPartialObject64 failed: OperationNotSupported
2013/04/10 21:33:44 AndroidGetPartialObject64 failed: OperationNotSupported
Последние сообщения при попытке доступа к файлу на накопителе.

Директория монтирования:

$ stat android/
  Файл: «android/»
  Размер: 4096      	Блоков: 8          Блок В/В: 4096   каталог
Устройство: 804h/2052d	Inode: 11559015    Ссылки: 2
Доступ: (0755/drwxr-xr-x)  Uid: ( 1000/    user)   Gid: ( 1000/    user)
Доступ: 2013-04-09 22:38:32.684537242 +0400
Модифицирован: 2013-04-07 14:02:54.478008700 +0400
Изменён: 2013-04-07 14:09:39.765996011 +0400
 Создан: -
Мои группы:
$ grep $(whoami) /etc/group
cdrom:x:24:user
floppy:x:25:user
audio:x:29:pulse,user,timidity
dip:x:30:user
video:x:44:user
plugdev:x:46:user
fuse:x:103:user
scanner:x:104:saned,user
bluetooth:x:109:user
netdev:x:110:user
user:x:1000:
Соответственно, разница в группах:
adm, sudo, lpadmin, sambashare

siphonops ★★★ ()

Может, дело в правах доступа? Поэтому и не находятся устройства.

У вас в /etc/udev/rules.d ничего про USB нет?

Я, поскольку разработчик Андроида, ставлю

adonai@heaven:/etc/udev/rules.d$ cat 51-android.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"

Может, вам что-то подобное просто нужно прописать?

Adonai ★★★ ()
Ответ на: комментарий от Adonai

Вообще-то было:

SUBSYSTEM="usb", ATTR{idVendor}=="0fce",ATTR{idProduct}="0188",MODE="0666"
И не помогло. Добавил GROUP=«plugdev», та же ошибка при попытке доступа:
2013/04/15 19:20:51 AndroidGetPartialObject64 failed: OperationNotSupported
Даже если это и заработало, все-равно бы не дало желаемого результата подключения без выяснения id и ручной правки файла.
Спасибо.

siphonops ★★★ ()

Хочу извиниться перед участниками темы за свой маразм и бессмысленный флуд. Причиной всех моих проблем по части четвертого андроида было смешное и банальное недоразумение по аппаратной части. Поскольку тема поиска подключения по mtp не нашла отклика и заинтересованных лиц, тему закрываю.

siphonops ★★★ ()
Ответ на: комментарий от siphonops

А что, что было-то?) Вот так откланяться не выйдет!

Adonai ★★★ ()
Ответ на: комментарий от siphonops

И между прочим, я заинтересован.

Я, конечно, надеюсь, что в скоро-грядущем обновлении до Wheezy и анфризе тестинг-ветки все заработает из коробки, но поскольку дебиан - штука инертная, за темой слежу )

Adonai ★★★ ()
Ответ на: комментарий от Adonai

У sony xperia существует некая особенность, а именно sd-карта и внутренний накопитель там одно и то же. Это или криворукость разработчиков, или их злой умысел. Так вот, в гнезде тупо не было карты, а по всем приложениям она, якобы, была. Отсюда непашущие режимы отладки, UMS и, вероятно, go-mtpfs не пашет по той же причине. Здесь поможет только рут и обещание никогда не покупать телефоны от этих бракоделов/тивоизаторов.

siphonops ★★★ ()
Ответ на: комментарий от Adonai

Забыл добавить: Если Вас интересует mtp и Вы не являйтесь счастливым обладателем xperia, то go-mtpfs должен заработать и в wheezy. Его можно собрать самому или поставить убунтовский пакет для 12.04. Потом можно сделать скрипт монтирования, скрипт размонтирования и сделать кнопки запуска к ним.

siphonops ★★★ ()
Ответ на: комментарий от siphonops

Спасибо, думаю, буду пробовать на выходных )

P.S. Нет, у меня не Xperia

Adonai ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.