写点Linux -- Ubuntu 安装Nvidia显卡驱动

方法一

大佬的评论推荐的apt安装方式,可以随着upgrade更新,暂未试用。
可以参考nvidia和ubuntu官方


方法二

.run文件安装方式,目前我自己机器的安装方式,长期使用暂未出现问题,装完后需要禁止内核更新。

可以参考 Nvidia 驱动的README:
https://download.nvidia.com/XFree86/Linux-x86_64/550.127.05/README/installdriver.html

写在前面

不要随便运行 sudo apt upgrade,
安装完后,如果更新了系统内核,nvidia-smi命令找不到显卡,请运行如下,并禁止内核更新

#查找nvidia版本
ls /usr/src | grep nvidia
#运行
sudo apt-get install dkms 
sudo dkms install -m nvidia -v 535.86.05

禁止Ubuntu内核更新

sudo vim /etc/apt/apt.conf.d/10periodic
#更改
APT::Periodic::Unattended-Upgrade "1";
#为:
APT::Periodic::Unattended-Upgrade "0";
#打开
sudo vim /etc/apt/apt.conf.d/20auto-upgrades
#更改
APT::Periodic::Unattended-Upgrade "1";
为:
APT::Periodic::Unattended-Upgrade "0";

安装 Nvidia

下载

https://www.nvidia.com/en-us/drivers/

禁用

禁用BIOS中的secure boot禁用安全引导,改为disable
F2–Boot–Secure Boot OS Type-- --Other OS Secure Boot Model 选 Custom

禁用nouveau驱动

#查看nouveau驱动是否运行,有输出则在运行
lsmod | grep nouveau
#创建blacklist-nouveau.conf
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
#加入如下一行
blacklist nouveau options nouveau modeset=0
#更新设置并重启:
sudo update-initramfs -u 
sudo reboot
#重启后查看是否禁用成功,无输出
lsmod | grep nouveau

卸载旧驱动

登录时按ctrl + alt + F3进入tty3命令行界面,并使用用户名密码登录。

#安装依赖
sudo apt install gcc g++ make
#查看当前用的是lightdm还是gdm3 
cat /etc/X11/default-display-manager 
#关闭图形界面服务
sudo service gdm3 stop
#卸载旧的驱动
#for case1: original driver installed by apt-get:
sudo apt-get remove --purge nvidia*
#for case2: original driver installed by runfile:
sudo chmod +x *.run 
sudo ./NVIDIA-Linux-x86_64-384.59.run --uninstall

安装

-no-x-check:关闭x服务;-no-nouveau-check:禁用nouveau;-no-opengl-files:不安装openGL文件;

sudo chmod a+x NVIDIA-Linux-x86_64-410.78.run 
sudo ./NVIDIA_Linux-x86_64-410.78.run -no-x-check -no-nouveau-check -no-opengl-files

Alternate method of installing the NVIDIA drive was detected…
选【Continue installation】
Install NVIDIA’s 32bit compatibility…
选【NO】
Would you like to run the nvidia-xcongfig utility to automatically update you x configuration file.
选【NO】

# 挂载驱动
modprobe nvidia
# 打开图形界面
sudo service gdm3 start
# 验证驱动是否安装成功
nvidia-smi

安装 CUDA

下载
https://developer.nvidia.com/cuda-toolkit-archive
官方安装doc
https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html#ubuntu-x86-64-run

安装 cuDNN

注册下载
https://developer.nvidia.com/cudnn
官方安装doc
https://docs.nvidia.com/deeplearning/cudnn/latest/installation/linux.html#ubuntu-debian-local-installation

49 个赞

是这样的,这种 linux 的帖子肯定要给赞的。

9 个赞

麻烦,还是wsl吧

3 个赞

把始皇引来了, :lark_101: :lark_101:

3 个赞

我只能告诉你,用官方源安装最好,你自己手动装的才指不定出什么问题。。。。

之前网上搜到的教程大部分是采用方式,用了很长时间了暂时没遇到问题

点赞点赞,装很多次了

1 个赞

有没有linux 入门的教程哈

1 个赞

最好是通过源安装,手动安装指不定依赖有问题

它指的是通过apt,pacman这种包管理工具装,你手动装可能在更新某个库的时候会导致手动安装的NVIDIA驱动出现依赖错误

感谢大佬教程。

不是,谁告诉你英伟达没有闭源驱动了,debian加上non-free源就可以直接apt安装,Ubuntu的源里也有,不知道的话你直接用自带APP(附带驱动更新)安装就可以的啊,官方源自动装依赖和内核头文件,更新也是一起更新的,这样才不会出问题,我给师兄装的Ubuntu跑了一年多了4090没出任何问题,自己用debian和arch也是官方源也没出过问题

我一猜就知道你是网上搜的…简中互联网的历史垃圾实在害人啊…建议看看arch和debian的Wiki,这种涉及到内核的东西自己手撸太容易g了

3 个赞

所言甚是。教程最好看对应发行版的wiki,不要网上随便搜到一篇教程就开始操作,很多教程过时了不说,好些还是从网上随便收集一下东拼西凑出来的

1 个赞

大佬厉害。学习了下:apt 包中也是有nvidia闭源驱动的。如下

$ apt search nvidia-driver

Sorting... Done
Full Text Search... Done
nvidia-driver-550/noble-security,noble-security 550.120-0ubuntu0.24.04.1 amd64
  NVIDIA driver metapackage

nvidia-driver-550-open/noble-security,noble-security 550.120-0ubuntu0.24.04.1 amd64
  NVIDIA driver (open kernel) metapackage

nvidia-driver-550-server/noble-security,noble-security 550.127.05-0ubuntu0.24.04.1 amd64
  NVIDIA Server Driver metapackage

nvidia-driver-550-server-open/noble-security,noble-security 550.127.05-0ubuntu0.24.04.1 amd64
  NVIDIA driver (open kernel) metapackage

大佬评论 get到了一个新的安装方式

大家也可以参考方法一的安装方式

apt安装方式中有它的闭源驱动我刚了解到,可以跟着upgrade更新很方便。

如上我用的方法二 .run文件安装方式也是Nvidia官方doc中的方式:

https://download.nvidia.com/XFree86/Linux-x86_64/550.127.05/README/installdriver.html

方法二也是Nvidia官方每个驱动版本自带README,见上一楼

apt不是一直自带闭源驱动的么,似乎20.04的时候就有,起码22.04肯定有,甚至有GUI,叫附加驱动,点点鼠标就行了,有必要自己去nv官网下run文件么

因为之前两家一直不对付

NVIDIA 不想开源, Linus 不想让非开源的东西加进去

我默认了apt没有闭源 :rofl:

之前一直用.run, 下次试试apt,现在貌似开源是Nvidia推荐的版本,更强大

你如果去仔细读一下wiki的话,Linux发行版都不是很推荐手动去安装包,因为你得手动去维护这些依赖关系。用包管理的话是由上游统一处理依赖关系

1 个赞