Montando dispositivos com Android no GNU/Linux

Publicado por edps em 10/04/2015

[ Hits: 16.477 ]

Blog: https://edpsblog.wordpress.com/

 


Montando dispositivos com Android no GNU/Linux



Diferentemente de uma antiga dica publicada em meu blog, simplesmente não consegui acessar meu smartphone com Android no Slackware Current como usuário normal (somente como root), mesmo o usuário estando com as configurações padrão da instalação, tendo criado o arquivo /etc/fuse.conf conforme a dica etc.

Pesquisando, encontrei a solução criando uma regra para o UDEV de modo a reconhecer meu dispositivo corretamente.

No Slackware (dependendo do tipo de instalação), o pacote "libmtp" vem instalado por padrão, o que é muito bom, mas aproveitei para tentar com o "jmtpfs", o qual se instala facilmente assim:

# sbopkg -i jmtpfs

Ou assim:

# wget http://slackbuilds.org/slackbuilds/14.1/system/jmtpfs.tar.gz
# tar xf jmtpfs.tar.gz
# cd jmtpfs

# wget https://github.com/JasonFerrara/jmtpfs/archive/v0.5.tar.gz
# chmod a+x jmtpfs.SlackBuild
# ./jmtpfs.SlackBuild
# installpkg /tmp/jmtpfs-*.tgz

Para o caso de distros Debian-based e outras, vejam a instalação e configuração do "jmtpfs", em:

Identificando o dispositivo

Conecte o seu dispositivo numa porta USB qualquer e execute os comandos abaixo:

# jmtpfs -l
# mtp-detect

Feito isto, observe (ou anote) os campos referentes ao "productId" e ao "vendorId", como no exemplo abaixo:

[16651:16623 0:359] 07:41:27 Dom Abr 05 [root@slackware: +1] /home/edps
(1:359)# jmtpfs -l
Device 0 (VID=1004 and PID=61f1) is UNKNOWN.
Please report this VID/PID and the device model to the libmtp development team
Unable to open ~/.mtpz-data for reading, MTPZ disabled.Available devices
(busLocation, devNum, productId, vendorId, product, vendor):
1, 22, 0x61f1, 0x1004, UNKNOWN, UNKNOWN


É muito simples identificá-los, porque seguem a ordem do texto entre parênteses, logo, os campos são: "productId:0x61f1" e "vendorId:0x1004".

Já com o "mtp-detect", parte do log foi esse:

[1166:1040 0:3] 08:42:57 Dom Abr 05 [root@slackware: +1] /home/edps
(1:3)# mtp-detect
Unable to open ~/.mtpz-data for reading, MTPZ disabled.libmtp version: 1.1.6
Listing raw device(s)
Device 0 (VID=1004 and PID=61f9) is a LG Electronics Inc. V909 G-Slate.
   Found 1 device(s):
   LG Electronics Inc.: V909 G-Slate (1004:61f9) @ bus 1, dev 3
Attempting to connect device(s)
ignoring libusb_claim_interface() = -6PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
Android device detected, assigning default bug flags
Error 1: Get Storage information failed.
Error 2: PTP Layer error 02fe: get_handles_recursively(): could not get object handles.
Error 2: Error 02fe: PTP: Protocol error, data expected
USB low-level info:
   bcdUSB: 512
   bDeviceClass: 0
   bDeviceSubClass: 0
   bDeviceProtocol: 0
   idVendor: 1004
   idProduct: 61f9
   IN endpoint maxpacket: 512 bytes
   OUT endpoint maxpacket: 512 bytes
   Raw device info:
      Bus location: 1
      Device number: 3
      Device entry info:
         Vendor: LG Electronics Inc.
         Vendor id: 0x1004
         Product: V909 G-Slate
         Vendor id: 0x61f9
         Device flags: 0x08008106
Configuration 0, interface 0, altsetting 0:
   Interface description contains the string "MTP"
   Device recognized as MTP, no further probing.


