“绑定”USB 键盘专用于特定应用程序

m.s*_*.sr 10 linux headless keyboard

我拥有的:

  • 没有显示器、键盘、没有 X 运行的 Linux 机器(debian stable)
  • USB 设备,其作用类似于 USB 键盘(如许多条码阅读器 [1])

我(不)想要的:

  • 我只想将此设备用于一个特定的应用程序。
  • 我不想让这个设备干扰例如login启动后的进程或其他任何事情——除了一个应用程序。
  • 无论如何,我希望能够插入一个普通的旧 USB 键盘并按原样使用它 - 与可能连接或未连接多少上述其他 USB 设备无关。

我(不)知道的:

  • 我找到了一些示例代码,关于如何直接从事件设备读取,如果需要,可以在我的应用程序中使用它。
  • 我不知道,除了这个特定的应用程序,如何禁用整个系统的特定键盘?这甚至可能吗?

感谢您的任何提示......!

[1] 当设备读取条形码时,它会在单次按键时发送检测到的代码并提交return.

Jan*_*nen 3

一个具有挑战性且有趣的问题!

我认为udev也许有能力做到这一点。创建一个文件/etc/udev/rules.d/99-barcode-reader.rules并放入与此类似的内容:

ACTIONS!="add", GOTO="barcode_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_barcode_application &'"
LABEL="barcode_end"
Run Code Online (Sandbox Code Playgroud)

将“dead”和“beef”替换为 idVendor 和 idProduct 获得的值lsusb

重新启动udevd或简单地重新启动您的服务器,看看会发生什么。