TencentOS Server 3.1 (TK4)安装GPU驱动?

在 TencentOS Server 3.1 (TK4) 上安装 NVIDIA GPU 驱动,通常有以下几种推荐方式。由于 TK4 是基于 CentOS/RHEL 生态优化的系统,最稳定且官方推荐的方式是使用 NVIDIA 提供的 RPM 包或 DKMS 模块。

以下是详细步骤:


✅ 推荐方式一:使用 NVIDIA 官方 RPM 包(适用于大多数场景)

1. 确认系统环境和内核版本

uname -r
cat /etc/os-release

确保你使用的是 标准内核(非 kernel-debug 或自定义内核)。TencentOS Server 3.1 默认使用兼容 RHEL 8 的内核。

2. 禁用 Nouveau 开源驱动(必须步骤)

NVIDIA 专有驱动与 Nouveau 冲突,需禁用它。

编辑 GRUB 配置:

sudo vi /etc/default/grub

在 GRUB_CMDLINE_LINUX 行末尾添加:

rd.driver.blacklist=nouveau modprobe.blacklist=nouveau

然后更新 GRUB:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# 如果是 UEFI 启动,路径可能是 /boot/efi/EFI/tencentos/grub.cfg,请根据实际调整

重启系统:

sudo reboot

验证 Nouveau 是否已禁用:

lsmod | grep nouveau
# 应无输出

3. 安装依赖和构建工具

sudo yum install -y gcc make kernel-devel-$(uname -r) kernel-header-$(uname -r) dkms

⚠️ 注意:如果 kernel-devel 版本不匹配,请先升级内核到最新稳定版:

sudo yum update -y kernel kernel-devel kernel-headers
sudo reboot

4. 下载 NVIDIA 驱动

访问 NVIDIA Driver Download 选择对应显卡型号、Linux 64-bit、并选择 RPM (64-bit) 格式。

或使用命令行下载(以示例版本号为例,请替换为实际版本):

wget https://us.download.nvidia.com/XFree86/Linux-x86_64/535.104.05/NVIDIA-Linux-x86_64-535.104.05.run
chmod +x NVIDIA-Linux-x86_64-535.104.05.run

5. 安装驱动

sudo ./NVIDIA-Linux-x86_64-535.104.05.run --silent --dkms

参数说明:

  • --silent:静默安装
  • --dkms:通过 DKMS 自动编译内核模块,便于后续内核升级时自动重建驱动

安装完成后重启:

sudo reboot

6. 验证安装

nvidia-smi

如果显示 GPU 信息表,则安装成功。


✅ 推荐方式二:使用 TencentOS 仓库中的 NVIDIA 驱动(如有)

TencentOS Server 可能提供经过认证的 NVIDIA 驱动包。检查可用包:

yum search nvidia-driver

如果找到类似 nvidia-driver 或 akmod-nvidia 的包,可直接安装:

sudo yum install -y akmod-nvidia
sudo systemctl enable kmodgen.service
sudo reboot

此方法更易于管理,但驱动版本可能较旧。


✅ 推荐方式三:使用 Docker + NVIDIA Container Toolkit(适合 AI/容器场景)

如果你主要在容器中运行 GPU 任务,建议安装 NVIDIA Container Toolkit:

1. 安装主机驱动(同上)

先完成上述“方式一”的主机驱动安装。

2. 配置 NVIDIA 容器运行时

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.repo | 
  sudo curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.repo | 
  sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo > /dev/null

sudo yum clean expire-cache
sudo yum install -y nvidia-container-toolkit
sudo systemctl restart docker

3. 测试

docker run --rm --gpus all nvidia/cuda:11.0-base nvidia-smi

❗ 常见问题排查

问题 解决方案
nvidia-smi 报错 "NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver" 检查内核模块是否加载:lsmod | grep nvidia;重新安装驱动并启用 DKMS
内核升级后驱动失效 使用 --dkms 安装,或手动重建:sudo dkms autoinstall
Secure Boot 阻止驱动加载 在 BIOS 中关闭 Secure Boot,或为 NVIDIA 模块签名
多显卡识别不全 检查 lspci | grep -i nvidia,确认所有 GPU 被识别;检查 nvidia-smi -L

📌 最佳实践建议

  1. 优先使用 DKMS 安装,以便内核升级时自动适配。
  2. 生产环境建议使用 LTS 驱动版本(如 535.xx),避免使用最新 beta 版。
  3. 如果使用 AI 框架(PyTorch/TensorFlow),确保驱动版本与 CUDA 版本兼容(参考 NVIDIA CUDA Compatibility Table)。
  4. 定期关注 TencentOS 官方文档 获取定制化支持。

如需进一步帮助,请提供你的 GPU 型号和当前内核版本。