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

Con*_*ner 4 video nvidia linux-mint freeze nouveau

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

有时我可以在该点之前使用 ctrl+alt+f1 进入终端。然后我会运行 htop 并查看系统利用率。除了 M_SIZE (VIRT) 之外没有什么特别的,这两个程序的 M_SIZE (VIRT)总是非常高(高于我的 ram 容量),但我的 ram 使用率仍然没有达到 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
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

MC6*_*020 5

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

\n

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

\n
\n

B/要么\xe2\x80\xa6你坚持使用nouveau,解决这个问题:

\n

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

\n

这可能是因为:

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

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

\n

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

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

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

\n