Usando o gamepad para desligar/reiniciar o Raspberry Pi pelo ADVMENU

Um problema encontrado para quem montou seu arcade usando o advmenu e não usou teclado é como desligar o Raspberry PI (sudo halt) sem ter um teclado físico disponível. É isso mesmo, desligar sem ter como digitar nenhum comando.

Meu pequeno MameDevice (aceito sugestões para nome) não tem um teclado acoplado, usei apenas dois gamepads USB no estilo ‘Snes’. Desligar o Pi retirando da tomada é uma operação arriscada que poderia corromper seus arquivos, tornando-o inutilizável até você preparar outro cartão SD. E de nada adianta deixar o cartão SD como read-only, o leitor de cartão do PI simplesmente ignora essa característica física na leitura.

Uma alternativa é modificar o advmenu mas eu ainda não tive tempo para descobrir como fazer isso no código. Então fica para uma outra vez.

Uma opção interessante é enganar o Advmenu fazendo ele pensar que o bash é um emulador, e criar alguns arquivos de uma linha (como se fossem roms) e disponibilizar essas roms como ‘jogos’ de um emulador. Simples e funcional.

Vamos neste exemplo criar duas funcionalidades desejadas – HALT e REBOOT. A primeira desliga o PI e a segunda reinicia o danado.

Crie as seguintes pastas na sua home

pi@raspberry ~ $ mkdir util
pi@raspberry ~ $ mkdir util/script
pi@raspberry ~ $ mkdir util/snap

dessa forma temos as pastas ~/util/script e ~/util/snap onde ficaram respectivamente os scripts e as imagens que serão usadas como snapshots. Dentro da pasta ~/util/script crie dois arquivos chamados halt e reboot

pi@raspberry ~/util/script $ cat > halt
sudo halt

E digite Ctrl-z para salvar o arquivo. Você verá que um arquivo foi criado na pasta desejada. O que fizemos foi capturar a entrada pelo teclado para um arquivo, o equivalente no DOS a copy con

Faça a mesma coisa com o arquivo reboot

pi@raspberry ~/util/script $ cat > reboot
sudo reboot

Não se esqueça de terminar o arquivo com ctrl+z. Neste momento você deve ter os dois arquivos já prontos na sua pasta util, cada um com apenas uma linha dentro.

Agora vamos dizer para o advmenu que estes arquivos são roms que serão executadas pelo nosso emulador bash. Bom, você deve saber que é o bash, certo ? Caso não saiba, digamos assim, é o prompt de comando do Linux. Meu Deus, jamais me perdoarei por ter escrito isso …

Vá na pasta onde o seu arquivo de configuração do advmenu se encontra e edite-o com seu editor de preferência (eu uso o joe´s own editor que tem sintaxe igual a do saudoso Wordstar) e acrescente as seguintes linhas

emulator "Util" generic "/bin/bash" "%p"
emulator_roms "Util" "/home/pi/util/script"
emulator_altss "Util" "/home/pi/util/snap"

Não se esqueça de salvar antes de sair (no joe é ctrl+K+X) e pronto. Execute o advmenu e selecione a opção F6 – Você verá um novo emulador disponível chamado Util com as seguintes roms disponíveis – HALT e REBOOT.

Movimente o cursor com seu gamepad e selecione uma das opções. Se você quiser desligar seu console, a opção HALT o fará de forma correta, evitando maiores problemas com as partições do seu cartão de memória.

Você pode aproveitar e fazer uns snapshots para suas telas com o nome da halt.png e reboot.png e decorar o advmenu de forma bacaninha.

Através desse método é possivel realizar uma séria de comandos que você achar necessário, como no meu caso eu aproveitei e também criei uma opção para o próprio bash. O que é um contra-senso, afinal o objetivo é sempre se usar do gamepad para qualquer atividade. Mas deixe lá, afinal de contas, nem tudo precisa fazer sentido sempre.

Segue abaixo como ficou o resultado final. Eu ainda fiz umas telinhas meio mais-ou-menos para decorar. Dá pro gasto

Advmenu e os excelentes jogos 'bash', 'halt' e 'reboot'.
Advmenu e os excelentes jogos ‘bash’, ‘halt’ e ‘reboot’.

Bom, é isso ai. Boa sorte para vocês.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s