# Ubuntu 安装GPU驱动
# 1. 查看是否有显卡
lspci
# 2. 去Nvidia官网下载cuda-toolkit(已包含了对应版本显卡驱动)
https://developer.nvidia.com/cuda-toolkit-archive (opens new window)
# 3. 选择对应的显卡
# 4. 点击搜索,点击下载
# 5. 下载按钮上右键复制链接
# 6. 在系统中安装驱动
# 下载驱动
cd ~
wget https://cn.download.nvidia.com/tesla/460.32.03/NVIDIA-Linux-x86_64-460.32.03.run
#设置权限
chmod 755 NVIDIA-Linux-x86_64-460.32.03.run
# 安装驱动,安装前建议先重启一下,确保xserver没有启动
./NVIDIA-Linux-x86_64-460.32.03.run
中间会提示检测到有更好的安装驱动的方法,要不要终止当前安装,选择继续。 有可能会提示一个dkms相关的东西,选择安装。 会提示要不要安装nvidia的一个32位的库,我选择的是不安装。 等待安装完成
nvidia-smi
出现这个表示安装成功。
# 7. 生成xorg.conf文件
nvidia-xconfig --enable-all-gpus --separate-x-screens
xorg.conf 的文件位置在/etc/X11/xorg.conf 。 默认生成的文件其实已经将BusID写到配置文件中Section "Device"段了,以防万一可以检查下。
cat /etc/X11/xorg.conf
如果没有的话,可以手动添加上去
- 运行命令lspci | grep NVIDIA查询GPU BusID。本示例中,查询到的GPU BusID为**00:07.0 **。需要注意的是这里查询出来的是16进制的。
lspci | grep NVIDIA
- 编辑/etc/X11/xorg.conf,在Section "Device"段添加GPU BusID,如本示例中为BusID "PCI:0:7:0"。需要注意的是这里设置的是10进制的。
vim /etc/X11/xorg.conf
# 8. 重启系统
这里先重启一次再安装下面的,不然DKMS需要安装两遍才有效
reboot
# 9. 安装DKMS
#DKMS全称是Dynamic Kernel Module Support,它可以帮我们维护内核外的这些驱动程序,
#在内核版本变动之后可以自动重新生成新的模块。
apt install dkms
apt install build-essential
#460.32.03是本文档安装驱动的版本,
#可以去这个目录下查询,举例:/usr/src/nvidia-470.57.02/
dkms install -m nvidia -v 460.32.03
# 10. 判断程序是不是会用到驱动
前提是安装了 ubuntu-desktop,可以不启动xserver
nvidia-smi
最下面有程序即可表示程序会用到驱动,如果没有的话,需要检查 xorg.conf 中的BusID的配置。
# 11. 判断OpenGL是不是Nvidia 版本的
apt install mesa-utils
glxinfo | grep OpenGL
Mesa 的版本是系统自带的。SDK的程序会用不上GPU。 NVIDIA 的版本,在合成时会使用到GPU
# 12. 监控GPU运行的情况
#每2秒刷新一次
watch -n 2 nvidia-smi
# 13. 一些遇到的问题
# 1.每次重启系统后,执行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。
应该是由于内核版本与安装驱动时的版本不匹配造成的。 解决方案:
#DKMS全称是Dynamic Kernel Module Support,它可以帮我们维护内核外的这些驱动程序,在内核版本变动之后可以自动重新生成新的模块。
apt-get install dkms
#460.32.03是本文档安装驱动的版本,
#可以去这个目录下查询,举例:/usr/src/nvidia-470.57.02/
dkms install -m nvidia -v 460.32.03
# 2.重装驱动
直接覆盖安装的方式并不能使用;推荐先卸载驱动,再重新安装驱动。
apt-get purge "*nvidia*"
apt-get autoremove
reboot
# 14. 参考文档
← 音频对齐服务 对象存储原始域名添加响应头 →