Linux(Ubuntu)系统上安装(重装)NVIDIA显卡驱动
两种方式在Linux系统上安装NVIDIA显卡驱动
1. RUN文件方式安装
注:这种方式能安装NVIDIA官网上最新的驱动程序
1.1 驱动程序下载
- 查看电脑的显卡型号
lspci | grep -i vga
得到设备型号后(十六进制码),去The PCI ID Repositor 查找相应的型号
- 去NVIDIA官网上下载对应的驱动
wget -c [url]
1.2 禁用集成的nouveau驱动
Ubuntu系统集成的显卡驱动程序是nouveau,它是第三方为NVIDIA开发的开源驱动,我们需要先将其屏蔽才能安装NVIDIA官方驱动。
- 将驱动添加到黑名单blacklist.conf
查看blacklist.conf属性(可省去)
sudo ls -lh /etc/modprobe.d/blacklist.conf
修改blacklist.conf属性(可省去)
sudo chmod 666 /etc/modprobe.d/blacklist.conf
gedit打开blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf
blacklist.conf末尾添加:
blacklist nouveau
options nouveau modeset=0
更新系统
sudo update-initramfs -u
重启系统
reboot
- 验证nouveau是否禁用
lsmod | grep nouveau
没有任何输出信息说明已经被禁用
1.3 配置环境变量(重装驱动不需要这步)
gedit打开配置文件.bashrc
sudo gedit ~/.bashrc
文件末尾添加:
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
使其生效
source ~/.bashrc
1.4 关闭X Server/图形桌面
- 查询X Server是否存在
ps aux | grep X
-
根据不同桌面系统进行关闭
gdm类型桌面系统
sudo /etc/init.d/gdm stop
sudo /etc/init.d/gdm status
lightdm类型桌面系统
sudo /etc/init.d/lightdm stop
sudo /etc/init.d/lightdm status
或者
sudo service lightdm stop
再次查询是否已经关闭
1.5 安装驱动程序
- 卸载已有驱动程序
sudo apt-get remove nvidia-*
或者
sudo apt-get purge nvidia*
- 赋予run文件执行权限
sudo chmod a+x NVIDIA-Linux-x86_64-440.64.run
- 是否已经完全卸载已有驱动
sudo ./NVIDIA-Linux-x86_64-440.64.run --uninstall
- 安装驱动
sudo ./NVIDIA-Linux-x86_64-390.59.run –no-opengl-files
安装的可选参数如下:
- –no-opengl-files 只安装驱动文件,不安装OpenGL文件。这个参数最重要
- –no-x-check 安装驱动时不检查X服务
- –no-nouveau-check 安装驱动时不检查nouveau
后面两个参数可不加
在安装执行的过程中,有如下可选项:
- The distribution-provided pre-install script failed! Are you sure you want to continue? 选择 yes 继
- Would you like to register the kernel module souces with DKMS? This will allow DKMS to automatically build a new module, if you install a different kernel later? 选择 No 继续
- Nvidia’s 32-bit compatibility libraries? 选择 No 继续
- Would you like to run the nvidia-xconfigutility to automatically update your x configuration so that the NVIDIA x driver will be used when you restart x? Any pre-existing x confile will be backed up. 选择 Yes 继续
- 挂载驱动(可省去)
modprobe nvidia
- 重启系统
sudo reboot
- 检查是否安装成功
nvidia-smi
如出现以下信息,说明安装成功
1.6 安装过程中可能出现的问题
1.6.1 安装过程中出现DKMS安装不成功问题
出现错误:Failed to install the kernel module through DKMS.
解决方法:在安装过程中将DKMS的安装选择no,安装完成后执行以下代码并重启机器
sudo rmmod nvidia
sudo nvidia-smi
nvidia-smi 发现没有 kernel mod 会将其自动装载
1.6.2 安装完成后出现版本不匹配的问题
出现错误:Failed to initialize NVML: Driver/library version mismatch.
解决方法1:这个问题出现的原因是kernel mod 的 Nvidia driver 的版本没有更新,一般情况下,重启机器就能够解决,如果因为某些原因不能够重启的话,也有办法reload kernel mod
总结起来就两步:1.unload nvidia kernel mod 2. reload nvidia kernel mod
具体方法:
-
卸载nvidia kernel mod
sudo sudo rmmod nvidia
出现错误:rmmod: ERROR: Module nvidia is in use by: nvidia_modeset nvidia_uvm
需要先卸载nvidia_modeset,nvidia_uvm
查找依赖
lsmod | grep nvidia
卸载相关依赖
sudo rmmod nvidia_uvm
sudo rmmod nvidia_modeset
查找依赖进程
sudo lsof -n -w /dev/nvidia*
kill相关进程
卸载并重新安装
sudo sudo rmmod nvidia
sudo nvidia-smi
解决方法2:重新安装驱动,这样一般都能解决问题
1.6.3 X Server没有关闭
出现错误:You appear to be running an X server; please exit X before installing
解决方法:关闭X Server
1.6.4 nvidia-drm已加载的错误
出现错误:An NVIDIA kernel module ‘nvidia-drm’ appears to already be loaded in your kernel…
解决方法:unload nvidia_drm
sudo lsof | grep nvidia-drm
sudo modprobe -r nvidia-drm
1.6.5 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.
解决方法1:通过DKMS安装驱动
安装DKMS
sudo apt-get install dkms
查看驱动版本
cd /usr/src
ls
重新生成对应nvidia的驱动模块
sudo dkms install -m nvidia -v 440.64
解决方法2:重新通过run文件安装
1.6.6出现找不到cc文件的错误
执行下面的语句,否则安装完成,建立软连接也无法找到cc文件
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install make
2.通过PPA安装驱动
- 添加Graphic Drivers PPA
sudo add-apt-repository ppa:graphics-drivers/ppa
- 查找可用驱动版本
ubuntu-drivers devices
- 查找本机内核版本
cat /proc/driver/nvidia/version
- 更新驱动
sudo apt-get update
- 安装驱动
sudo apt-get install nvidia-415
或者
sudo apt-get install nvidia-driver-415 nvidia-settings nvidia-prime
参考链接
https://www.cnblogs.com/abella/p/10217959.html
https://zhuanlan.zhihu.com/p/94378201
https://blog.csdn.net/Felaim/article/details/100516282
https://blog.csdn.net/Adam_liu94/article/details/79644282
https://www.cnblogs.com/abella/p/10217959.html
https://zhuanlan.zhihu.com/p/94378201
https://blog.csdn.net/Felaim/article/details/100516282