udevが私のキーボードをジョイスティックとして考えるようにルールを決めるのを手伝ってください。

udevが私のキーボードをジョイスティックとして考えるようにルールを決めるのを手伝ってください。

私はArchlinuxを実行していますが、何らかの理由で「Microsoft Wired Keyboard 600」がジョイスティックとキーボードで選択される奇妙な問題があります。

Note: Output trimmed
─$ xinput list
  Virtual core pointer                id=2[master pointer  (3)]
    ↳ Microsoft Wired Keyboard 600    id=9[slave  pointer  (2)]
  Virtual core keyboard               id=3[master keyboard (2)]
    ↳ Microsoft Wired Keyboard 600    id=8[slave  keyboard (3)]

問題は、ゲームをプレイするときに使用するXbox360コントローラがあり、もう1つはコントローラがあることです。「操縦間」めちゃくちゃになる

回避策がありますが、使用するのは受動的で面倒です。

sudo chmod 0000 /dev/input/event1 /dev/input/js0
sudo setfacl -b /dev/input/event1 /dev/input/js0

これで、デバイスを接続または切断するなどの作業を実行するようにudevルールを設定できることがわかりました。そして動作させようとしましたが、パニックになりました。

このキーボードのジョイスティック部分が表示されていないことを願っていますが、/dev/inputキーボードは機能し続けます。

以下はこのキーボードの一部の出力ですudevadm。誰かが私を助けてくれたらとても感謝します。

本物のキーボード

─$ udevadm info --query=all --name=/dev/input/event0                                                                            1 ↵
P: /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/0003:045E:0750.0007/input/input23/event0
N: input/event0
S: input/by-id/usb-Microsoft_Wired_Keyboard_600-event-kbd
S: input/by-path/pci-0000:00:1a.0-usb-0:1:1.0-event-kbd
E: DEVLINKS=/dev/input/by-path/pci-0000:00:1a.0-usb-0:1:1.0-event-kbd /dev/input/by-id/usb-Microsoft_Wired_Keyboard_600-event-kbd
E: DEVNAME=/dev/input/event0
E: DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.0/0003:045E:0750.0007/input/input23/event0
E: ID_BUS=usb
E: ID_INPUT=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_MODEL=Wired_Keyboard_600
E: ID_MODEL_ENC=Wired\x20Keyboard\x20600
E: ID_MODEL_ID=0750
E: ID_PATH=pci-0000:00:1a.0-usb-0:1:1.0
E: ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_1_0
E: ID_REVISION=0110
E: ID_SERIAL=Microsoft_Wired_Keyboard_600
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030101:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_VENDOR=Microsoft
E: ID_VENDOR_ENC=Microsoft
E: ID_VENDOR_ID=045e
E: LIBINPUT_DEVICE_GROUP=3/45e/750/111:usb-0000:00:1a.0-1
E: MAJOR=13
E: MINOR=64
E: SUBSYSTEM=input
E: USEC_INITIALIZED=4429367119

面白いゴーストジョイスティック

─$ udevadm info --query=all --name=/dev/input/event1
P: /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.1/0003:045E:0750.0008/input/input24/event1
N: input/event1
S: input/by-id/usb-Microsoft_Wired_Keyboard_600-if01-event-joystick
S: input/by-path/pci-0000:00:1a.0-usb-0:1:1.1-event-joystick
E: DEVLINKS=/dev/input/by-id/usb-Microsoft_Wired_Keyboard_600-if01-event-joystick /dev/input/by-path/pci-0000:00:1a.0-usb-0:1:1.1-event-joystick
E: DEVNAME=/dev/input/event1
E: DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1:1.1/0003:045E:0750.0008/input/input24/event1
E: ID_BUS=usb
E: ID_FOR_SEAT=input-pci-0000_00_1a_0-usb-0_1_1_1
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_INPUT_KEY=1
E: ID_INPUT_KEYBOARD=1
E: ID_MODEL=Wired_Keyboard_600
E: ID_MODEL_ENC=Wired\x20Keyboard\x20600
E: ID_MODEL_ID=0750
E: ID_PATH=pci-0000:00:1a.0-usb-0:1:1.1
E: ID_PATH_TAG=pci-0000_00_1a_0-usb-0_1_1_1
E: ID_REVISION=0110
E: ID_SERIAL=Microsoft_Wired_Keyboard_600
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030101:030000:
E: ID_USB_INTERFACE_NUM=01
E: ID_VENDOR=Microsoft
E: ID_VENDOR_ENC=Microsoft
E: ID_VENDOR_ID=045e
E: LIBINPUT_DEVICE_GROUP=3/45e/750/111:usb-0000:00:1a.0-1
E: MAJOR=13
E: MINOR=65
E: SUBSYSTEM=input
E: TAGS=:seat:uaccess:
E: USEC_INITIALIZED=4429367514

ベストアンサー1

おすすめ記事