如何解决 Linux Mint(MATE)上周期性的鼠标滞后问题?

如何解决 Linux Mint(MATE)上周期性的鼠标滞后问题?

我有一台安装了最新 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运行的结果dmesgdmesg很多输出,因此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 和/或重新加载视频模块才能应用它而无需重新启动。

相关内容