![如何为蓝牙游戏手柄建立 udev 规则?(Lic Pro Controller)](https://linux22.com/image/922268/%E5%A6%82%E4%BD%95%E4%B8%BA%E8%93%9D%E7%89%99%E6%B8%B8%E6%88%8F%E6%89%8B%E6%9F%84%E5%BB%BA%E7%AB%8B%20udev%20%E8%A7%84%E5%88%99%EF%BC%9F%EF%BC%88Lic%20Pro%20Controller%EF%BC%89.png)
我正在尝试让获得许可的 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
,所以不知道可以接受哪些选项和参数。有什么想法可以让它发挥作用吗?
我认为,使用游戏手柄来控制屏幕上的指针可能是个不错的开始。