赛尔校园公共服务平台 Logo
平台使用
阿里云
百度云
移动云
智算服务
教育生态
登录 →
赛尔校园公共服务平台 Logo
平台使用 阿里云 百度云 移动云 智算服务 教育生态
登录
  1. 首页
  2. 阿里云
  3. GPU云服务器
  4. 服务支持
  5. 故障排除
  6. 内核更新时无法正常加载NVIDIA GPU(Tesla)驱动

内核更新时无法正常加载NVIDIA GPU(Tesla)驱动

  • 故障排除
  • 发布于 2025-04-14
  • 0 次阅读
文档编辑
文档编辑

当升级GPU实例的操作系统(例如Alibaba Cloud Linux、RedHat、CentOS、Ubuntu等)内核时,可能会因为两个内核的kABI(Kernel Application Binary Interface)不一致,导致旧内核上构建的GPU(Tesla)驱动无法在新的内核上加载。内核升级后,请根据内核的kAPI(Kernel Application Programming Interface)是否存在变化,采取不同的方案解决该问题。

问题现象

升级GPU实例的操作系统内核时,出现GPU(Tesla)驱动无法在新的内核上加载,即无法在新的内核版本上插入旧内核的NVIDIA的KO,导致该驱动无法正常使用。报错信息如下:

报错截图.jpg

问题原因

升级内核包后导致NVIDIA GPU(Tesla)驱动无法加载的可能原因如下:

  • 升级前后两个内核的kABI不一致,导致旧内核上构建的NVIDIA GPU(Tesla)驱动无法在新内核上加载。

  • NVIDIA GPU(Tesla)驱动的默认KO(Kernel Object)安装目录不在 /lib/modules/(uname−r)/extra下,导致新的内核包安装时无法对其创建软链接。

解决方案

基于以上原因,根据内核的kAPI影响情况,采取不同的解决方案:

  • 如果内核升级后,内核的kAPI不受影响,请通过DKMS自动构建NVIDIA GPU(Tesla)驱动。

  • 如果内核升级后,内核的kAPI受到影响发生变化,无法通过DKMS自动构建NVIDIA GPU(Tesla)驱动,请重新适配NVIDIA GPU(Tesla)驱动。

通过DKMS自动构建NVIDIA GPU(Tesla)驱动

  1. 在NVIDIA GPU(Tesla)驱动上安装DKMS。

    1. 远程连接GPU实例。

      本文以Alibaba Cloud Linux 3系统的gn7i实例为例,具体操作,请参见通过密码或密钥认证登录Linux实例。

    2. 在GPU实例上安装DKMS。

      sudo yum install dkms
    3. 手动为GPU安装NVIDIA GPU(Tesla)驱动。

      具体操作,请参见在GPU计算型实例中手动安装Tesla驱动(Linux)。

      安装过程中,请注意以下几点:

      • 出现以下提示(即是否将内核模块源代码注册到DKMS)时,选择Yes。

        DKMS.jpg

      • 选择Yes后NVIDIA GPU可能会报注册失败提示(如下图所示),您无需担心,直接单击OK即可。

        DKMS-OK.jpg

      • 根据实际需要选择是否安装NVIDIA的32位兼容性库。

        兼容32位.jpg

    4. 执行以下命令,检测DKMS的当前状态。

      sudo dkms status

      结果显示如下,表示DKMS已安装成功。

      注册到dkms.jpg

    5. 执行ls命令,查看/usr/src/nvidia-${nvidia 驱动版本}目录下是否存放NVIDIA GPU(Tesla)驱动相关文件。

      本示例以nvidia-${nvidia 驱动版本}为nvidia-470.141.03为例,请替换成您实际的驱动版本。

      目录.jpg

      说明

      NVIDIA GPU(Tesla)驱动默认将其相关代码或文件存放在 /usr/src/nvidia-${nvidia 驱动版本} 目录下,以便DKMS在内核更新后自动重新编译和安装驱动程序的内核模块。

  2. 安装新内核触发DKMS自动构建NVIDIA GPU(Tesla)驱动。

    本示例以新内核版本5.10.134-15.al8为例,请您根据业务需要替换为实际的内核版本。

    重要

    建议先安装 kernel-devel包然后安装kernel/kernel-core包,否则,DKMS不会自动构建NVIDIA GPU(Tesla)驱动。因为kernel/kernel-core包触发DKMS,而DKMS构建NVIDIA GPU(Tesla)驱动需要kernel-devel包,此时需要手动触发DKMS构建NVIDIA GPU(Tesla)驱动。具体操作,请参见步骤3:手动触发DKMS构建Tesla驱动。

    1. 执行以下命令,安装新内核的kernel-devel包。

      sudo rpm -ivh kernel-devel-5.10.134-15.al8.x86_64.rpm --force

      kernel-devel.jpg

    2. 安装kernel/kernel-core包。

      本示例以安装kernel包为例。对于Alibaba Cloud Linux 3系统来说,需要安装kernel-core包,执行sudo rpm -ivh kernel-core-5.10.134-15.al8.x86_64.rpm --force命令即可。

      sudo rpm -ivh kernel-5.10.134-15.al8.x86_64.rpm --force

      kernel.jpg

    3. 执行以下命令,检查新内核下NVIDIA GPU(Tesla)驱动是否构建成功。

      find /lib/modules/5.10.134-15.al8.x86_64/ -name *nvidia*

      image

    4. 执行sudo dkms status检查DKMS是否存在新的内核记录。

      image

  3. (条件必选)如果您先安装了kernel/kernel-core包,然后安装kernel-devel包,需手动触发DKMS构建NVIDIA GPU(Tesla)驱动。

    1. 执行以下命令,构建NVIDIA GPU(Tesla)驱动。

      sudo dkms build -m nvidia -v ${nvidia 驱动的版本} -k ${新的内核版本} --force

      主要参数说明如下:

      • ${nvidia 驱动的版本}:请替换为NVIDIA GPU(Tesla)驱动的具体版本号,例如470.141.03。

      • ${新的内核版本}:请替换为新内核的具体版本号,例如5.10.134-15.al8.x86_64。

      image

    2. 执行以下命令,安装已构建好的NVIDIA GPU(Tesla)驱动。

      sudo dkms install -m nvidia -v ${nvidia 驱动版本} -k ${新的内核版本} --force

      image

    3. 执行以下命令,检查新内核安装目录下NVIDIA GPU(Tesla)驱动是否已安装。

      find /lib/modules/5.10.134-16.3.al8.x86_64/ -name *nvidia*

      驱动安装.jpg

    4. 执行sudo dkms status检查DKMS是否存在新的内核记录。

      image

