Debian 上的 nouveau 显示驱动程序出现错误 - 固件:无法加载 nouveau/nvc1_fuc084 (-2)

Debian 上的 nouveau 显示驱动程序出现错误 - 固件:无法加载 nouveau/nvc1_fuc084 (-2)

我最近在我的笔记本电脑上安装了双启动 Debian 11。我安装了官方映像,因此没有安装非免费驱动程序。

我在使用时报告了一些驱动程序问题dmesg(我认为其中一个是蓝牙),我似乎通过安装一些软件包来修复它们(我从 复制了失败的驱动程序名称dmesg,用 apt 搜索它,并安装了最佳匹配)。

在某些时候,我决定将contribnon-free源添加到我的源列表中,看看获取非免费驱动程序是否会改进任何内容: https://www.xmodulo.com/install-nonfree-packages-debian.html

在此之前,我也从 nouveau 驱动程序中收到错误(尽管我的屏幕使用的是全分辨率),所以我只是想让错误消失。

我已经尝试过该nvidia-detect实用程序,在安装其建议后,我的分辨率下降了,并且无法设置为更高的分辨率。所以,我已经卸载了它。

我也尝试过这里的说明: https://wiki.debian.org/NvidiaGraphicsDrivers#Debian_11_.22Bullseye.22 我的决心再次下降。

我认为,在这两种情况下,我都安装了旧版驱动程序(很可能nvidia-legacy-390xx-driver)。

我的显卡好像是GA compatible controller: NVIDIA Corporation GF108M [GeForce GT 540M] (rev a1).

最终,我卸载了我安装的东西(希望 - 不确定是否有任何东西留下来......)并且我的分辨率现在已恢复,但我仍然遇到相同的错误dmesg

[   14.913827] Bluetooth: Can't change to loading configuration err
[   14.913943] ath3k: probe of 1-1.5:1.0 failed with error -110
[   37.345865] nouveau 0000:01:00.0: firmware: failed to load nouveau/nvc1_fuc084 (-2)
[   37.345872] firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware
[   37.345876] nouveau 0000:01:00.0: Direct firmware load for nouveau/nvc1_fuc084 failed with error -2
[   37.345892] nouveau 0000:01:00.0: firmware: failed to load nouveau/nvc1_fuc084d (-2)
[   37.345895] nouveau 0000:01:00.0: Direct firmware load for nouveau/nvc1_fuc084d failed with error -2
[   37.345898] nouveau 0000:01:00.0: msvld: unable to load firmware data
[   37.345901] nouveau 0000:01:00.0: msvld: init failed, -19

这些似乎是仅存的错误。

如果我们排除顶部的蓝牙(我不知道为什么会发生这种情况),您会看到失败的 nouveau 驱动程序。

我真的有点困惑,因为(根据我的理解)nouveau 驱动程序应该随内核一起提供。那么,为什么会失败呢?怎么可能缺少对它的依赖或类似的东西?

我想我也尝试用 apt 安装它(nouveau),但没有安装任何东西。不确定如果它的依赖项之一是错误版本(是否会被替换)会发生什么。我想如果现有的二进制文件是旧版本,它将被替换,但我不确定这一点。

因此,如果有人知道我能做什么,请随时放弃他的想法。这是我第一次接触Linux驱动程序,所以我有点一无所知。

当然,我可以忽略这个问题,因为我的屏幕似乎工作正常。

只是,我无法理解这里发生了什么...如果驱动程序未加载,为什么我的屏幕工作正常?

答案1

虽然距离提问已经过去了三个月,但我会尽力给出提示。

我刚刚将一个盒子从 Buster 升级到 Bullseye。以前我使用的是nvidia驱动程序,但它在Buster中已经过时,然后在Bullseye中被删除,所以我不得不切换回使用nouveau。

之后,X要么没有启动,要么以低分辨率启动(我猜是640x480)。

我用 xorg.conf 玩了一下,但没有任何结果。然后我想起 xorg.conf 不再需要启动 Xorg,因为它可以在启动时自动检测大多数设置。

我将 /etc/X11/xorg.conf 重命名为 /etc/X11/xorg.conf.bkp,下次启动完美成功。 (xorg.conf 是我早期使用 nvidia 驱动程序时留下的内容,并且必须自定义一些内容。)

引用自Debian 维基

如果由于某种原因 xorg.conf 丢失,Xorg 将在每次启动时探测您的硬件。尽管这在大多数情况下工作正常,但某些设置仍然无法访问。

更新 2022-07-10: 我想我找到了替代解决方案。

前往nouveau/VideoAcceleration 文档页面,然后找到您的卡使用的引擎。在你的情况下,它可能是这样的:

VP4.2:NVC0-NVCF(GeForce 400、500 系列;对应于 VDPAU 功能集 C)

向下滚动查看固件部分,阅读它并意识到一个可悲的事实,VP1/2/3/4/5 固件不是由 Debian 打包的(可能是由于许可限制)。文档的第二部分介绍了如何下载 NVIDIA 驱动程序并手动提取缺少的内容。

Debian (Bullseye) 用户的特别注意事项:

  • 提到的步骤之一是 python2 脚本。确保安装了 python2 软件包才能运行它。
  • 最后两个命令(mkdir 和 cp)需要 root 权限。您应该在前面添加 sudo 以使它们正常工作。

感谢伊利亚·米尔金。

相关内容