linux - 如何在 Ubuntu Jaunty 下从 HID 设备读取事件?

标签 linux keyboard mouse usb hid

我有一个 Linux USB HID 设备(一个 Hama MCE ),我可以通过读取 cat /dev/input/event7 来手动读取它的事件和 cat /dev/input/event8 .每当我按下设备上的一个键时,就会有几个字节可用于读取 cat 之一。上面的命令。我在机器上默认安装了 Ubuntu Jaunty 64 位桌面。

我想我可以编写一个解析器来解释设备发出的字节,或者我将使用 libhid如果更方便的话。

我的问题是:

  • 如何防止文本模式虚拟控制台接收设备上的某些按键作为正常按键?到目前为止,某些设备键会产生 Enter、BackSpace、PageUp 或数字键盘数字。
  • 同样,如何防止 X 服务器从该设备接收键盘和鼠标事件?我有几个 USB 键盘和鼠标连接到计算机。我希望 X 服务器从所有这些设备接收事件,除了这个设备。
  • 如何设置,每当设备连接到计算机时,命令 /usr/local/bin/keydumper /dev/input/event7 /dev/input/event8 (或每个 /dev/ 路径的一个命令)将使用正确的 /dev/ 运行。在命令行中替换的路径?
  • 最佳答案

    根据 Linux USB HID 驱动程序开发人员的回答回答我自己的问题:

    问题 1. 和 2.:做

    ioctl(open("/dev/input/event7", O_RDONLY), EVIOCGRAB, 1);
    

    只要这个文件句柄是打开的,生成的事件只会去
    到这个文件句柄(而不是同一设备的其他 open()s 或
    系统键盘或鼠标事件池)。最多一个进程可以持有一个
    一次在 HID 设备上成功 EVIOCGRAB。可以配置 Lirc
    做一个 EVIOCGRAB。

    问题 3:配置 udev 以在设备连接后启动程序。

    关于linux - 如何在 Ubuntu Jaunty 下从 HID 设备读取事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1521986/

    相关文章:

    linux - 来自 shell 脚本的后台 rsync 和 pid

    c - 在Linux上的Assembly 64中实现strcmp功能

    linux - 如何将 `chmod -R +w` 与 Ant、文件和文件夹一起使用?

    ios - 禁用 iOS5 键盘中的拆分选项

    javascript - JS onMouseDown 和 onMouseUp 事件 Safari iPhone : can not make them working

    java - 在Java中按下鼠标时捕获鼠标移动

    linux - 来自 Linux 主机或 Windows 主机的 USB 设置请求不同

    iphone - 获取iPhone GO按钮以提交表单

    多媒体键的 Java 接口(interface)

    windows - Windows 便签中的鼠标滚动