2

我正在使用此代码来读取 linux 中的鼠标输入事件。

      #define MOUSEFILE "/dev/input/event13"

      if((fd = open(MOUSEFILE, O_RDONLY)) == -1) {
        perror("opening device");
        exit(EXIT_FAILURE);
      }

      while(read(fd, &ie, sizeof(struct input_event)))
      {

      }

我在终端中手动使用cat /proc/bus/input/devices来查找我连接的鼠标的事件 id,每次我重新启动 linux 时它都是不同的。有没有一种方法可以让我动态找到我连接的鼠标的事件 ID。

4

1 回答 1

2

您可以使用自定义 udev 规则保持相同的设备名称。参见这个例子。

基本上,只需在下面创建一个文件/etc/udev/rule.d,如下所示:

 KERNEL=="event*", SYSFS{manufacturer}=="Microsoft", SYSFS{idProduct}=="0023", NAME="input/mstrackball"

您可以在 sysfs 中找到产品 ID 和其他内容。

于 2012-08-29T08:58:18.630 回答