手动安装 Tesla 驱动-Linux

最近更新时间:2025-05-08 18:40:22

我的收藏

操作场景

GPU 云服务器正常工作需提前安装正确的基础设施软件,对 NVIDIA 系列 GPU 而言,有以下两个层次的软件包需要安装:
驱动 GPU 工作的硬件驱动程序。
上层应用程序所需要的库。
若把 NVIDIA GPU 用作通用计算,则需安装 Tesla Driver + CUDA。本文介绍如何安装 Tesla Driver,如何安装 CUDA 请参见 安装 CUDA 指引
说明:
NVIDIA GPU 实例的类型包括物理直通卡实例(整卡 GPU)和 vGPU 实例(非单颗 GPU,例如1/4GPU)。
物理直通的 GPU 可以使用 Tesla 驱动来支持计算场景,也可以使用 GRID 驱动支持渲染场景。
vGPU 只能使用特定版本的 GRID 驱动支持不同场景。

操作步骤

Linux 驱动安装

Linux 驱动安装采用 Shell 脚本安装方式,适用于任何 Linux 发行版,包括 TencentOS,Ubuntu 等。
NVIDIA Tesla GPU 的 Linux 驱动在安装过程中需要编译 kernel module,系统需提前安装 gcc 和编译 Linux Kernel Module 所依赖的包,例如 kernel-devel-$(uname -r) 等。本文提供 TencentOS 及 Ubuntu 系统操作步骤,请您按需选择:
TencentOS Server 2.4
TencentOS Server 3.1
Ubuntu
1. 执行以下命令,检查当前系统中是否已安装 dkms。
rpm -q dkms
返回结果如下图,则表示已安装 dkms。

如未安装 dkms,则执行以下命令进行安装。
sudo yum install -y dkms
2. 登录 NVIDIA 驱动下载 页面。
3. 根据实例操作系统及实例规格,选择对应系列。实例规格信息请参见 实例类型。本文以 V100 为例,如下图所示:
注意:
选择 Linux 64-bit 即表示下载 shell 安装文件。

4. 单击查找搜寻驱动,选择要下载的驱动版本。

5. 
选择特定的版本单击查看进入下载页面,复制下载按钮的链接地址。如下图所示:


6. 参见 使用标准方式登录 Linux 实例(推荐),登录 GPU 实例。您也可以根据实际操作习惯,选择其他不同的登录方式:
7. 使用 wget 命令,粘贴 步骤5 中复制的链接地址,下载安装包。请将命令中的 xxxx 替换为您复制的链接地址。
wget xxxx
8. 执行以下命令,修改安装包权限。请将命令中的 xxxx 替换为您实际的驱动版本号。
chmod +x NVIDIA-Linux-x86_64-xxxx.run
9. 由于 NVIDIA 驱动的安装需要依赖 kernel-devel 和 kernel-headers,请依次执行以下命令,检查当前系统中是否已安装 kernel-devel 和 kernel-headers 包,且版本要与当前内核版本一致。
rpm -qa |grep -i kernel
返回结果如下,则表示已安装 kernel-devel 和 kernel-headers。

如果在回显信息中,您没有找到当前内核版本的 kernel-devel-* 和 kernel-headers-*,您需要自行安装对应内核版本的 kernel-devel 和 kernel- headers 包。
sudo yum install -y kernel-headers-$(uname -r).tl2.x86_64 kernel-devel-$(uname -r).tl2.x86_64
10. 升级 gcc 版本,TencentOS 2.4 的默认 gcc 版本为 4.8.5,需使用 gcc 8 编译 nvidia 内核模块。
执行如下命令可查看 gcc 版本。
gcc --version
如下图所示,gcc 版本为4.8.5。

参考如下步骤使用 SCL(Software Collection) 安装 gcc 8,SCL(Software Collection) 使您能够在系统上构建并同时安装相同组件的多个版本,而不会影响从分发版安装的软件包的系统版本。
sudo yum -y install tlinux-release-scl #安装TencentOS的scl源
sudo yum -y install devtoolset-8-gcc #安装scl的提供的gcc 8
sudo scl enable devtoolset-8 bash #激活scl提供的gcc
sudo gcc --version #查看gcc版本
11. 执行命令安装驱动程序,根据提示进行后续操作。请将命令中的 xxxx 替换为您实际的驱动版本号。
sudo sh NVIDIA-Linux-x86_64-xxxx.run --ui=none --disable-nouveau --no-install-libglvnd --dkms --no-cc-version-check -s
12. 安装完成后,执行以下命令进行验证,如返回 GPU 信息,则说明驱动安装成功。
nvidia-smi
13. 重新生成 initramfs。
dracut -f
1. 执行以下命令,检查当前系统中是否已安装 dkms。
rpm -q dkms
返回结果如下图,则表示已安装 dkms。

如未安装 dkms,则执行以下命令进行安装。
sudo yum install -y dkms
2. 登录 NVIDIA 驱动下载 页面。
3. 根据实例操作系统及实例规格,选择对应系列。实例规格信息请参见 实例类型。本文以 V100 为例,如下图所示:
注意:
选择 Linux 64-bit 即表示下载 shell 安装文件。

