首页 > 其他分享 >Debian系统显卡驱动从官方驱动回退到Nouveau

Debian系统显卡驱动从官方驱动回退到Nouveau

时间:2024-10-29 23:32:47浏览次数:4  
标签:Nouveau nouveau 显卡 sudo drm nvidia 驱动 modprobe debian

系统环境:

  • Debian 12.5,有桌面环境
  • Nvidia GTX650
  • 显卡驱动:nvidia-tesla-470-470.256.02

本来照着网上的教程想要安装官方的驱动,结果发现虽然nvidia-smi可以正常显示,但是桌面环境却崩掉了,开机不是黑屏就是极低分辨率,显示Software Rendering(软件渲染)。

尝试搜索教程无果,遂放弃,准备回退到nouveau驱动。

Nouveau是一个开源的驱动程序项目,旨在为显卡提供开源驱动支持,其优势在于免费、与Linux内核集成(自动安装);缺点是相比NVIDIA官方闭源驱动,性能通常较低,且对新硬件的支持可能滞后。

1.卸载官方驱动

我使用.run文件安装的驱动,使用

sudo nvidia-uninstall

,如果使用的是apt安装的驱动,使用

sudo apt-get remove --purge '^nvidia-.*'

,等待卸载结束。

image-20241022111337007.png

2.取消黑名单

网上的教程均为查找/etc/modprobe.d/下是否有与nouveau有关字样:

grep -r "nouveau" /etc/modprobe.d/

但我已经删除相关内容,重新启动仍然报错:

