当前位置: 首页 > article >正文

Ubuntu 安装英伟达显卡驱动问题记录

建议

无论什么版本的系统,都建议从官网下载驱动,一般下载下来后是一个 run 开头的可执行程序,直接在命令行执行就可以。

之所以这么建议,是因为使用 包管理工具安装的驱动一般都是社区版本,社区版本的问题就是没有签名,需要在 BIOS 内关闭 security boot 才可以加载对应的驱动,我找半天没找到到这个设置在哪关闭,比较头大。

安装驱动

官网查询驱动类表

首先搞清楚自己是什么型号的显卡,然后去官网 https://www.nvidia.com/en-us/drivers/
一步一步的选择型号,到最后会给一个合适当前显卡的驱动列表;

命令行查询推荐驱动

然后在 Ubuntu 命令执行
ubuntu-drivers devices
会输出推荐的显卡版本如下

~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00002684sv00001462sd00005103bc03sc00i00
vendor   : NVIDIA Corporation
manual_install: True
driver   : nvidia-driver-535 - distro non-free
driver   : nvidia-driver-550-open - distro non-free
driver   : nvidia-driver-535-open - distro non-free
driver   : nvidia-driver-545 - distro non-free
driver   : nvidia-driver-535-server-open - distro non-free
driver   : nvidia-driver-545-open - distro non-free
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-550 - distro non-free recommended
driver   : xserver-xorg-video-nouveau - distro free builtin

确定驱动版本

可以确定 nvidia-driver-550 是当前系统推荐的版本,去官网合适的驱动列表里找 550 对应的版本即可。

下载并安装

安装之前需要先清楚之前残留的驱动文件执行如下命令

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

然后执行下载的驱动文件
例如是 NVIDIA-Linux-x86_64-550.142.run
安装的时候需要注意
如果询问是否生成签名,需要选择是,生成签名的密钥对,我选择新生成的,没有选择使用现有的。

chmod +x NVIDIA-Linux-x86_64-550.142.run
sudo ./NVIDIA-Linux-x86_64-550.142.run

安装完成后重启系统即可
重启完执行如下命令,如果可以正常执行,没抱错就算安装成功了。

nvidia-smi

如果失败会提示如下

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

禁用 nouveau 驱动

如果失败了首先需要确定下是不是因为有内建的 nouveau。

nouveau 是一个开源的 NVIDIA 显卡驱动,可能与 NVIDIA 官方的驱动发生冲突。为了解决这个问题,你需要禁用 nouveau 驱动。

  1. 创建文件 /etc/modprobe.d/blacklist-nouveau.conf 并添加以下内容:
blacklist nouveau
options nouveau modeset=0
  1. 更新 initramfs:
sudo update-initramfs -u
  1. 重启系统
sudo reboot

如果失败了,首先需要确定驱动是否加载

lsmod | grep nvidia

如果没有加载可以尝试加载后再验证

sudo modprobe nvidia

如果加载成功可以输入如下命令验证一下

nvidia-smi

如果加载失败提示如下信息

可能如下原因

  1. 当前内核版本与安装的 NVIDIA 驱动不兼容。
  2. NVIDIA 驱动未正确安装或驱动模块未编译。
  3. Secure Boot 阻止了内核模块的加载。

如果是 Secure Boot 原因,会提示没有签名,应该就是因为你安装驱动的时候没有生成签名,解决办法就是关闭 BIOS 中的 security boot,或者重新安装驱动并生成签名。


http://www.kler.cn/a/468133.html

相关文章:

  • 【C++】字符串与字符数|组操作详解:strcpy 和 strcat 的使用与解析
  • element-ui 2的级联选择器,回显已存储的子选项名称
  • Echart实现3D饼图示例
  • (leetcode算法题)384. 打乱数组 398. 随机数索引
  • 【情感】程序人生之情感关系中的平等意识(如何经营一段长期稳定的关系 沸羊羊舔狗自查表)
  • 【信息系统项目管理师】高分论文:论信息系统项目的风险管理(城市停车诱导系统)
  • 面试场景题系列:设计爬虫系统
  • 新能源电动汽车动力电池技术
  • OSPF一些基础概念
  • 云从科技Java面试题及参考答案
  • STM32F1学习——PWMI模式(IC输入捕获)
  • uniapp H5页面实现懒加载
  • Fireworks AI:图像/PDF非文本内容转LLM可读文本
  • pytorch torch.scatter_reduce函数介绍
  • 使用Java Selenium修改打开页面窗口大小
  • 线程-8-日志_线程池
  • 比较 FreeSWITCH 的 asr 事件和回调函数
  • docker 转移文件到容器内部 以修改nextcloud添加域名信任 为例子
  • 【面试】后端开发面试中常见数据结构及应用场景、原理总结
  • 深入解析桥接模式、NAT模式与仅主机模式
  • 大模型微调技术: 从基于Stable Diffusion的绘画谈起
  • ceph文件系统
  • 自主可控,体验跃升丨恒拓高科亮相“HDD·广东鸿蒙生态伙伴论坛”
  • Postgresql 命令还原数据库
  • [C#]C# random.Next(0,1)包含0和1吗
  • Java 性能调优实战