如何为蓝牙游戏手柄建立 udev 规则?(Lic Pro Controller)

如何为蓝牙游戏手柄建立 udev 规则?(Lic Pro Controller)

我正在尝试让获得许可的 Pro Controller 与 Steam 配合使用,但似乎缺少正确的udev规则。

bluetoothctl提供以下信息:

Device 00:0B:E4:7E:64:7E (public)
    Name: Lic Pro Controller
    Alias: Lic Pro Controller
    Class: 0x00002508
    Icon: input-gaming
    Paired: yes
    Trusted: yes
    Blocked: no
    Connected: yes
    LegacyPairing: no
    UUID: Service Discovery Serve.. (00001000-0000-1000-8000-00805f9b34fb)
    UUID: Human Interface Device... (00001124-0000-1000-8000-00805f9b34fb)
    UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
    Modalias: usb:v0000p0000d0001
    RSSI: -35

因此,根据最新情况,99-steam-controller-perms.rules我尝试在同一个文件中添加这样的规则:

KERNEL=="hidraw*", SUBSYSTEM=="input", ATTRS{name}=="Lic Pro Controller", MODE="0666", TAG+="uaccess", ENV{ID_INPUT_JOYSTICK}="1"

evtest向我展示了这个:

Available devices:
/dev/input/event16: Lic Pro Controller
Select the device event number [0-16]: 16
Input driver version is 1.0.1
Input device ID: bus 0x5 vendor 0x0 product 0x0 version 0x1
Input device name: "Lic Pro Controller"
Supported events:
[events and test output omitted but functional]

运行时udevadm info --query=all --path=(udevadm info --query=path --name=/dev/input/event16)显示:

P: //devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/bluetooth/hci0/hci0:2/0005:0000:0000.0002/input/input21/event16
N: input/event16
L: 0
E: DEVPATH=//devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/bluetooth/hci0/hci0:2/0005:0000:0000.0002/input/input21/event16
E: DEVNAME=/dev/input/event16
E: MAJOR=13
E: MINOR=80
E: SUBSYSTEM=input
E: USEC_INITIALIZED=356433443
E: ID_INPUT=1
E: ID_INPUT_JOYSTICK=1
E: ID_BUS=bluetooth
E: ID_INPUT_JOYSTICK_INTEGRATION=external
E: ID_PATH=pci-0000:00:14.0-usb-0:5:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_5_1_0
E: ID_FOR_SEAT=input-pci-0000_00_14_0-usb-0_5_1_0
E: LIBINPUT_DEVICE_GROUP=5/0/0:58:00:e3:af:f3:d4
E: TAGS=:seat:uaccess:

不幸的是,Steam 仍然无法识别该控制器,并且syslog在连接时显示以下信息:

Mar 15 11:12:29 e5 systemd[2268]: Started Bluetooth OBEX service.
Mar 15 11:13:10 e5 bluetoothd[803]: Can't get HIDP connection info
Mar 15 11:13:10 e5 kernel: [  355.858048] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
Mar 15 11:13:10 e5 kernel: [  355.858059] Bluetooth: HIDP socket layer initialized
Mar 15 11:13:11 e5 kernel: [  356.178027] hid-generic 0005:0000:0000.0002: unknown main item tag 0x0
Mar 15 11:13:11 e5 kernel: [  356.178291] input: Lic Pro Controller as /devices/pci0000:00/0000:00:14.0/usb1/1-5/1-5:1.0/bluetooth/hci0/hci0:2/0005:0000:0000.0002/input/input21
Mar 15 11:13:11 e5 kernel: [  356.178842] hid-generic 0005:0000:0000.0002: input,hidraw1: BLUETOOTH HID v0.01 Gamepad [Lic Pro Controller] on 58:00:e3:af:f3:d4
Mar 15 11:13:11 e5 wpa_supplicant[826]: wlp2s0: CTRL-EVENT-SIGNAL-CHANGE above=1 signal=-48 noise=-54 txrate=1000
Mar 15 11:13:11 e5 systemd-udevd[4331]: Process '/usr/bin/jscal-restore /dev/input/js0' failed with exit code 1.
Mar 15 11:13:11 e5 /usr/lib/gdm3/gdm-x-session[2291]: (II) config/udev: Adding input device Lic Pro Controller (/dev/input/js0)
Mar 15 11:13:11 e5 /usr/lib/gdm3/gdm-x-session[2291]: (II) No input driver specified, ignoring this device.
Mar 15 11:13:11 e5 /usr/lib/gdm3/gdm-x-session[2291]: (II) This device may have been added with another device file.

我对规则还不熟悉udev,所以不知道可以接受哪些选项和参数。有什么想法可以让它发挥作用吗?

我认为,使用游戏手柄来控制屏幕上的指针可能是个不错的开始。

相关内容