root@debian:~$ sudo journalctl -b | grep -i nouveau
10月 22 09:39:48 debian systemd-modules-load[321]: Module 'nouveau' is deny-listed
10月 22 09:40:49 debian /usr/libexec/gdm-x-session[1553]: (==) Matched nouveau as autoconfigured driver 0
10月 22 09:40:49 debian /usr/libexec/gdm-x-session[1553]: (II) LoadModule: "nouveau"
10月 22 09:40:49 debian /usr/libexec/gdm-x-session[1553]: (II) Loading /usr/lib/xorg/modules/drivers/nouveau_drv.so
10月 22 09:40:50 debian /usr/libexec/gdm-x-session[1553]: (II) Module nouveau: vendor="X.Org Foundation"
10月 22 09:40:50 debian /usr/libexec/gdm-x-session[1553]: (II) NOUVEAU driver Date:   Sat Jan 23 12:24:42 2021 -0500
10月 22 09:40:50 debian /usr/libexec/gdm-x-session[1553]: (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

lsmod | grep nouveaudmesg | grep nouveau无输出,提示“Module 'nouveau' is deny-listed”。说明还有某处未取消黑名单。

询问ChatGPT,得知还可能有其它地方存在配置文件:

# 查询modprobe配置
grep -r "nouveau" /lib/modprobe.d/
grep -r "nouveau" /usr/lib/modprobe.d/
# 查询grub配置
cat /etc/default/grub
# GRUB_CMDLINE_LINUX_DEFAULT="quiet"
# 这一行不应该存在类似"nouveau.modeset=0"字样

我发现:

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

原来是Nvidia官方的run文件在/lib/modprobe.d/创建了一个配置文件,导致nouveau禁用。

删除此文件,随后重新生成 initramfs:

sudo rm /lib/modprobe.d/nvidia-installer-disable-nouveau.conf
sudo update-initramfs -u

3.清理配置文件

驱动安装过程中可能生成了部分配置文件,删除(或改名)即可。

sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf.bak

清理环境,参考文章Debian 12 安装Nvidia驱动及黑屏故障排除(纯保姆级教程)_debian12 nvidia-CSDN博客

移除 CUDA 和相关库:

sudo apt-get --purge remove "cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*" "*nvvm*"

移除 NVIDIA 驱动程序和相关的库:

sudo apt-get --purge remove "*nvidia*" "libxnvctrl*"

自动移除不再需要的依赖包:

sudo apt-get autoremove

更新索引并清理缓存(可选):

sudo apt-get update
sudo apt-get clean

重新启动,恢复正常。

root@debian:~# lsmod | grep nouveau 
nouveau              2433024  16
mxm_wmi                16384  1 nouveau
i2c_algo_bit           16384  1 nouveau
drm_display_helper    184320  1 nouveau
drm_ttm_helper         16384  1 nouveau
ttm                    94208  2 drm_ttm_helper,nouveau
drm_kms_helper        212992  2 drm_display_helper,nouveau
drm                   614400  11 drm_kms_helper,drm_display_helper,drm_ttm_helper,ttm,nouveau
video                  65536  2 asus_wmi,nouveau
wmi                    36864  5 video,asus_wmi,wmi_bmof,mxm_wmi,nouveau
button                 24576  1 nouveau
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"

image-20241022223904887.png

4.总结:

  1. 官方的那个.run文件有大问题,建议还是使用自带的软件包管理器(如:apt)来进行安装(ps:也有可能是我的亮机卡实在太老了...?)

  2. 服务器能跑就不要去动它!!!

个人主页:www.foxhank.cn

标签:Nouveau,nouveau,显卡,sudo,drm,nvidia,驱动,modprobe,debian
From: https://www.cnblogs.com/foxhank/p/18514742

相关文章

  • 基于机器学习深度学习驱动的流体力学流场重建技术
    #基于机器学习深度学习驱动的流体力学流场重建技术##引言随着人工智能技术的飞速发展,深度学习作为其重要分支,在流体力学领域展现出巨大的应用潜力。流体力学问题因其高维度、强非线性、大数据量等特点,成为深度学习技术可以带来研究范式创新的重要领域。本文旨在探讨基于机......
  • API 接口:电商行业高效运作的关键驱动
    在电商行业中,API(ApplicationProgrammingInterface,应用程序编程接口)接口正逐渐成为高效运作的关键驱动因素。它就像是电商生态系统中的“桥梁”和“纽带”,连接着不同的软件系统、服务和数据源,为电商企业提供了强大的功能扩展和集成能力。一、API接口在电商行业中的重要......
  • SpringBoot驱动的精准扶贫解决方案
    1系统概述1.1研究背景随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理精准扶贫管理系统的相关信息成为必然。开发合适的精准扶贫管理系统,可以方便管理人员对精准......
  • MBI6671Q聚积升降压LED驱动芯片车规级认证AEC-Q100认证
    引言: MBI6671Q是由聚积(Macroblock)公司推出的一款多拓扑恒流控制器,专为驱动高亮度LED设计。它广泛应用于汽车照明等需要高效、可靠和灵活控制的领域,特别是在高功率LED照明场景中。主要特点:1.宽输入电压范围:MBI6671Q支持5.4V至65V的宽输入电压范围,使其能够适应多种电源环境......
  • input角度:I2C触摸屏驱动分析和编写一个简单的I2C驱动程序
    往期内容本专栏往期内容:input子系统的框架和重要数据结构详解-CSDN博客inputdevice和inputhandler的注册以及匹配过程解析-CSDN博客inputdevice和inputhandler的注册以及匹配过程解析-CSDN博客编写一个简单的Iinput_dev框架-CSDN博客GPIO按键驱动分析与使用:input_dev......
  • ApsaraMQ Serverless 能力再升级,事件驱动架构赋能 AI 应用
    本文整理于2024年云栖大会阿里云智能集团高级技术专家金吉祥(牟羽)带来的主题演讲《ApsaraMQServerless能力再升级,事件驱动架构赋能AI应用》云消息队列ApsaraMQ全系列产品Serverless化,支持按量付费、自适应弹性、跨可用区容灾,帮助客户降低使用和维护成本,专注业务创新。......
  • Micropython PICO 随记-使用PIO驱动Syn6288
    开发环境MCU:Pico1(无wifi版)传感器模块:Syn6288使用固件:自编译版本开发环境:MacBookProSonoma14.5开发工具:Thonny4.1.6开发语言:MicroPython1.20.0资料学习StateMachineApi参考官方代码UART通讯协议Syn6288手册代码使用创建两个StateMachine,分别用于发送待......
  • 点阵数显驱动芯片/数码管显示屏驱动VK1620 SOP20适用于高稳定LED驱动
    VK1620B是一种数码管或点阵LED驱动控制专用芯片,内部集成有3线串行接口、数据锁存器、LED驱动等电路。SEG脚接LED阳极,GRID脚接LED阴极,可支持10SEGx4GRID、9SEGx5GRID、8SEGx6GRID的点阵LED显示面板。适用于要求可靠、稳定和抗干扰能力强的产品。采用SOP20的封装形式。LJQ3036......
  • 如何通过变频驱动器或交流逆变器来控制电机的速度?
    在现代工业和自动化系统中,电机的速度控制是一个至关重要的课题。变频驱动器和交流逆变器作为电机控制的主要设备之一,具有广泛的应用场景和显著的性能优势。一、变频驱动器的基本原理变频驱动器的核心功能是调节电机的输入频率和电压,以此来改变电机的转速。变频驱动器主要由以......
  • LCD驱动
    1.imx6ull的ELCDinterface支持的LCD接口分类8080(MPU)、DOTCLOCK(TFT+RGB)VSYNC(MPU+VSYNC)2.寻找LCD驱动:3.platform_driver要和platform_device挂钩,platform_device可以在代码注册,也可以在设备树注册4.搜索对应的设备树文件4.1cdarch/arm/boot/dts/grep"fsl,imx28-......