Se observarem bem, houve diferença na identificação do "productId", que no "jmtpfs" foi 61f1 e no "mtp-detect" foi 61f9, mas independente disso, adotei o valor obtido pelo "jmtpfs" para criar a seguinte regra do UDEV:

# LG L90.
SUBSYSTEM=="usb", ATTR{idVendor}=="0x1004", ATTR{idProduct}=="0x61f1", MODE="0600", OWNER="edps"

Então, se for do seu interesse, crie o arquivo /etc/udev/rules.d/51-android.rules, identifique seu dispositivo, copie o modelo acima e o modifique (além dos valores já citados, altere o owner "dono" para o seu login de usuário).

O seguinte modelo também foi utilizado e funcionou da mesma forma:

# LG L90.
SUBSYSTEM=="usb",
ATTR{idVendor}=="0x1004",
ATTR{idProduct}=="0x61f1", MODE="0666"

Independente do modelo seguido, ao final execute os seguintes comandos, dependendo da distribuição.

Debian e derivados:

# /etc/init.d/udev restart
# udevadm control --reload-rules

Ubuntu e derivados:

# service udev restart
# udevadm control --reload-rules

Slackware:

# /etc/rc.d/rc.udev force-reload
# udevadm control --reload-rules

Distros que usem Systemd:

# udevadm control --reload-rules

Se de cara não funcionar, reinicie o PC e veja se o dispositivo é reconhecido.

Problemas?

Sempre tem que ter, não é mesmo? Felizmente, meu smartphone LG L90 conectou fácil usando qualquer uma das regras, ficando o acesso de leitura e escrita ainda mais rápido; funcionando também no OpenBox, tendo em vista que já mandei o Xfce pro saco!

Mas infelizmente, aquele Razr D3, o qual foi motivo do outro artigo, não funcionou de jeito nenhum no Slackware Current, nem mesmo como root.

Sendo assim não garanto que isto vá funcionar para todos, mas uma coisa que garanto: se não quer ter problemas de montagens desses malditos aparelhos com Android, que use o KDE, GNOME3, Cinnamon, ambientes que sei que funcionam (embora não tenha certeza quanto ao GNOME3).

Embora essa seja uma possível solução, ainda assim recomendo a tentativa com o "jmtpfs", dica ainda não enviada ao VOL, mas disponível no endereço abaixo:
Em meu novo blog na dica original, estão disponíveis imagens de todos os processos. Aos interessados, segue o link:

Referências


Outras dicas deste autor

O Arch Linux e a autenticação de pacotes

Usando um arquivo como memória SWAP

sources.list para o Ubuntu 10.10 Maverick Meerkat

rTorrent atualizado no Debian

Fstab - Montando CD de instalação do Debian

Leitura recomendada

Debian com terminal realmente transparente

Deixando a área de trabalho animada com slides

Banco do Brasil no Ubuntu 10.04 (Sun Java funcionando)

Integrando o Firefox com o KDE4

Servidor Samba versão recente e protocolo LANMAN1

  

Comentários
[1] Comentário enviado por albfneto em 10/04/2015 - 12:44h

Muito bom, favoritado.
não uso slackware, mas vai que o problema ocorra no Sabayon,
bibliotecas, arquivos etc... podem ter nome parecido.
Benvindo em seu retorno, Edinaldo.
Gostei também de seu Blog Novo.
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux,Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva.

[2] Comentário enviado por edps em 10/04/2015 - 13:30h


[1] Comentário enviado por albfneto em 10/04/2015 - 12:44h

Muito bom, favoritado.
não uso slackware, mas vai que o problema ocorra no Sabayon,
bibliotecas, arquivos etc... podem ter nome parecido.
Benvindo em seu retorno, Edinaldo.
Gostei também de seu Blog Novo.
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux,Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, OpenSUSE, Mageia e OpenMandriva.


Obrigado amigo Alberto, o novo blog acho que ficou com uma "cara" mais limpa apenas com o conteúdo dos artigos como o principal e o menu lateral suspenso.

Estou re-enviando o convite a você para continua sendo autor lá no blog, um grande abraço!

[3] Comentário enviado por removido em 12/04/2015 - 20:06h

