目录
0. 引言
\qquad 第一次入坑的建议看一下这部分。如果说要问我什么时候应该给Ubuntu装显卡驱动,我建议新系统用户第一件事就是安装显卡驱动,因为显卡驱动一旦失败,那基本上可视化界面就不能用,这个时候再刷机,还稍微方便一些。
首先介绍几个命令
- ubuntu-drivers devices 查看显卡硬件支持的驱动类型(在使用前需要sudo apt update更新源)
- nvidia-smi 查看当前显卡驱动(若没有会返回错误,该命令应为显卡驱动自动安装,切勿按照提示手动安装)
- nvcc -V 查看系统安装的cuda驱动(注意这是系统当前使用的cuda驱动,也可以同时存在多个cuda,使用conda+pytorch可以在多个虚拟环境中管理不同的cuda版本)
例如如下的一组图片:
本机可用的显卡驱动有535,525和470(只是检测到的部分,不代表其他的驱动一定不可用)
显卡驱动为525.126.06,cuda最高支持版本为12.0
本机cuda版本为11.1
1. 方法1 - 使用系统自带渠道安装
\qquad 以我多次失败经验看,新手一定要使用此方法安装。首先进入Ubuntu搜索栏目,找到附加驱动(或者Additional drivers)的一个图标。由于截图的时候侧边栏目自动隐藏就不截图标了,点开之后是这样的。
\qquad 一般博主会告诉你使用第一个带tested驱动然后点应用更改即可。但我多次尝试发现,选择不带server的nvidia-driver-xxx类型的驱动会更加保险一些,剩下的操作只需要等待应用更改完成,关闭该窗口,重启Ubuntu即可。若重启之后nvidia-smi是正常的,那么恭喜你就已经大功告成了。
2. 方法2 - 手动安装
\qquad 新手请不要采取这个步骤,如果是迫不得已,请确保系统重要资料得已备份,否则后果自负。另外本步骤失败,但是可以重启电脑的用户,请谨慎再操作方法1,除非你确认所有的设置都已得到了还原,不然也有可能会失败。
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. 补救措施
- 重启电脑时,在grub界面选择ubuntu advanced options(一般为第二项),如何在跳出的界面中选择第二项启动(一般最新的Ubuntu内核+recovery mode)。不熟悉Ubuntu recovery mode的朋友可以参考这篇博客。
- 这个时候会弹出一个列表,选择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
应该会出现多个屏幕分辨率,且在设置里分辨率也是可调的。
如果还有其他问题的小伙伴,欢迎分享评论区交流。