# Ubuntu 安装GPU驱动

# 1. 查看是否有显卡

lspci

image.png

# 2. 去Nvidia官网下载cuda-toolkit(已包含了对应版本显卡驱动)

https://developer.nvidia.com/cuda-toolkit-archive (opens new window)

# 3. 选择对应的显卡

image.png

# 4. 点击搜索,点击下载

image.png

# 5. 下载按钮上右键复制链接

image.png

# 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

出现这个表示安装成功。 image.png

# 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

image.png 如果没有的话,可以手动添加上去

  1. 运行命令lspci | grep NVIDIA查询GPU BusID。本示例中,查询到的GPU BusID为**00:07.0 **。需要注意的是这里查询出来的是16进制的。
lspci | grep NVIDIA

image.png

  1. 编辑/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

image.png 最下面有程序即可表示程序会用到驱动,如果没有的话,需要检查 xorg.conf 中的BusID的配置。

# 11. 判断OpenGL是不是Nvidia 版本的

apt install mesa-utils
glxinfo | grep OpenGL

image.png Mesa 的版本是系统自带的。SDK的程序会用不上GPU。 image.png NVIDIA 的版本,在合成时会使用到GPU

# 12. 监控GPU运行的情况

#每2秒刷新一次
watch -n 2 nvidia-smi

image.png

# 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. 参考文档

  1. https://help.aliyun.com/document_detail/163817.htm?spm=a2c4g.11186623.2.2.15b777938EMT6K#concept-g5s-g2z-xdb (opens new window)

  2. https://help.aliyun.com/document_detail/66441.html?spm=a2c4g.11186623.6.625.5d6918b5QwcQCX (opens new window)