Aqui meu moto-g-2013 e o moto.g.2014 da patroa montam automaticamente no Mint, Ubuntu e Fedora.
Mas como disse o Alberto, fou favoritar e deixar na manga, pq vai que...

[4] Comentário enviado por edps em 12/04/2015 - 20:26h


Clodoaldo, recentemente instalei o Debian Jessie com Cinnamon e fiquei abestalhado porque um Debian montou todos os celulares daqui sem a necessidade de nenhuma feitiçaria! rsrs, então, se o Debian faz isso provavelmente o Ubuntu e o Mint farão melhor essas coisas básicas.

Estranhamente esse Slackware não montou o Motorola Razr D3 em nenhuma das alternativas, ams montou um LG467 (sei lá se é isso) sem sequer usar essa dica ou o script da dica lá do blog.

Ambientes mais minimalistas como o meu tendem a dar mais trabalho mesmo, por isso citei o KDE, Cinnamon.

[5] Comentário enviado por removido em 12/04/2015 - 21:24h

edps, desconfio que seja por causa do kernel mais novo, pq no ubuntu-12.04 o moto.g-2013 não montava nem a pau, mas do 13.10 em diante não tive problemas!

[6] Comentário enviado por edps em 12/04/2015 - 21:55h


[5] Comentário enviado por clodoaldops em 12/04/2015 - 21:24h

edps, desconfio que seja por causa do kernel mais novo, pq no ubuntu-12.04 o moto.g-2013 não montava nem a pau, mas do 13.10 em diante não tive problemas!


Nessa dica o kernel usado era o 3.14, agora estou usando o 3.19.3 que compilei, agora esse Razr D3 ao menos conecta como Câmera. No Debian independente do kernel usado e usando o script da dica do JMTPFS todos conectam normalmente.

[7] Comentário enviado por removido em 12/04/2015 - 22:24h

Talvez as modificações no android feitas pelos fabricantes de celulares tenham alguma influencia nisso. Hoje a Motorola entrega um "android puro", mas as outras como LG, Samsung e Sony entregam um android bastante modificado. É um mundo novo pra mim.

[8] Comentário enviado por edps em 12/04/2015 - 22:32h


[7] Comentário enviado por clodoaldops em 12/04/2015 - 22:24h

Talvez as modificações no android feitas pelos fabricantes de celulares tenham alguma influencia nisso. Hoje a Motorola entrega um "android puro", mas as outras como LG, Samsung e Sony entregam um android bastante modificado. É um mundo novo pra mim.


Eu só sei que essa praga de protocolo MTP ferrou meio mundo! antes era só plugar e acessar, agora contamos com a sorte ou escolhemos sistemas adequados.

Uma coisa que posso falar esses dispositivos funfam numa boa no Win8.1, até acessar o celular do PC (para fazer ligações) dá! pena que tirando essas facilidades é um sistema arrastado de pesado, nesse mesmo SAMSUNG ATIVBook Core i3 4GBs de RAM da minha filha o Mint 17 rodou igual a um foguete! rsrs, imagino um Debian ou Slackware?

[9] Comentário enviado por removido em 07/05/2016 - 00:42h

edps

Boa noite, quero agradecer a sua ajuda foi de muita valia. Estou com um D610 com Slackware 14.1 32 bits desenvolvendo em python Kivy Buildozer para android e so faltava conectar o Sony Xperia J com android 4.0. Agora fechou o Ambiente.
Muito obrigado por compartilhar o conhecimento.

OmaR

[10] Comentário enviado por edps em 08/05/2016 - 10:33h


[9] Comentário enviado por OmaRLuiZ em 07/05/2016 - 00:42h

edps

Boa noite, quero agradecer a sua ajuda foi de muita valia. Estou com um D610 com Slackware 14.1 32 bits desenvolvendo em python Kivy Buildozer para android e so faltava conectar o Sony Xperia J com android 4.0. Agora fechou o Ambiente.
Muito obrigado por compartilhar o conhecimento.

OmaR



Ok man, que bom ter sido útil.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts