Debian系统显卡驱动从官方驱动回退到Nouveau
<p>系统环境:</p><ul>
<li>Debian 12.5,有桌面环境</li>
<li>Nvidia GTX650</li>
<li>显卡驱动:nvidia-tesla-470-470.256.02</li>
</ul>
<p>本来照着网上的教程想要安装官方的驱动,结果发现虽然nvidia-smi可以正常显示,但是桌面环境却崩掉了,开机不是黑屏就是极低分辨率,显示Software Rendering(软件渲染)。</p>
<p>尝试搜索教程无果,遂放弃,准备回退到nouveau驱动。</p>
<p>Nouveau是一个开源的驱动程序项目,旨在为显卡提供开源驱动支持,其优势在于免费、与Linux内核集成(自动安装);缺点是相比NVIDIA官方闭源驱动,性能通常较低,且对新硬件的支持可能滞后。</p>
<h2 id="1卸载官方驱动">1.卸载官方驱动</h2>
<p>我使用.run文件安装的驱动,使用</p>
<pre><code class="language-bash">sudo nvidia-uninstall
</code></pre>
<p>,如果使用的是apt安装的驱动,使用</p>
<pre><code class="language-bash">sudo apt-get remove --purge '^nvidia-.*'
</code></pre>
<p>,等待卸载结束。</p>
<p><img src="https://img.foxhank.top/file/1729608997991_image-20241022111337007.png"></p>
<h2 id="2取消黑名单">2.取消黑名单</h2>
<p>网上的教程均为查找<code>/etc/modprobe.d/</code>下是否有与nouveau有关字样:</p>
<pre><code class="language-bash">grep -r "nouveau" /etc/modprobe.d/
</code></pre>
<p>但我已经删除相关内容,重新启动仍然报错:</p>
<pre><code class="language-bash">root@debian:~$ sudo journalctl -b | grep -i nouveau
10月 22 09:39:48 debian systemd-modules-load: Module 'nouveau' is deny-listed
10月 22 09:40:49 debian /usr/libexec/gdm-x-session: (==) Matched nouveau as autoconfigured driver 0
10月 22 09:40:49 debian /usr/libexec/gdm-x-session: (II) LoadModule: "nouveau"
10月 22 09:40:49 debian /usr/libexec/gdm-x-session: (II) Loading /usr/lib/xorg/modules/drivers/nouveau_drv.so
10月 22 09:40:50 debian /usr/libexec/gdm-x-session: (II) Module nouveau: vendor="X.Org Foundation"
10月 22 09:40:50 debian /usr/libexec/gdm-x-session: (II) NOUVEAU driver Date: Sat Jan 23 12:24:42 2021 -0500
10月 22 09:40:50 debian /usr/libexec/gdm-x-session: (II) NOUVEAU driver for NVIDIA chipset families :
root@debian:~# modinfo nouveau
filename: /lib/modules/6.1.0-22-amd64/kernel/drivers/gpu/drm/nouveau/nouveau.ko
firmware: nvidia/gp100/acr/ucode_load.bin
firmware: nvidia/gp100/acr/bl.bin
firmware: nvidia/gm206/acr/ucode_load.bin
firmware: nvidia/gm206/acr/bl.bin
firmware: nvidia/gm204/acr/ucode_load.bin
firmware: nvidia/gm204/acr/bl.bin
firmware: nvidia/gm200/acr/ucode_load.bin
</code></pre>
<p><code>lsmod | grep nouveau</code>、<code>dmesg | grep nouveau</code>无输出,提示“Module 'nouveau' is deny-listed”。说明还有某处未取消黑名单。</p>
<p>询问ChatGPT,得知还可能有其它地方存在配置文件:</p>
<pre><code class="language-bash"># 查询modprobe配置
grep -r "nouveau" /lib/modprobe.d/
grep -r "nouveau" /usr/lib/modprobe.d/
</code></pre>
<pre><code class="language-bash"># 查询grub配置
cat /etc/default/grub
# GRUB_CMDLINE_LINUX_DEFAULT="quiet"
# 这一行不应该存在类似"nouveau.modeset=0"字样
</code></pre>
<p>我发现:</p>
<pre><code class="language-bash">grep -r "nouveau" /lib/modprobe.d/
/lib/modprobe.d/nvidia-installer-disable-nouveau.conf:blacklist nouveau
/lib/modprobe.d/nvidia-installer-disable-nouveau.conf:options nouveau modeset=0
</code></pre>
<p>原来是Nvidia官方的run文件在<code>/lib/modprobe.d/</code>创建了一个配置文件,导致nouveau禁用。</p>
<p>删除此文件,随后重新生成 <code>initramfs</code>:</p>
<pre><code>sudo rm /lib/modprobe.d/nvidia-installer-disable-nouveau.conf
sudo update-initramfs -u
</code></pre>
<h2 id="3清理配置文件">3.清理配置文件</h2>
<p>驱动安装过程中可能生成了部分配置文件,删除(或改名)即可。</p>
<pre><code>sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak
</code></pre>
<p>清理环境,参考文章Debian 12 安装Nvidia驱动及黑屏故障排除(纯保姆级教程)_debian12 nvidia-CSDN博客:</p>
<p>移除 CUDA 和相关库:</p>
<pre><code class="language-bash">sudo apt-get --purge remove "cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"
</code></pre>
<p>移除 NVIDIA 驱动程序和相关的库:</p>
<pre><code class="language-bash">sudo apt-get --purge remove "*nvidia*" "libxnvctrl*"
</code></pre>
<p>自动移除不再需要的依赖包:</p>
<pre><code class="language-bash">sudo apt-get autoremove
</code></pre>
<p>更新索引并清理缓存(可选):</p>
<pre><code class="language-bash">sudo apt-get update
sudo apt-get clean
</code></pre>
<p>重新启动,恢复正常。</p>
<pre><code class="language-bash">root@debian:~# lsmod | grep nouveau
nouveau 243302416
mxm_wmi 163841 nouveau
i2c_algo_bit 163841 nouveau
drm_display_helper 1843201 nouveau
drm_ttm_helper 163841 nouveau
ttm 942082 drm_ttm_helper,nouveau
drm_kms_helper 2129922 drm_display_helper,nouveau
drm 61440011 drm_kms_helper,drm_display_helper,drm_ttm_helper,ttm,nouveau
video 655362 asus_wmi,nouveau
wmi 368645 video,asus_wmi,wmi_bmof,mxm_wmi,nouveau
button 245761 nouveau
</code></pre>
<pre><code class="language-bash">cat /var/log/Xorg.0.log | grep nouveau
[ 384.340] (==) Matched nouveau as autoconfigured driver 0
[ 384.341] (II) LoadModule: "nouveau"
[ 384.341] (II) Loading /usr/lib/xorg/modules/drivers/nouveau_drv.so
[ 384.341] (II) Module nouveau: vendor="X.Org Foundation"
</code></pre>
<p><img src="https://img.foxhank.top/file/1729608977982_image-20241022223904887.png"></p>
<h2 id="4总结">4.总结:</h2>
<ol>
<li>
<p>官方的那个.run文件有大问题,建议还是使用自带的软件包管理器(如:apt)来进行安装(ps:也有可能是我的亮机卡实在太老了...?)</p>
</li>
<li>
<p><del>服务器能跑就不要去动它!!!</del></p>
</li>
</ol>
<blockquote>
<p>个人主页:<code>www.foxhank.cn</code></p>
</blockquote><br><br>
来源:https://www.cnblogs.com/foxhank/p/18514742
頁:
[1]