文章目录
  1. 1. 安装过程
  2. 2. 遇到问题
  3. 3. 排查过程
  4. 4. 疑问
  5. 5. 继续排查
  6. 6. 验证

本文以TESLA P100显卡机型进行说明
显卡类型:TESLA P100
操作系统:ALIOS 7U2
内核版本:Linux artisf41sna11139225101.k2.na61 4.9.168-016.ali3000.alios7.x86_64 #1 SMP Fri Jun 21 22:41:58 CST 2019 x86_64 x86_64 x86_64 GNU/Linux
内核编译器:GCC 6.5
默认编译器:GCC 4.9.2
内核显卡驱动:NVIDIA-SMI 418.39 Driver Version: 418.39 CUDA Version: 10.1

安装过程

1
2
3
4
sudo yum -y install -b current nvidia-diag-driver-local-repo-rhel7-418.40.04-1.0-1.x86_64
sudo yum -y install -b current cuda-repo-rhel7-10-0-local-10.0.130-410.48-1.0-1.x86_64
sudo yum -y install cuda-drivers
sudo yum -y install cuda

遇到问题

  • 安装完成后,查看/proc/drivers/nvidia/version,发现版本依然是旧版本(418.39)
    • NVRM version: NVIDIA UNIX x86_64 Kernel Module 418.39 Sat Feb 9 19:19:37 CST 2019
  • 重启机器,无效,依然是418.39

排查过程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看显卡是否正确安装
lspci | grep NVIDIA
86:00.0 3D controller: NVIDIA Corporation Device 15f8 (rev a1)
# 查看内核是否加载相关驱动模块
lsmod | grep nvidia
nvidia_uvm
nvidia_drm
nvidia_modeset
nvidia_drm
# 查看内核驱动信息
ls -lh /lib/modules/4.9.168-016.ali3000.alios7.x86_64/kernel/drivers/video
nvidia-drm.ko
nvidia.ko
nvidia-modeset.ko
nvidia-uvm.ko
# 查看nvidia.ko中版本信息
nvidia id: NVIDIA UNIX x86_64 Kernel Module 418.39 Sat Feb 9 19:19:37 CST 2019

以上可以确定,因系统内核视频相关驱动中,nvidia.ko的版本号是418.39,故在系统重启过程后,依然会自动加载该驱动核心

疑问

  • 为什么安装新版显卡驱动的过程中,没有生成对应版本的nvidia.ko和相关模块?

继续排查

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# 找到NVIDIA DRIVER源码路径
cd /usr/src/nvidia-418.40.04
# 手动执行编译
make
# 发现报错
无法连接Linux Kernel(因Linux Kernel是使用的gcc 6.5编译的),而当前系统默认GCC版本为4.9.2
t-search-gcc-4.9.2-3.alios7.x86_64
# GCC升级文档
http://gitlab.alibaba-inc.com/gnu/gnu-manifest/wikis/how-to-install-gcc65
# 按文档中方法,升级系统默认GCC为6.5
yum install alios7u-2_17-gcc-6-repo.noarch -y
yum install gcc gcc-c++ libstdc++-static gdb coreutils binutils bash
# 删除系统默认加载的418.39内核驱动
sudo rm -f /lib/modules/4.9.168-016.ali3000.alios7.x86_64/kernel/drivers/video/nvidia*.ko
# 删除已安装的NVIDIA DRIVER
rm -f /usr/lib64/*nvidia*418.39*
sudo nvidia-uninstall
sudo yum remove nvidia*
sudo yum remove cuda*
# 删除已加载的内核模块
sudo rmmod nvidia_drm
sudo rmmod nvidia_modeset
sudo rmmod nvidia_uvm
sudo rmmod nvidia
# 重新安装新版本驱动(418.40.04)
执行“安装”部分命令即可
# 验证一:系统驱动目录video中无旧版本ko
ls -lh /lib/modules/4.9.168-016.ali3000.alios7.x86_64/kernel/drivers/video
# 验证二:新版驱动安装后,自动生成新版本ko
ls -lh /lib/modules/4.9.168-016.ali3000.alios7.x86_64/extra
nvidia-drm.ko
nvidia.ko
nvidia-modeset.ko
nvidia-uvm.ko
# 验证三:NVIDIA内核模块成功加载
lsmod | grep nvidia
nvidia_drm
nvidia_modeset
nvidia_uvm
nvidia

验证

1
2
3
4
5
6
7
8
# 重启机器,以确保相关内核模块被正确加载
sudo reboot
# 验证一:version
cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 418.40.04 Fri Mar 15 00:59:12 CDT 2019
GCC version: gcc version 6.5.1 20190307 (Alibaba 6.5.1-1 2.17) (GCC)
# 验证二:nvidia-smi
NVIDIA-SMI 418.40.04 Driver Version: 418.40.04 CUDA Version: 10.1
文章目录
  1. 1. 安装过程
  2. 2. 遇到问题
  3. 3. 排查过程
  4. 4. 疑问
  5. 5. 继续排查
  6. 6. 验证