4. 单击查找搜寻驱动,选择要下载的驱动版本。

5. 
选择特定的版本单击查看进入下载页面,复制下载按钮的链接地址。如下图所示:


6. 参见 使用标准方式登录 Linux 实例(推荐),登录 GPU 实例。您也可以根据实际操作习惯,选择其他不同的登录方式:
7. 使用 wget 命令,粘贴 步骤5 中复制的链接地址,下载安装包。请将命令中的 xxxx 替换为您复制的链接地址。
wget xxxx
8. 执行以下命令,修改安装包权限。请将命令中的 xxxx 替换为您实际的驱动版本号。
chmod +x NVIDIA-Linux-x86_64-xxxx.run
9. 由于 NVIDIA 驱动的安装需要依赖 kernel-devel 和 kernel-headers,请依次执行以下命令,检查当前系统中是否已安装 kernel-devel 和 kernel-headers 包,且版本要与当前内核版本一致。
rpm -q |grep -i kernel
返回结果如下,则表示已安装 kernel-devel 和 kernel-headers。

如果在回显信息中,您没有找到当前内核版本的 kernel-devel-* 和 kernel-headers-*,您需要自行安装对应内核版本的 kernel-devel 和 kernel- headers 包。
sudo yum install -y kernel-headers-$(uname -r).tl3.x86_64 kernel-devel-$(uname -r).tl3.x86_64
10. 执行命令安装驱动程序,根据提示进行后续操作。请将命令中的 xxxx 替换为您实际的驱动版本号。
sudo sh NVIDIA-Linux-x86_64-xxxx.run --ui=none --disable-nouveau --no-install-libglvnd --dkms --no-cc-version-check -s
11. 安装完成后,执行以下命令进行验证,如返回 GPU 信息,则说明驱动安装成功。
nvidia-smi
12. 重新生成 initramfs。
dracut -f
13. 开启常驻模式。
sudo nvidia-persistenced
说明:
以下步骤适用于直通卡型(GPU 卡数 ≥ 1)Ubuntu 系统 Tesla 驱动和 GRID 驱动安装,若您使用 GRID 驱动,请参考文档申请和配置 GRID license,详情请参见 安装 NVIDIA GRID 驱动
1. 执行以下命令,检查当前系统中是否已安装 dkms。
dpkg -l | grep -i dkms
返回结果如下图,则表示已安装 dkms。

若返回结果为空,则表明未安装 dkms,执行以下命令进行安装。
sudo apt-get install dkms -y
2. 登录 NVIDIA 驱动下载 页面
3. 根据实例操作系统及实例规格,选择对应系列。实例规格信息请参见 实例类型。本文以 V100 为例,如下图所示:
注意:
选择 Linux 64-bit 即表示下载 shell 安装文件。

4. 单击查找搜寻驱动,选择要下载的驱动版本。

5. 
选择特定的版本单击查看进入下载页面,复制下载按钮的链接地址。如下图所示:


6. 参见 使用标准方式登录 Linux 实例(推荐),登录 GPU 实例。
7. 使用 wget 命令,粘贴 步骤5 中复制的链接地址,下载安装包。请将命令中的 xxxx 替换为您复制的链接地址。
wget xxxx
8. 执行以下命令,修改安装包权限。请将命令中的 xxxx 替换为您实际的驱动版本号。
chmod +x NVIDIA-Linux-x86_64-xxxx.run
9. 由于 NVIDIA 驱动的安装需要依赖 gcc 和 linux-kernel-headers,请依次执行以下命令,检查当前系统中是否已安装 gcc 和 kernel-devel 包。
dpkg -l | grep -i gcc
dpkg -l | grep -i linux-headers
返回结果如下,则表示已安装 gcc 和 kernel-devel。

若返回结果为空,则表明未安装,执行以下命令进行安装。
sudo apt-get install gcc linux-headers-$(uname -r) -y
10. 安装 libgl1-mesa-glx。
sudo apt install libgl1-mesa-glx -y
11. 执行命令安装驱动程序,根据提示进行后续操作。请将命令中的 xxxx 替换为您实际的驱动版本号。
sudo sh NVIDIA-Linux-x86_64-xxxx.run --ui=none --disable-nouveau --no-install-libglvnd --dkms --no-cc-version-check -s
12. 安装完成后,执行以下命令进行验证,如返回 GPU 信息,则说明驱动安装成功。
nvidia-smi
13. 更新 initramfs。
sudo update-initramfs -u
14. 开启常驻模式。
sudo nvidia-persistenced

安装失败原因

Linux 系统驱动安装失败表现为 nvidia-smi 无法工作,通常原因如下:
1. 系统缺乏编译 kernel module 所需要的包,如 gcc、kernel-devel-xxx 等,导致无法编译,最终安装失败。
2. 系统里面存在多个版本的 kernel,由于 DKMS 的不正确配置,导致驱动编译为非当前版本 kernel 的 kernel module,导致 kernel module 安装失败。
3. 安装驱动后,升级了 kernel 版本导致原来的安装失效。
4. 确认是否有安装 nouveau 驱动,如果有安装需卸载。