Como resolver libusb error no Heimdall
Este artigo ensinará como resolver o erro de conexão libusb error no Heimdall (equivalente open source do Odin para acesso a dispositivos móveis). Como localizei várias pessoas sem solução fora do Brasil, resolvi fazer uma versão em inglês.
Sobre o Heimdall
O Heimdall é uma solução open source alternativa ao Odin, para comunicação com dispositivos moveis. Por meio deles é possível substituir Recovery e ROM por meio do Modo Download do seu celular. Já para alterações pelo Modo Recovery, é necessário outros aplicativos como o ADB e o Fastboot. Saiba mais sobre o Heimdall aqui:
O Heimdall de algumas versões mais recentes de Linux têm apresentado a seguinte mensagem de erro quando se tenta comunicar com o celular:
A seguir, vamos ver como solucionar o problema que têm causado muita perturbação aos usuários do Heimdall.
lsusb
Serão listados os dispositivos anexados. Localize seu celular e veja qual o número equivalente ao "Bus" (em verde) e "Device" (em amarelo). Em seguida, faz-se necessário mudar a permissão de acesso do dispositivo móvel. Felizmente o Linux, não tem a desgraça do Windows chamada Registro. Todas as configurações no Linux estão, felizmente, localizadas em arquivos. Então é apenas uma questão de localizar o arquivo correto e alterar sua permissão de acesso. Para saber onde está o arquivo que se refere ao dispositivo móvel, devemos recorrer ao Bus e ao Device localizados anteriormente.
Os dispositivos usb estão contidos em diretórios que se localizam em /dev/bus/usb/.
Portanto, para saber qual o diretório, devemos nos ater ao número de "Bus" . No nosso caso, é o 003.
E para saber o arquivo equivalente ao dispositivo devemos nos ater ao "Device". No nosso caso é o 012.
Com estes dados, podemos saber as permissões de acesso do arquivo pelo comando:
ls -la /dev/bus/usb/<bus>/<device>
No nosso caso:
ls -la /dev/bus/usb/003/012
Nos será retornado:
crw-rw-r-- 1 root root 189, 257 Mar 12 06:46 012
Para entender mais sobre permissões de arquivo, acesse:
Para alterar a permissão de acesso, digite:
sudo chmod 666 /dev/bus/usb/<bus>/<device>
No nosso caso:
sudo chmod 666 /dev/bus/usb/003/012
Verificando novamente a permissão de acesso pelo comando:
ls -la /dev/bus/usb/<bus>/<device>
No nosso caso:
ls -la /dev/bus/usb/003/012
Teremos:
crwxrwxrwx 1 root root 189, 257 Mar 12 06:46 012
E, agora, a comunicação do Heimdall com o celular deve funcionar.
libusb error
O libusb é uma biblioteca em C que possibilita fácil acesso de aplicações a dispositivos USB com diferentes sistemas operacionais sendo, portanto, parte importante do processo de utilização do Heimdall. Veja mais sobre libusb abaixo:O Heimdall de algumas versões mais recentes de Linux têm apresentado a seguinte mensagem de erro quando se tenta comunicar com o celular:
Failed to access device. libusb error: -12Este erro é resultado de um problema de permissão de acesso ao dispositivo móvel (celular ou tablet).
A seguir, vamos ver como solucionar o problema que têm causado muita perturbação aos usuários do Heimdall.
Resolvendo o problema
Supondo que seu dispositivo móvel está conectado ao PC via cabo USB, deve-se abrir o terminal (linha de comando) e, em seguida digitar o comando:lsusb
Serão listados os dispositivos anexados. Localize seu celular e veja qual o número equivalente ao "Bus" (em verde) e "Device" (em amarelo). Em seguida, faz-se necessário mudar a permissão de acesso do dispositivo móvel. Felizmente o Linux, não tem a desgraça do Windows chamada Registro. Todas as configurações no Linux estão, felizmente, localizadas em arquivos. Então é apenas uma questão de localizar o arquivo correto e alterar sua permissão de acesso. Para saber onde está o arquivo que se refere ao dispositivo móvel, devemos recorrer ao Bus e ao Device localizados anteriormente.
Os dispositivos usb estão contidos em diretórios que se localizam em /dev/bus/usb/.
Portanto, para saber qual o diretório, devemos nos ater ao número de "Bus" . No nosso caso, é o 003.
E para saber o arquivo equivalente ao dispositivo devemos nos ater ao "Device". No nosso caso é o 012.
Com estes dados, podemos saber as permissões de acesso do arquivo pelo comando:
ls -la /dev/bus/usb/<bus>/<device>
No nosso caso:
ls -la /dev/bus/usb/003/012
Nos será retornado:
crw-rw-r-- 1 root root 189, 257 Mar 12 06:46 012
Para entender mais sobre permissões de arquivo, acesse:
- Entendendo as permissões de arquivos no Linux [Dica]
- Entendendo as permissões de arquivos (chmod) [Artigo]
- Entendendo as permissões no Linux [Artigo]
Para alterar a permissão de acesso, digite:
sudo chmod 666 /dev/bus/usb/<bus>/<device>
No nosso caso:
sudo chmod 666 /dev/bus/usb/003/012
Verificando novamente a permissão de acesso pelo comando:
ls -la /dev/bus/usb/<bus>/<device>
No nosso caso:
ls -la /dev/bus/usb/003/012
Teremos:
crwxrwxrwx 1 root root 189, 257 Mar 12 06:46 012
E, agora, a comunicação do Heimdall com o celular deve funcionar.
Eu uso a libusb para conectar scanners Epson sem drivers no Linux.
A configuração vai no arquivo /etc/fstab.
A coisa é montada como uma espécie de sistema de arquivos.
E depois configura-se outro arquivo para localizar o scanner.
----------------------------------------------------------------------------------------------------------------
http://24.media.tumblr.com/tumblr_m62bwpSi291qdlh1io1_250.gif
Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden