![Linux 设备功能/位域如何/在哪里设置?](https://linux22.com/image/57932/Linux%20%E8%AE%BE%E5%A4%87%E5%8A%9F%E8%83%BD%2F%E4%BD%8D%E5%9F%9F%E5%A6%82%E4%BD%95%2F%E5%9C%A8%E5%93%AA%E9%87%8C%E8%AE%BE%E7%BD%AE%EF%BC%9F.png)
我有一个具有以下输出的设备/proc/bus/input/devices
:
I: Bus=0003 Vendor=05b8 Product=3280 Version=0111
N: Name="PixArt USB Optical Mouse"
P: Phys=usb-0000:00:1a.0-1.1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input89
U: Uniq=
H: Handlers=mouse3 event5
B: PROP=0
B: EV=17
B: KEY=ff0000 0 0 0 0
B: REL=103
B: MSC=10
这些位域(KEY、REL 等)在哪里设置?
环顾 Linux 源代码,看起来特定的驱动程序设置了位字段。但是,为此设备安装的模块是 hid_generic 1,它几乎不执行任何操作。
我想还有另一个驱动程序正在监听鼠标。是鼠标开发吗?它正在创建一个名为/dev/input/mouse3
.看来 mousedev 需要先设置位域,然后才能确定它是与鼠标设备匹配的驱动程序。
脚注
1 - 我如何知道 hid_generic 正在被使用
dmesg
当我插入鼠标时输出:
[272055.191824] usb 1-1.1: new low-speed USB device number 23 using ehci-pci
[272055.288221] usb 1-1.1: New USB device found, idVendor=05b8, idProduct=3280
[272055.288232] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[272055.288238] usb 1-1.1: Product: USB Optical Mouse
[272055.288243] usb 1-1.1: Manufacturer: PixArt
[272055.291101] input: PixArt USB Optical Mouse as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input88
[272055.291774] hid-generic 0003:05B8:3280.004A: input,hidraw2: USB HID v1.11 Mouse [PixArt USB Optical Mouse] on usb-0000:00:1a.0-1.1/input0
提到了注释hid-generic
。我可以通过运行sudo rmmod hid_generic
然后拔出并重新插入设备来进一步验证这一点。sudo lsmod | grep hid_generic
显示它已恢复。