我正在运行 Arch Linux,我的鼠标(Logitech MX518 游戏鼠标)出现问题。我想降低它的轮询率。目前,它每 1 毫秒轮询一次,这会导致大多数应用程序中的 CPU 使用率更高,并且对于我的用例来说有点过头了。我通过分析输出确定轮询率为 1 毫秒cat /sys/kernel/debug/usb/devices
:
T: Bus=02 Lev=04 Prnt=09 Port=02 Cnt=02 Dev#= 11 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=046d ProdID=c08e Rev=40.00
S: Manufacturer=Logitech
S: Product=MX518 Gaming Mouse
S: SerialNumber=0C6338513038
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=300mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=1ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=82(I) Atr=03(Int.) MxPS= 20 Ivl=1ms
具体来说,Ivl=1ms
显示它每 ms 轮询一次,也使用evhz
可以报告鼠标轮询速率的工具进行了验证。我已修改内核参数以设置固定鼠标轮询速率,方法是添加usbhid.mousepoll=8
。事实上,重新启动后,似乎驱动程序参数设置正确:
$ systool -m usbhid -A mousepoll
Module = "usbhid"
mousepoll = "8"
之前,mousepoll 设置为0
,表示“自动”,8
应该表示每 8ms 轮询一次,这与我旧鼠标的轮询率相同。但是,鼠标仍然每 ms 轮询一次;evhz 显示轮询频率为 1000Hz,并且 的输出cat /sys/kernel/debug/usb/devices
与以前相同。换句话说,设置内核参数没有任何效果。
我是不是漏掉了什么?如何降低鼠标的轮询率?