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 に答える