如何改善 Ubuntu 18.04 的显示效果?我尝试了本网站上介绍的许多不同方法,但都没有奏效。
我有一台集成有英特尔 GPU 和 NVIDIA GTX 970M 的 MSI GS60 Ghost Pro,在滚动网页时(在 Chrome、Firefox 上)会出现滞后效果,在移动窗口时会出现非常明显的闪烁效果。
硬件和驱动程序:
alex@alex-ubuntu:~$ lspci | egrep ' VGA|3D'
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM204M [GeForce GTX 970M] (rev a1)
NVIDIA GPU:
alex@alex-ubuntu:~$ glxinfo | grep OpenGL
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 970M/PCIe/SSE2
OpenGL core profile version string: 4.6.0 NVIDIA 390.77
OpenGL core profile shading language version string: 4.60 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6.0 NVIDIA 390.77
OpenGL shading language version string: 4.60 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 390.77
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
alex@alex-ubuntu:~$ lsmod | grep drm_kms_helper
drm_kms_helper 172032 2 i915,nvidia_drm
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
drm 401408 6 i915,nvidia_drm,drm_kms_helper
英特尔 GPU:
alex@alex-ubuntu:~$ glxinfo | grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.0.5
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 18.0.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 18.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:
alex@alex-ubuntu:~$ lsmod | grep drm_kms_helper
drm_kms_helper 172032 2 nouveau,i915
syscopyarea 16384 1 drm_kms_helper
sysfillrect 16384 1 drm_kms_helper
sysimgblt 16384 1 drm_kms_helper
fb_sys_fops 16384 1 drm_kms_helper
drm 401408 9 nouveau,i915,ttm,drm_kms_helper
我已经测试了以下方法:
答案1
假设 nVidia 导致了这个问题,那么一个解决方法就是只在 Intel IGD 上运行。以下步骤按“排他性”的递增顺序实现此目的。您可以在每个步骤后检查是否有改进。
1. 配置 Xorg 以优先使用英特尔
创建文件/etc/X11/xorg.conf.d/10-intel.conf
(这可能需要mkdir /etc/X11/xorg.conf.d
),包含:
Section "OutputClass"
Identifier "Intel"
MatchDriver "i915"
Driver "intel"
EndSection
2. 禁用 IGD 模式切换
编辑/etc/default/grub
并添加xdg.force_integrated=1
到GRUB_CMDLINE_LINUX
。完成后,sudo update-grub
在重启前运行。
3. 将nouveau
内核驱动程序列入黑名单
编辑/etc/default/grub
并添加modprobe.blacklist=nouveau
到 GRUB_CMDLINE_LINUX
。完成后,sudo update-grub
在重启前运行。
4. 卸载 Xorg nouveau 驱动
sudo apt remove xserver-xorg-video-nouveau
这将触发删除xserver-xorg-video-all
默认安装的元包。只要xserver-xorg-video-intel
保持安装,就没问题。为确保安全:
sudo apt remove xserver-xorg-video-all
sudo apt install xserver-xorg-video-intel