在 Linux 中,非鼠标/键盘 USB 外围设备(例如扫描仪上的按钮)的输入事件发送到哪里?

在 Linux 中,非鼠标/键盘 USB 外围设备(例如扫描仪上的按钮)的输入事件发送到哪里?

当我插入鼠标或键盘等设备时,它会显示为一个条目/dev/input/by-id,我可以从该条目中读取字节以查看发生了哪些输入事件,例如击键和按钮单击。

我有一台 ES-50 USB 扫描仪,上面有一个大按钮。通常按下这个按钮可以开始扫描页面,但在 Linux 上它什么也不做。我假设输入事件某处在操作系统中。我该如何监视该事件并像处理一样处理它/dev/input

如果这有任何相关性,我确实安装了此扫描仪的驱动程序并且可以使用。但是我必须从命令行启动扫描,这并不理想。

谢谢!

答案1

很可能什么地方都没有。如果内核实际上知道如何从“扫描仪”位中解复用内核“输入”事件,那么您将只拥有内核“输入”事件 - 如果整个扫描仪驱动程序都在通过原始 USB 直接与设备通信的用户空间程序中,则不会发生这种情况,我相信大多数都是这样做的。

(据我所知,内核中没有“扫描仪”设备子系统......)

在这种情况下,内核不知道发生了什么,扫描软件(SANE)将需要发起这些事件。它可以通过 uinput 发出虚拟输入事件,但据我所知,SANE 不会这样做。

(注意:我从未使用过 SANE,因为它还不支持我的扫描仪。)

相关内容