自从我从 16.04 升级到 18.04 后,我就遇到了这些奇怪的屏幕冻结问题。通常在播放视频或纸牌时,我的屏幕会随机挂起。虽然鼠标仍然可以工作和移动,音频也可以播放,但屏幕就是冻结了。屏幕暂停大约 5-10 秒,无法移动、点击等任何内容。但是,如果我尝试在其中一次挂起期间用鼠标执行操作,如果我用鼠标完成该操作,一旦屏幕跟上,我就会看到结果。所以看起来一切都正常,但存在某种显示延迟,就好像我的视频卡负载很重一样。
我登录的时间越长,问题似乎就越严重,而且出现的频率也越频繁,就好像视频卡出现了内存泄漏一样。
使用 Nvidia 应用程序查看卡负载,显示卡上无过大负载、高温或内存不足。
我已经改进了性能,正如稍后将概述的那样,但问题仍然存在。
系统是四核 Alienware Alpha,8GB 内存。显卡是 Nvidia 860,2GB 内存。
我正在使用专有的 Nvidia 驱动程序 390 和(一开始)低延迟内核。
$ lspci -k | grep -EA3 '3D|Display|VGA'
01:00.0 VGA compatible controller: NVIDIA Corporation GM107M [GeForce GTX 860M] (rev a2)
Subsystem: Dell GM107M [GeForce GTX 860M]
Kernel driver in use: nvidia
Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia
$ lsmod |grep -i nvidia
nvidia_uvm 757760 0
nvidia_drm 40960 2
nvidia_modeset 1110016 8 nvidia_drm
nvidia 14340096 635 nvidia_modeset,nvidia_uvm
drm_kms_helper 172032 1 nvidia_drm
drm 397312 5 nvidia_drm,drm_kms_helper
ipmi_msghandler 53248 2 nvidia,ipmi_devintf
答案1
注意:一段时间后,问题又出现了。我目前正在备份主文件夹以重新安装 Ubuntu。我留下这个答案以供参考,但我不接受它,因为它没有永久解决我的问题。
修复我的问题是相当漫长的过程。最终修复结果简而言之如下:
- 重新添加驱动程序 PPA -> 更新 -> 升级
- 使用通用内核
- 清除并重新安装图形驱动程序(以防万一)
- 配置卡
- 删除本地 Chrome .config 并重新安装或(最好)切换到 Firefox
每次操作都会略微提高性能,最终形成性能卓越的系统。完整的修复方法如下。
1. 升级时禁用专有 GPU 驱动程序 PPA
首先重新启用图形驱动程序 ppa,并更新驱动程序:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt upgrade && sudo apt dist-upgrade
2. 当不需要低延迟时使用通用内核
我从事音频制作,因此使用了低延迟内核。看来这个内核会优先处理音频,并允许系统其余部分挂起以保持音频及时播放。
我安装了通用内核:
sudo apt install linux-generic
要使用此内核,请在启动时按住 Shift 并选择高级选项并启动到通用内核。
3.清除并重新安装驱动程序
尝试使用软件和更新升级到驱动程序 396。重启后,我无法启动 X。它不会自动启动,命令startx
使屏幕闪烁,然后让我回到命令行。(您的里程可能会有所不同)
评论中的用户建议我应该清除并重新安装驱动程序,所以我认为这是这样做的最佳时机。所以我清除了所有内容:
sudo apt purge "*-nvidia-*"
sudo apt autoremove && sudo apt autoclean
通过软件和更新重新启动并重新安装驱动程序 390(或 396,如果适合您)并重新启动。
4. NVidia 卡需要非默认配置
完成所有清除和重新安装后,就该摆弄 nvidia-settings 了。
sudo nvidia-settings
在 X Screen 0 和 GPU 0 配置中,以下是我最终完成修复的调整:
X 屏幕 0 设置菜单
在“X 服务器视频设置”选项卡下,我将设置从“自动”更改为直接选择我的显示器:
出于某种原因,这似乎是最终解决问题的设置。但请继续阅读我的其余配置。
我更喜欢在“OpenGL 设置”中选择质量而不是性能,因为相反的操作没有任何效果(但不确定这是否真的有什么作用):
最后,对于此菜单,我的抗锯齿设置如下:
GPU 0-(GeForce GPU) 菜单
在 powermizer 设置下,我将 powermizer 设置从自动更改为首选最大性能。此设置在重启后不保留,但现在似乎默认为自适应而不是自动。
似乎作为一般规则,任何具有“自动”设置的设置都应在可能的情况下设置为特定设置。
5. 修复 Chrome 或(最好)切换到 Firefox
完成上述所有操作后,除了我在 Google Chrome 中播放 YouTube 视频时,一切都运行正常(电影、Steam、游戏等)。
使用 Firefox 后我不再遇到任何问题。
可以修复 Chrome 以使其更好地工作,但它并不像使用 Firefox 那样完美。要修复 Chrome:
重命名配置文件夹:
mv ~/.config/google-chrome ~/.config/google-chrome.bak
清除 Chrome:
sudo apt purge google-chrome-stable
sudo apt autoremove && sudo apt autoclean
您现在需要使用 Firefox从 Google 下载 Chrome并安装它。当您运行 Chrome 时,它将像第一次一样,需要进行配置。
虽然这似乎可以修复 Chrome 问题,但我注意到当且仅当 Chrome 运行时,我的系统仍然会偶尔出现故障。使用 Firefox 时不会发生这种情况。
答案2
我在 ubuntu-cinnamon-remix 21.04、Dell Precision 7710 上遇到了类似症状的问题。不确定是否是相同的根本原因。
我发现了一些更接近根本原因的事情:
TL;DR:最终的解决方法/修复方法是设置 /etc/UPower/UPower.conf IgnoreLid=true
它与盖子状态(关闭/打开)有关,导致系统每 30 秒查询一次监视器。
- cinnamon/ubuntu 21.04 安装在戴尔笔记本电脑 precision 7710 上
- nouveau 和 nvidia 驱动程序都重现了这一点。
- 问题是否会重现取决于以下组合:
- 盖子电源设置(例如,盖子状态不会导致挂起,也不会导致外部/内部显示器重新配置)
- 盖子的当前状态(关闭/打开)
- 已连接外接显示器
症状:
- 每 30 秒显示屏会冻结 500-3000 毫秒(长度似乎取决于连接的显示器和 xrandr 模式)。
- 鼠标在冻结期间可以移动。其他一切(例如音频和任何正在运行的进程)似乎都顺利进行。
- Xorg.log 每 30 秒产生以下日志
[1360.782] (II) modeset(0): EDID vendor "DEL", prod id 16854 [1360.782] (II) modeset(0): Using hsync ranges from config file [1360.782] (II) modeset(0): Using vrefresh ranges from config file [1360.782] (II) modeset(0): Printing DDC gathered Modelines: [1360.782] (II) modeset(0): Modeline "3840x2160"x0.0 594.00 3840 4016 4104 4400 2160 2168 2178 2250 +hsync +vsync (135.0 kHz eP) [1360.782] (II) modeset(0): Modeline "2560x1440"x0.0 ...
- syslog 可能每 30 秒产生以下日志(使用 nouveau 而不使用 runpm=0)
kernel: [ 3351.079896] nouveau 0000:01:00.0: Enabling HDA controller
我会尝试在 cinnamon 或 ubuntu 上报告这个错误,我不确定哪个层有错误。
答案3
尝试通过以下方式重新安装 nvidia 驱动程序:
sudo apt-get purge nvidia*
sudo apt-get update
sudo apt-get install nvidia-driver-390
如果这不能提高您的性能,我建议您备份所有文件并重新安装全新的 Ubuntu-18.04,避免从以前的 LTS 升级。从一个 LTS 升级到另一个 LTS 时会出现一些问题,这真的很麻烦。
答案4
看起来我找到了解决方法在我的 Legion 5 Pro 中运行杂交种图形模式。
这NVIDIA GPU可以处于不同的状态 -D3cold,D0,D3hot。
我偶然注意到,如果我保留NVIDIA GPU在D0状态(只需保持打开nvidia-设置小组讨论电源管理模块标签) -冻结消失。
但如果我让NVIDIA GPU进入睡眠模式(D3cold状态)-每 2 分钟冻结一次。
并且系统日志垃圾邮件发送者:
...
Feb 17 15:55:17 smarttop kernel: [ 9145.605086] nvidia 0000:01:00.0: Enabling HDA controller
Feb 17 15:57:17 smarttop kernel: [ 9265.612997] nvidia 0000:01:00.0: Enabling HDA controller
Feb 17 15:58:58 smarttop kernel: [ 9366.357103] nvidia 0000:01:00.0: Enabling HDA controller
...
因此看起来冻结与 nvidia HDA 控制器有关。