[BUG] Erro ao utilizar a interface GPIO

#1

Estou fazendo os primeiros testes com meu Labrador, e encontrei o erro ao dar o comando:

$ gpio readall

wiringPiSetup: mmap (GPIO) failed: Operation not permitted

Como posso fazer para habilitar o acesso ao GPIO?

Obs: Tive esse mesmo erro ao tentar utilizar qualquer comando direcionado ao GPIO.

1 Like
#2

Oi Asafe, então, analisamos aqui e realmente encontramos um bug de conflito entre a biblioteca wiringK9 e o driver de temperatura da CPU que está instalado por padrão no sistema. :pensive:
Já estamos vendo se conseguimos corrigir isso logo, por enquanto deixo aqui duas possibilidades para você corrigir o problema e utilizar o wiringK9.

Instalar uma versão anterior do sistema :

Para isto, basta fazer o download da versão anterior neste link (já chequei e está funcionando o wiringK9 nesse). E seguir o tutorial de troca de sistemas que está na wiki Instalando um sistema.

Trocar o Kernel do Linux

Pra isso você pode baixar somente os arquivos do kernel e seguir esse tutorial ótimo escrito pelo @thalyson:

  • Criar diretório e montar partição
sudo mkdir /media/caninos/BOOT
sudo mount /dev/mmcblk2p1 /media/caninos/BOOT
  • Copiar “kernel.dtb” e “uImage” para a raíz da partição BOOT
sudo cp -r /src/kernel.dtb /media/caninos/BOOT
sudo cp -r /src/uImage /media/caninos/BOOT
  • Copiar “lib/modules” para “lib/modules” da partição SYSTEM:
sudo cp -r /src/lib/modules /lib/
  • Criar arquivo e adicionar linha “blacklist labrador_s500_thermal” em “/etc/modprobe.d/blacklist.conf”
sudo su
echo "blacklist labrador_s500_thermal" >> /etc/modprobe.d/blacklist.conf"
  • Desmontar partição e excluir diretório
sudo sync
sudo umount /media/caninos/BOOT
sudo rm -r /media/caninos/BOOT/
  • Reiniciar a Labrador
sudo reboot

Obs: “src” é o diretório fonte onde está o kernel a ser instalado

Espero que isso resolva seu problema e quando tiver mais atualizações da correção do wiringK9 aviso aqui! :wink:

3 Likes
#3

Olá Augusto, muito obrigado pela resposta.

Fui executar os comando que você disponibilizou e encontrei alguns erros:

1 - Não existia o diretório ‘/media/caninos/BOOT’. Mas isso não foi problema, acabei criando e colando os arquivos lá.

2 - Não existe a pasta ‘lib/modules’ no arquivo do link que foi disponibilizado, só existem os arquivos:
asf

Consequentemente por não haver os arquivos da ‘lib’, não foi resolvido o problema do GPIO

#4

Olá Asafe, está certo, o diretório não é criado por padrão, já adicionei os comandos para criar e depois apagar o diretório no tutorial.

A pasta /lib/modules não estava mesmo no link, foi um erro de compactação, já corrigi agora para o link correto. Aqui está o arquivo certo.

1 Like
#5

Maravilha Augusto, funcionou aqui. Muito obrigado.

Consegui fazer alguns testes, e consegui fazer funcionar tanto por script quanto por shell.

Só encontrei um problema, que foi o comando “gpio readall”.

Ele retorna:

root@debian-armhf:/home/caninos/Desktop# gpio readall
Oops - unable to determine board type... model: 5

Sabe se posso fazer algo por aqui para resolver esse problema?

#6

Olá, @asafedainez. O WiringK9 foi atualizado há pouco tempo e o comando gpio readall agora funciona. Faça os seguintes passos para atualizá-lo:

cd ~/wiringK9
sudo ./build uninstall
sudo ./build clean
cd ..
sudo rm -r ~/wiringK9
git clone https://github.com/caninos-loucos/wiringK9.git
cd wiringK9
chmod +x ./build
sudo ./build

Agora o comando deve funcionar :wink: