Use / Agarre o único teclado sem nenhum usuário logado localmente

1

Eu tenho um raspberry pi rodando algum software (eu tenho a fonte) que precisa da interação do usuário e tem um teclado especial (USB) com apenas 3 teclas. O programa é executado no framebuffer (SDL) e é lançado remotamente; Eu preciso deste programa para reagir às teclas pressionadas, mas parece impossível se o usuário não estiver logado localmente.

O que posso fazer? A solução não deve usar muitos recursos e o atraso deve estar dentro de 300 ms.

O caso de uso típico é um pressionamento de tecla a cada 10 minutos ao longo de 4 a 8 horas, mas pode ser tão frequente quanto uma tecla pressionada a cada 2 segundos (altamente improvável). Isso tudo funciona em cima do raspbian, eu tenho acesso root.

    
por David Ventura 02.12.2014 / 23:35

2 respostas

0

Resolvi isso lendo o dispositivo de entrada bruto e analisando-o de forma semelhante ao link

    
por 04.12.2014 / 05:42
1

Instale o openssh-server (no RPi)

apt-get install openssh-server

Você pode querer usar ssh com a opção -X (de outro host)

ssh -X <username>@<IP_of_Rasperry_Pi>
[Enter password when prompted]

Uma vez que você está conectado, seu prompt deve ter mudado para o que você veria quando estivesse logado localmente no pi de framboesa.

Após conectar-se, execute epiphany & para executar o navegador padrão incluído no Raspbian e exibi-lo na máquina do cliente (não no Raspberry Pi) e navegue até o site que executa o programa em questão e abra-o .

Você pode anexar um teclado [normal] ao Pi e alternar para o modo multiusuário (sem gráficos) pressionando Ctrl + Alt + F1 , efetuando login como root e digitando pkill X (sim, o X precisa ser capitalizado ) no tty para matar a GUI no display diretamente conectado ao pi (economiza recursos do sistema). Então você pode ssh para ele (não esqueça a opção -X ) e abra o navegador (como antes). Ou, em vez de anexar um teclado, você também pode usar o ssh (sem a chave -X ) para matar o servidor X. Uma coisa a notar, este comando irá matar todas as sessões X em execução no pi, incluindo qualquer que você possa estabelecer com o ssh.

Isso só funcionará se as chaves puderem ser mapeadas para o programa através do teclado usado na conexão remota.

Para configurar a GUI para não aparecer na inicialização [localmente no RPi], use o comando sudo raspi-config e siga as instruções dadas aqui: link

Espero que isso ajude a resolver seu problema.

    
por 03.12.2014 / 03:44