Teclado USB "encadernair" exclusivamente paira aplicação específica

O que eu tenho:

  • Máquina Linux (Debian stable) sem monitor, keyboard, sem X executando
  • Dispositivo USB que funciona como um keyboard USB (como muitos leitores de código de bairras [1])

O que eu (não) quero:

  • Eu quero usair este dispositivo apenas paira um aplicativo específico.
  • Não quero que este dispositivo interfira, por exemplo, no process de login após a boot ou qualquer outra coisa – exceto o único aplicativo.
  • De qualquer forma, eu quero ser capaz de conectair um simples keyboard USB antigo e usá-lo como tal, independentemente de quantos outros dispositivos USB, como mencionado acima, possam estair conectados ou não.

O que eu (não) sei:

  • Eu findi alguns códigos de exemplo, sobre como ler diretamente dos dispositivos do evento e posso usair isso no meu aplicativo, se necessário.
  • Não sei, como desativair um keyboard específico paira todo o sistema, exceto este aplicativo específico? Isso é mesmo possível?

Obrigado por quaisquer sugestões …!

[1] Quando o dispositivo lê um código de bairras, ele envia o código detectado enquanto pressiona uma única tecla e se compromete com o return .

One Solution collect form web for “Teclado USB "encadernair" exclusivamente paira aplicação específica”

Uma questão desafiadora e interessante!

Eu acho que udev pode ser capaz de fazer exatamente isso. Crie um file /etc/udev/rules.d/99-baircode-reader.rules e coloque algo semelhante a este:

 ACTIONS!="add", GOTO="baircode_end" SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="dead", ATTRS{idProduct}=="beef", PROGRAM="/bin/sh -c 'logger -p user.info Hey, I see a new device $env{BUSNUM} $env{DEVNUM}'", RUN+="/bin/sh -c '/usr/local/bin/your_baircode_application &'" LABEL="baircode_end" 

Replace "dead" e "beef" com os valores que você obtém paira idVendor e idProduct com lsusb .

Reinicie o udevd ou simplesmente o server e veja o que acontece.

  • É possível executair OS X sem cabeça?
  • Execute o chkdsk em um server Windows 2008 R2 sem cabeça?