在Ubuntu15.04中,我有一个非常特殊的需要更改mousepoll值。
在Kerbal空间程序中,有一个Linux错误,如果您用鼠标右键拖动视图,而鼠标指针值高于125 to,则游戏将挂起一两秒钟,使玩起来非常令人沮丧。
我有一个罗技G400鼠标,投票高达1000赫兹。我想不出怎么改变这一切。
我试过:
options usbhid mousepoll=8
中设置/etc/modprobe.d/usbhid
usbhid.mousepoll=8
sudo modprobe -r usbhid && sudo modprobe usbhid mousepoll=8
这在某种程度上是有效的,因为cat /sys/module/usbhid/parameters/mousepoll
按预期返回8
。但是问题仍然存在于KSP中,当我从evhz
运行https://github.com/ian-kelling/evhz时,它仍然报告1000 of的投票率。
可能相关:
发布于 2015-06-15 02:36:53
我确实找到了解决这个问题的办法。
我将Windows安装在虚拟机中,将USB鼠标设备附加到VM上,然后用Wireshark跟踪USB流量,并隔离官方罗技驱动程序用来设置投票率的控制命令。(这对我指出正确的方向非常有帮助:https://unix.stackexchange.com/questions/138742/how-to-dump-usb-traffic)
这个神奇的Ruby代码(必须以root用户的身份运行,或者由具有写入/dev/hidraw1
权限的用户运行)将在我的鼠标上将投票率设置为125 be:
#!/bin/ruby
HIDIOCSFEATURE = 0xC0024806
f = File.open("/dev/hidraw1", "w+")
f.ioctl(HIDIOCSFEATURE,"\x20\x03")
/dev/hidraw1
是我的鼠标的诱饵装置。根据插入计算机的设备数量,此路径可能有所不同。
0xC0024806
序列是将特征报告“发送”到劫持设备所需的ioctl值。不幸的是,我不记得我是如何得到这个值的,而且它在技术上可能不是100%正确的。不过对我有用!
"\x20\x03"
序列是驱动程序在特性报告中发送给鼠标的数据。20
似乎是用于标识轮询更改请求的十六进制值,03
将其设置为125 it。02
将其设置为250 it,01
设置为500 it,00
设置为1000 it。
请注意:这对我的罗技G400鼠标工作。我认为这个鼠标只有一个硬件变体,所以在这个型号上应该是安全的。它没有在任何其他模型上进行测试,也不会在使用HID++协议进行通信的任何罗技鼠标上工作(这包括许多较新的鼠标,以及使用统一接收器的任何无线模型)。
我也几乎不知道我在做什么,我做的每一件事情都是第一次学到的,包括这个短语:警告讲师(读者注意)!
发布于 2015-06-10 19:28:45
我的罗技G302也有同样的问题。
不幸的是,罗技鼠标似乎不支持降低鼠标的投票率。
但是如果真的有必要的话,你可以通过硬件将鼠标连接到一个较慢的usb端口来减少它。
使用埃夫兹时,我注意到鼠标轮询率从1000 to下降到250 to,使用不同的usb端口。
https://askubuntu.com/questions/624075
复制相似问题