重新适配NVIDIA GPU(Tesla)驱动

如果内核升级后导致内核的kAPI受到影响发生变化,通过DKMS无法自动构建和安装NVIDIA GPU(Tesla)驱动,您需要重新适配NVIDIA GPU(Tesla)驱动。具体操作,请参见:在GPU计算型实例中手动安装Tesla驱动(Linux)。

相关文章

使用GPU时出现XID 119XID 120错误导致GPU掉卡 2025-04-14 19:17

在Linux系统上使用GPU时,可能会因为GPU的GSP(GPU System Processor)组件运行状态异常,导致GPU卡在初始化时提示失败(例如出现XID 119或XID 120错误信息),本文为您介绍这种情况的解决方案。 问题现象 使用GPU时出现GPU掉卡现象,例如在Linux系统上使

nvidia-fabricmanager版本与Tesla驱动版本不一致导致GPU无法正常使用 2025-04-14 19:17

对于Ubuntu操作系统GPU计算型实例(即ebmgn7、ebmgn7e、ebmgn7ex或sccgn7ex),如果您采用安装包方式安装了nvidia-fabricmanager服务,则apt-daily服务可能会自动更新已安装的软件包,使得该软件版本与Tesla驱动版本不一致,产生版本兼容性问题,

启动容器镜像出现docker Error response from daemon could not select device driver with capabilities [[gpu]]报错 2025-04-14 19:17

在GPU云服务器上安装Docker环境后,如果未安装NVIDIA Container Toolkit,通过docker run --gpus all [镜像名称]启动容器镜像时,可能会出现docker: Error response from daemon: could not select dev

内核更新时无法正常加载NVIDIA GPU(Tesla)驱动 2025-04-14 19:17

当升级GPU实例的操作系统(例如Alibaba Cloud Linux、RedHat、CentOS、Ubuntu等)内核时,可能会因为两个内核的kABI(Kernel Application Binary Interface)不一致,导致旧内核上构建的GPU(Tesla)驱动无法在新的内核上加载。内

使用PyTorch时出现“undefined symbol __nvJitLinkAddData_12_1, version libnvJitLink.so.12”报错 2025-04-14 19:17

在Linux系统GPU实例中,可能会因为GPU实例所安装的CUDA版本与PyTorch版本不兼容,导致使用PyTorch时出现报错现象,本文介绍这种情况的解决方案。 问题现象 在Linux系统(例如Alibaba Cloud Linux 3操作系统)GPU实例中使用PyTorch时,出现如下报错信息

重启GPU实例后导致Persistence Mode属性开启失效,同时ECC状态或MIG功能设置也失败 2025-04-14 19:17

在GPU计算型实例中安装高版本Tesla驱动(例如驱动版本为535或更高版本)后,通过nvidia-smi -pm 1命令方式开启Persistence Mode属性,可能会因为驱动版本过高,重启实例后导致该属性开启失效,同时ECC状态或MIG功能设置也失败,本文介绍这种情况的解决方案。 问题现象

目录
Copyright © 2025 your company All Rights Reserved. Powered by 赛尔网络.
京ICP备14022346号-15
gongan beian 京公网安备11010802041014号