修改USB设备的轮询率

修改USB设备的轮询率

这个视频显示提高轮询率如何降低游戏控制器的平均输入延迟。不幸的是,用于修改轮询率的软件叫做希杜斯布夫并且仅适用于 Windows。我发现gcadapter-oc-kmod它可用于提高 Linux 上 GameCube 适配器的轮询率,但我想知道如何修改任何 USB 设备的轮询率。

答案1

首先,您需要找出您的设备使用的驱动程序。对于 HID USB 鼠标、键盘和操纵杆,驱动程序为usbhid.该驱动程序有各自的参数mousepollkbpolljspoll。这些参数的值是确定轮询周期 (T)(以毫秒为单位)的数字,该数字与轮询速率 (f) 成反比,并四舍五入为 2 的幂。因此,对于 250Hz 的轮询率,将其设置为 4,对于 125Hz 的轮询率,将其设置为 8,对于 1kHz 的轮询率,将其设置为 1,依此类推。如果该参数设置为 0(默认),驱动程序将让 HID 设备决定最佳轮询率。

如果要在正在运行的系统上更改此参数,请运行以下命令(需要 root 访问权限):modprobe -r usbhid && modprobe usbhid mousepoll=1 kbpoll=2 jspoll=4。第一部分卸载usbhid驱动程序,第二部分使用指定的参数加载它(可以安全地忽略您不关心的参数)。请注意,如果第二个命令失败,您可能最终无法使用输入设备(恢复的选项是重新启动、远程访问系统或使用 PS/2 键盘/鼠标)。如果您想让这些更改持久存在,请在内核命令行中添加类似options usbhid mousepoll=1 kbpoll=2 jspoll=4的行/etc/modprobe.d/usbhid.conf或添加类似的参数。usbhid.mousepoll=1 usbhid.kbpoll=2 usbhid.jspoll=4

但是,如果您的设备不是 HID 设备(例如 GameCube 适配器的情况),驱动程序可能不会向用户公开此类参数。在这种情况下,您需要在驱动程序的源代码中修改该值并重新编译它。

相关内容