目录

一、问题描述

二、问题解析

2.1解决思路

2.2重装显卡驱动

2.3 确认内核问题

三、解决问题

3.1总体解决思路

3.2 执行步骤

3.2.1 查看服务器本地可用的内核版本

3.2.2 查找内核的启动项

3.2.3 重定向到内核的启动项

四、问题解决

4.1 检查重启后内核版本

4.2 检查显卡驱动是否可用


一、问题描述

        Ubuntu的服务器上客户安装了Tesla P4GPU,我们安装了GPU显卡驱动,但是服务器重启后,使用nvidia-smi查看GPU的当前状态时,无法正常显示相关信息,出现如下图所示的错误:

二、问题解析

2.1解决思路

        造成问题描述的现象的原因有很多:

                1、驱动程序未安装或者损坏了。

                2、Linux的内核升级造成原有驱动不可用。

                3、显卡驱动环境变量不能用。

        结合实际情况我们可以排除第三点,前两种原因是最有可能的,因此我们重点考虑前两种情况。

2.2重装显卡驱动

        使用如下命令,重装Tesla P4的驱动

        ./ NVIDIA-Linux-x86_64-535.161.08.run

        重装驱动,但是出现图下所示的问题,且重装几次都因为该问题而终止。因此该问题并不是显卡驱动损坏或不存在引起的,还要继续找问题原因。

2.3 确认内核问题

        使用如下命令查看ubuntu系统的内核版本

                uname -r

        发现内核版本如下:

        记得以前给客户安装显卡驱动成功的时候,不是这个内核版本,当时ubuntu的内核版本应该是5.15,如下图所示:

         由于客户环境不能随便改动,所以,我们在本地环境下载两个内核,并测试,发现使用5.15.0-43-generic时候显卡驱动正常,但使用6.5.0-35-generic就看不到显卡驱动。

      因此,基本确认是这个原因造成的显示“NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. ”,下面应该尝试在客户环境验证。

三、解决问题


3.1总体解决思路

        面对内核造成的问题有两个思路:

  1. 安装升级的显卡驱动。
  2. 降低内核版本以适配下载好的显卡驱动。

        根据客户现场情况分析,我们只能选择第二种办法,具体执行步骤下面将详细介绍。

3.2 执行步骤

3.2.1 查看服务器本地可用的内核版本

        使用如下命令查看本地可用的内部版本

        dpkg --list | grep linux-image

        结果如下图所示:

        看到系统有三个内核可用,其中第一个就是前期成功安装显卡驱动的版本。

        因此,我们只需要默认启用第一个内核版本就行了。

3.2.2 查找内核的启动项

       通过如下命令找到对应内核的启动项:

        grep gnulinux /boot/grub/grub.cfg

        如下图所示:

        其中标记的是要使用的内核的启动项,切记不要选择recovery mode !

3.2.3 重定向到内核的启动项

        通过如下命令,修改BIOS的配置文件:

        sudo gedit /etc/default/grub

        然后出现如下图示,找到 GRUB_DEFAULT,即红框所示位置,修改成其内容为前面查找的内核启动项,下图为修改后的内容:

        修改后保存;然后reboot,重启Ubuntu服务器。

四、问题解决

        服务器开启后,进行各项测试验证,具体如下。

4.1 检查重启后内核版本

        使用如下命令查看当前内核版本

        uname -r

        如下显示内核版本:

        由图可以看出,内核版本已经变成5.15的了。

4.2 检查显卡驱动是否可用

        再使用  nvidia-smi  命令查看GPU驱动的信息,如下图示:

显卡驱动正常,开启相关服务后能正常运行,问题圆满解决。


文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。


更多推荐