Ubuntu安装NVIDIA显卡驱动(新手教程)

0. 引言

\qquad 第一次入坑的建议看一下这部分。如果说要问我什么时候应该给Ubuntu装显卡驱动,我建议新系统用户第一件事就是安装显卡驱动,因为显卡驱动一旦失败,那基本上可视化界面就不能用,这个时候再刷机,还稍微方便一些。

首先介绍几个命令

  • ubuntu-drivers devices 查看显卡硬件支持的驱动类型(在使用前需要sudo apt update更新源)
  • nvidia-smi 查看当前显卡驱动(若没有会返回错误,该命令应为显卡驱动自动安装,切勿按照提示手动安装)
  • nvcc -V 查看系统安装的cuda驱动(注意这是系统当前使用的cuda驱动,也可以同时存在多个cuda,使用conda+pytorch可以在多个虚拟环境中管理不同的cuda版本)

例如如下的一组图片:
ubuntu-drivers devices
本机可用的显卡驱动有535,525和470(只是检测到的部分,不代表其他的驱动一定不可用)
nvidia-smi
显卡驱动为525.126.06,cuda最高支持版本为12.0
nvcc-V
本机cuda版本为11.1

1. 方法1 - 使用系统自带渠道安装

\qquad 以我多次失败经验看,新手一定要使用此方法安装。首先进入Ubuntu搜索栏目,找到附加驱动(或者Additional drivers)的一个图标。由于截图的时候侧边栏目自动隐藏就不截图标了,点开之后是这样的。
在这里插入图片描述
\qquad 一般博主会告诉你使用第一个带tested驱动然后点应用更改即可。但我多次尝试发现,选择不带server的nvidia-driver-xxx类型的驱动会更加保险一些,剩下的操作只需要等待应用更改完成,关闭该窗口,重启Ubuntu即可。若重启之后nvidia-smi是正常的,那么恭喜你就已经大功告成了。

2. 方法2 - 手动安装

\qquad 新手请不要采取这个步骤,如果是迫不得已,请确保系统重要资料得已备份,否则后果自负。另外本步骤失败,但是可以重启电脑的用户,请谨慎再操作方法1,除非你确认所有的设置都已得到了还原,不然也有可能会失败。

本部分参考博客:Ubuntu18-22.04安装和干净卸载nvidia显卡驱动——超详细、最简单

2.1. 卸载原有显卡驱动

确保你的电脑里有显卡

lspci | grep -i nvidia

更新软件源列表

sudo apt-get update

卸载原有驱动

sudo apt-get remove --purge nvidia*  

注意此步骤不成功说明原来没有显卡驱动,无须担心。

2.2. 安装显卡驱动

apt-cache search nvidia-driver

如果你已经确定要安装的显卡型号,请加上grep

apt-cache search nvidia-driver | grep -i 525

在这里插入图片描述
当然,也可以在nvidia官网查看推荐驱动:官网链接,但是本文不介绍从官网安装驱动的教程,想学习的朋友请移步到我的参考博客


确认好你需要安装的库之后,首先禁用Ubuntu自带的显卡驱动nouveau(或xorg)。

sudo gedit /etc/modprobe.d/blacklist.conf

最后两行就加上

blacklist nouveau
options nouveau modeset=0

有的Ubuntu系统使用sudo gedit会失败,可以改用sudo vi命令修改文件,用之前请参考此博客熟悉一下vi/vim的命令规则。
接下来更新该设置:

sudo update-initramfs –u

接下来安装lightdm:

sudo apt-get install lightdm

安装完可能出现lightdm设定界面,选择lightdm即可。在按安装之后如果不想用lightdm,想换回gdm3,可以通过以下命令:

sudo dpkg-reconfigure lightdm

在这里插入图片描述

选择你需要的nvidia驱动安装,在此以525为例

sudo apt-get install nvidia-driver-525

确定在重启电脑前做好了你的数据备份!重启电脑!

reboot

如果你的电脑成功进入了登录界面,就可以正常login查看了,仍然是采用引言的nvidia-smi命令进行验证,如果有则恭喜你的驱动安装成功了。

如果没有,非常遗憾:(,你遇到了大多数手动安装显卡驱动者遇到的问题,请查看补救措施,但是补救措施有不一定是完整的,欢迎大家在评论区补充。

2.3. 补救措施

  1. 重启电脑时,在grub界面选择ubuntu advanced options(一般为第二项),如何在跳出的界面中选择第二项启动(一般最新的Ubuntu内核+recovery mode)。不熟悉Ubuntu recovery mode的朋友可以参考这篇博客
  2. 这个时候会弹出一个列表,选择root,按回车输入命令。首先检查显卡驱动是否完好
nvidia-smi

如果返回正常,那么可以尝试

sudo mv /etc/X11/xorg.conf /etc/X11/xorg-backup.conf

即删除并备份了xorg.conf,然后Ctrl+D退出root,在列表中选择resume正常启动Ubuntu,查看是否能正常开机。如果成功,则后面就不用看了;否则,请查看步骤3

3. 如果步骤2返回结果失败,则删除显卡驱动

sudo apt-get remove --purge nvidia*

修改blacklist.conf文件

sudo vi /etc/modprobe.d/blacklist.conf

删掉之前加的两行,用之前请参考此博客熟悉一下vi/vim的命令规则。

blacklist nouveau
options nouveau modeset=0

重启

reboot

再在grub中选择正常Ubuntu启动(一般为第一项),查看是否能正常登录,如若可以,则恭喜你正常恢复了系统。还没有备份赶快进行备份,然后按照方法1安装,或按照方法2尝试其他的驱动。

2.4.额外情况 - 无法开机或屏幕分辨率不可调

还遇到一种额外情况,即将lightdm显示模式切换回gdm3时无法进入登录界面。此时可以先通过2.3的方法先进入recovery mode的root选项,输入

sudo dpkg-reconfigure gdm3

把显示模式改回lightdm,然后resume,此时应该可以正常开机,但是Xorg仍然不在线,这种情况也适用于一直都使用lightdm作为登录界面的朋友。

对于笔记本电脑来说,可能无法调节屏幕亮度和设置分辨率,同时使用xrandr命令查询可用分辨率时也仅有一条。接下来修改grub文件:

sudo vi /etc/default/grub

找到GRUB_GFXMODE=640x480,并把它改为你想要的分辨率,删掉句首的“#”注释即可。这一步也可以在recovery mode的root选项修改,但是不提倡新手这么做,因为写错了grub可能就无法挽救了。
重启,成功后,xrandr 应该会出现多个屏幕分辨率,且在设置里分辨率也是可调的。
在这里插入图片描述

如果还有其他问题的小伙伴,欢迎分享评论区交流。

猜你喜欢

转载自blog.csdn.net/weixin_44044411/article/details/132752621