1.禁用系统自带驱动nouveau
lsmod | grep nouveau
# 有输出说明正在工作,需要禁用,打开设置文件
sudo vim /etc/modprobe.d/blacklist-nouveau.conf
# 将下面两行粘贴到打开的文件中
blacklist nouveau
options nouveau modeset=0
# 保存后退出,更新配置
sudo update-initramfs -u
# 重启
sudo reboot
# 通过第一条指令检查是否禁用
2.查看推荐版本显卡驱动
ubuntu-drivers devices
# 换源后发现推荐结果会不同
# 如果返回为空,添加官方ppa的源,再更新
###
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
###
找到推荐的版本(记住这个三位数),后缀为 recommend;
https://www.nvidia.com/download/index.aspx
打开这个网站,选择型号并下载.run文件(这里版本应该和上面版本一致,如不一致,换源)
.run文件放在自己能找到的英文路径下!
3.安装之前
# 删除旧的nvidia相关
sudo apt-get remove --purge nvidia*
# 更新软件列表
sudo apt-get update
# 安装编译依赖
sudo apt-get install g++
sudo apt-get install gcc
sudo apt-get install make
4.安装驱动
# 停止显示
sudo telinit 3
# 如果进不去,就按Ctrl + Alt + F2~F6中的一个 (分别对应进入tty2~tty6)
# login: 输入用户名
# password: 输入密码
sudo /etc/init.d/gdm3 stop
# 显示 stopping gdm3:gdm3.service
# cd 到.run所在文件夹
sudo chmod 777 NVIDIA-Linux-x86_64-*.run #给你下载的驱动赋予可执行权限,才可以安装
sudo ./NVIDIA-Linux-x86_64-*.run #安装
# 全部默认安装,之后重启显示服务
sudo service gdm3 start
5.问题汇总
1.查看安装日志,找到错误
cat /var/log/nvidia-installer.log
cat /var/log/cuda-installer.log
2.Error: You do not appear to have libc header files installed on your system. Please install your distribution's libc development package
sudo apt-get install build-essential
如果报依赖错误,多尝试换源,包括系统自带的源。
换源时,不要从别人帖子那里复制镜像,去镜像站上复制,下面为清华源网站:
ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
3.Error: The kernel module failed to load. Secure boot is enabled on this system, so this is likely because it was not signed by a key that is trusted by the kernel. Please try installing the driver again, and sign the kernel module when prompted to do so.
BIOS没有关闭 Secure boot
解决:
- 重启电脑在主板信息界面,按
F2
或Del
进入BIOS界面 - 按
F7
进入高级设置菜单 - 在菜单栏中点击进入
启动
分页 - 将快速启动设置为
Disabled
- 点击 安全启动菜单
- 操作系统类型如果是双系统依旧保持UEFI模式,如果不是双系统,设置为其他操作系统
- 点击 密钥管理
- 点击 清除安全启动密钥,再点击确认清除
- 保存设置并退出
4.Error: Unable to load the kernel module 'nvidia.ko'.
# 重启电脑
reboot
# 在用户登录界面,按 Alt + Ctrl + F2 进入命令行
sudo systemctl isolate multi-user.target # 进入无窗口界面
# 输入用户名与密码进行登录
sudo modprobe -r nvidia_drm
sudo modprobe -r nvidia_modeset
# 重新进入驱动安装
# 退出无窗口界面:
sudo systemctl start graphical.target