我有一台安装了最新 Linux Mint(MATE 版本,而不是 Cinnamon 版本)的笔记本电脑。80-90% 的时间里一切都运行良好,但鼠标会定期开始严重“滞后”(感觉响应迟缓,光标移动速度可能只有正常速度的 20%)。这个问题时有时无,没有任何明显的原因。它发生在 USB 鼠标和笔记本电脑的触摸板上。不过,我使用旧版本的 Mint 时没有遇到这个问题。
我曾尝试通过 Google 寻找解决此问题的其他人,但由于涉及的术语过于笼统(“鼠标”、“Linux”、“滞后”等),我只找到很多不相关的页面。
有人能给我一些建议,告诉我如何诊断导致这种奇怪的鼠标滞后的原因(以及理想情况下如何解决它)吗?
* 编辑 *
top
以下是滞后期间的输出示例:
top - 20:10:27 up 34 days, 22:31, 4 users, load average: 2.36, 1.19, 0.65
Tasks: 192 total, 2 running, 190 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.8 us, 24.8 sy, 0.0 ni, 68.5 id, 0.4 wa, 0.0 hi, 0.5 si, 0.0 st
KiB Mem: 4032688 total, 3475752 used, 556936 free, 202180 buffers
KiB Swap: 8787516 total, 137556 used, 8649960 free, 1768748 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
21961 root 20 0 0 0 0 S 20.9 0.0 0:12.82 kworker/1:0
21762 root 20 0 0 0 0 R 11.3 0.0 0:12.05 kworker/0:2
5780 me 20 0 181m 26m 16m S 9.3 0.7 271:41.38 mate-system-mon
21733 root 20 0 0 0 0 S 7.6 0.0 0:16.24 kworker/1:1
21956 root 20 0 0 0 0 S 7.3 0.0 0:13.10 kworker/0:0
21879 root 20 0 0 0 0 S 3.7 0.0 0:03.25 kworker/u:2
23920 me 20 0 425m 85m 16m S 3.3 2.2 148:23.44 chrome
20013 me 20 0 426m 198m 27m S 2.0 5.0 5:53.41 chrome
852 me 20 0 170m 13m 10m S 1.0 0.3 1:43.49 mate-terminal
2283 root 20 0 132m 26m 10m S 1.0 0.7 140:33.62 Xorg
11361 me 20 0 1054m 212m 26m S 1.0 5.4 119:45.32 eclipse
23766 me 20 0 644m 179m 39m S 1.0 4.6 156:13.04 chrome
19035 couchdb 20 0 86672 5120 1484 S 0.7 0.1 314:22.75 beam.smp
10 root 20 0 0 0 0 S 0.3 0.0 6:08.10 ksoftirqd/1
2453 me 20 0 38796 1824 1680 S 0.3 0.0 2:31.55 gvfs-afc-volume
5776 me 20 0 105m 8376 6772 S 0.3 0.2 1:48.06 multiload-apple
18074 me 20 0 69836 14m 3808 S 0.3 0.4 9:23.07 python
下面是tail
运行的结果dmesg
(dmesg
很多输出,因此tail
):
[2844570.290434] type=1701 audit(1358135321.797:17): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=6593 comm="chrome" reason="seccomp" sig=0 syscall=20 compat=0 ip=0xb3599424 code=0x50000
[2855118.278240] stereo mode not supported
[2891634.104527] stereo mode not supported
[2929390.761034] stereo mode not supported
[2930948.986039] stereo mode not supported
[2931457.828088] stereo mode not supported
[2936251.706768] stereo mode not supported
[2939573.402914] stereo mode not supported
[2940015.539524] stereo mode not supported
[2977473.595590] stereo mode not supported
根据@grs的回答,这是tail
我的/var/log/Xorg.0.log
:
[2940015.539] (II) intel(0): Printing DDC gathered Modelines:
[2940015.539] (II) intel(0): Modeline "1366x768"x0.0 69.30 1366 1414 1446 1456 768 771 777 793 -hsync -vsync (47.6 kHz eP)
[2977473.595] (II) intel(0): EDID vendor "AUO", prod id 4140
[2977473.595] (II) intel(0): DDCModeFromDetailedTiming: Ignoring: We don't handle stereo.
[2977473.595] (II) intel(0): Printing DDC gathered Modelines:
[2977473.595] (II) intel(0): Modeline "1366x768"x0.0 69.30 1366 1414 1446 1456 768 771 777 793 -hsync -vsync (47.6 kHz eP)
[3020717.050] (II) intel(0): EDID vendor "AUO", prod id 4140
[3020717.050] (II) intel(0): DDCModeFromDetailedTiming: Ignoring: We don't handle stereo.
[3020717.050] (II) intel(0): Printing DDC gathered Modelines:
[3020717.050] (II) intel(0): Modeline "1366x768"x0.0 69.30 1366 1414 1446 1456 768 771 777 793 -hsync -vsync (47.6 kHz eP)
答案1
我找到了以下解决方案询问 Ubuntu:
sudo -i
echo N> /sys/module/drm_kms_helper/parameters/poll
echo "options drm_kms_helper poll=N">/etc/modprobe.d/local.conf
它确实为我解决了这个问题,经过一个多星期的测试,我可以确认它为我解决了鼠标延迟的问题。
答案2
请注意,在较新的内核中,drm_kms_helper 模块可能不会默认加载。只需执行一个额外步骤即可实现此功能:
sudo su -
modprobe drm_kms_helper
echo N> /sys/module/drm_kms_helper/parameters/poll
echo "drm_kms_helper" >> /etc/modprobe.d/local.conf
echo "options drm_kms_helper poll=N" >> /etc/modprobe.d/local.conf
希望对大家有帮助!
答案3
经过数周的搜索和尝试解决这个问题,我终于通过这个页面把它整理出来了:http://carlocapocasa.com/crushing-the-kworker-uprising-or-how-to-fix-your-linux-lenovo-ideapad-y560p/
$ grep enabled /sys/firmware/acpi/interrupts/* (带有明显高数字的 gpe 是问题所在)
然后添加一个 crontab 条目来修复它 @reboot echo "disable" > /sys/firmware/acpi/interrupts/gpeXX (XX 是你的 gpe 的编号)
-037
答案4
尽管 OP 接受的答案可能在当时有所帮助;但它今天不再起作用了。
今天你需要调整模块mousepoll
的速率usbhid
。
如果您的鼠标是 1000hz,那么您需要告诉usbhid
以该间隔进行轮询;默认情况下它以 125hz 进行轮询。
在 Debian 系统上,你可以通过添加以下内容来实现/etc/modules
:
-r usbhid
usbhid mousepoll=1
注意:我从来没有工作过echo 1 > /sys/module/usbhid/parameters/mousepoll
;我不得不添加轮询间隔并重新启动。可能必须重新启动 X 和/或重新加载视频模块才能应用它而无需重新启动。