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