![Debian 上的 nouveau 显示驱动程序出现错误 - 固件:无法加载 nouveau/nvc1_fuc084 (-2)](https://linux22.com/image/198300/Debian%20%E4%B8%8A%E7%9A%84%20nouveau%20%E6%98%BE%E7%A4%BA%E9%A9%B1%E5%8A%A8%E7%A8%8B%E5%BA%8F%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF%20-%20%E5%9B%BA%E4%BB%B6%EF%BC%9A%E6%97%A0%E6%B3%95%E5%8A%A0%E8%BD%BD%20nouveau%2Fnvc1_fuc084%20(-2).png)
我最近在我的笔记本电脑上安装了双启动 Debian 11。我安装了官方映像,因此没有安装非免费驱动程序。
我在使用时报告了一些驱动程序问题dmesg
(我认为其中一个是蓝牙),我似乎通过安装一些软件包来修复它们(我从 复制了失败的驱动程序名称dmesg
,用 apt 搜索它,并安装了最佳匹配)。
在某些时候,我决定将contrib
和non-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 以使它们正常工作。