Linux Mint 20.3 笔记本电脑由于 nouveau 驱动程序而随机冻结

Linux Mint 20.3 笔记本电脑由于 nouveau 驱动程序而随机冻结

当我的系统随机冻结时,它开始严重减慢,最终不再做出反应。如果我单独启动 Firefox(打开许多选项卡)并开始播放 YouTube 视频,我可以相当一致地激发它。切换工作空间可能会有所帮助。另一方面,当我只运行 VSCode 时也会发生这种情况。硬件使用率越高,冻结的可能性就越大。

有时我可以在该点之前使用 ctrl+alt+f1 进入终端。然后我会运行 htop 并查看系统利用率。除了 M_SIZE (VIRT) 之外没有什么特别的总是这两个程序都非常高(高于我的内存容量),但我的内存使用率仍然没有达到 60-70%。我什至增加了交换文件,因此内存不太可能是问题的原因。

使用 Mint 的协议查看器,我发现每一个当它冻结时,会保存以下消息:

nouveau 0000:01:00.0: msvld: init failed, -19
nouveau 0000:01:00.0: msvld: unable to load firmware data
nouveau 0000:01:00.0: Direct firmware load for nouveau/nva8_fuc084d failed with error -2
nouveau 0000:01:00.0: Direct firmware load for nouveau/nva8_fuc084 failed with error -2

因此,我尝试安装 Mint 驱动程序管理器推荐的专有 nvidia-340 驱动程序。它因 dpkg 错误而失败,在使用 apt 尝试后也发生了同样的情况。我发现关于 Nvidia 终止对该驱动程序的支持的帖子。在帖子的下面,您可以看到当前的内核版本是 5.15.0-43,但我也尝试在版本 5.4.0-122 上安装驱动程序(使用 Mint 的驱动程序管理器)。

之后,我尝试修复 nouveau 驱动程序。从回答,我去了nouveau/VideoAcceleration 文档页面并尝试了固件部分下的命令。它再次冻结,所以我恢复了更改。

我该怎么做才能阻止它冻结?如果您认为这是一个过热问题,那么我想知道为什么它稍后不会解冻,因为负载减少了,CPU 冷却器变得更安静了。

系统信息及更多信息:https://pastebin.com/HMTLfrD3

编辑:我确认冻结与 RAM/交换使用情况无关。

答案1

A/由于您报告了与固件相关的错误,因此 nvidia 专有驱动程序肯定不会出现该问题。
但是,340 版本是与您的设备兼容的最新版本,并且由于 340 不支持内核 modsetting,因此它不再与 linux > 5.4 内核兼容。
此外,由于该驱动程序版本与 libglvnd 不兼容,因此它不会与 xorg-server > 1.20.8、mesa > 20.0.8 以及所有相关内容兼容,更不用说许多 DE 的最新版本了。

因此,要么你从这些天运行 <= 5.4 linux 内核和 xorg-server <= 1.20.8 获得备份,恢复它并停止从那里升级,要么你准备好降级很多东西......以完全不受支持的方式。 (因为您的存储库中可能不再提供相应的软件)。


乙/要么......你坚持nouveau,解决问题:

根据您的报告,我了解到 msvld init 失败,因为内核在观看一些 YouTube 视频时找不到固件。

这可能是因为:

  • 并且您需要视频加速
  • 并且您的系统找不到合适的视频编解码器。

然后我建议您在 Firefox 中禁用视频加速后重试。

如果下载适当的固件(由于版权原因不可重新分发)可以解决问题,您也可以尝试一下。为了继续,首先检查您的发行版是否获得了正确的安装包。
如果没有,请阅读freedesktop wiki 中有关视频加速的章节。并应用后备,主要是:

$ mkdir /tmp/nouveau
$ cd /tmp/nouveau
$ wget https://raw.github.com/envytools/firmware/master/extract_firmware.py
$ wget http://us.download.nvidia.com/XFree86/Linux-x86/325.15/NVIDIA-Linux-x86-325.15.run
$ sh NVIDIA-Linux-x86-325.15.run --extract-only
$ python2 extract_firmware.py  # this script is for python 2 only
# mkdir /lib/firmware/nouveau
# cp -d nv* vuc-* /lib/firmware/nouveau/

您可能需要根据您的 nouveau 驱动程序版本进行调整。

答案2

看来您遇到的问题与我之前使用 2008 年末的 Macbook Pro 时遇到的问题相同,它配备了 Nvidia Geforce 9600M,并且使用 Nouveau 驱动程序时它会随机冻结,似乎实际上有补丁可以解决适用于 Nvidia 340.xxx 驱动程序,使其能够与较新的内核一起工作。

已经有补丁程序可以自动构建 Nvidia 驱动程序包,其中包含针对较新内核的补丁。我用的是https://www.if-not-true-then-false.com/2020/inttf-nvidia-patcher/

只需使用该修补程序生成 nvidia 驱动程序并安装它,它就应该可以工作。

实际上,我在 2008 年末的 Macbook Pro 上使用 Nvidia 专有驱动程序 340.108 和 Archlinux

我希望这有帮助

相关内容