Ubuntu自动升级linux内核导致nvidia/cuda驱动报错

记录一下自己解决linux系统安装nvidia遇到的问题 

问题描述:在linux服务器上运行docker容器需要使用服务器上的gpu,docker容器已经准备好。但是在检查nvidia驱动时报错:Failed to initialize NVML Driver/library version mismatch

步骤一:检查服务器nvidia驱动

命令:

nvidia-smi

1.驱动器正常,出现下图:

2.我遇到的问题报错: 

Failed to initialize NVML Driver/library version mismatch

问题原因:Ubuntu自动更新Linux内核导致nvidia显卡驱动无法加载

步骤二:解决以上问题

1.卸载原有nvidia

sudo apt-get --purge remove nvidia-*
sudo apt-get purge nvidia*
sudo apt-get purge libnvidia*

直到下面命令不输出任何内容      

sudo dpkg --list | grep nvidia-*

2.下载安装nvidia

        nvidia官方网站下载nvidia的.run文件驱动,下载连接

         https://developer.nvidia.com/cuda-toolkit-archive

        1.给驱动run文件赋予执行权限:

$ sudo chmod a+x NVIDIA-Linux-x86_64-xxxxxxx.run

        2.安装驱动文件

$ sudo ./NVIDIA-Linux-x86_64-396.18.run -no-x-check -no-nouveau-check -no-opengl-files

        -no-x-check:安装驱动时关闭X服务
        -no-nouveau-check:安装驱动时禁用nouveau
        -no-opengl-files:只安装驱动文件,不安装OpenGL文件 

        验证:nvidia-smi出现步骤一表示安装成功

3.安装cuda

        进入nvidia开发者网站的CUDA下载页面下载cuda的.run文件

        3.1 使用命令安装

$ sudo sh cuda_10.1.168_418.67_linux.run

 去掉下图的Driver勾选,因为刚才已经安装过nvidia驱动了,光标到Install,按下回车

 完成之后

sudo gedit ~/.bashrc

 在文件最后一行添加:

export PATH=/usr/local/cuda-11.1/bin:/usr/local/cuda-11.1/NsightCompute-2020.2.0${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

注:PATH后的路径要根据自己实际安装的路径修改

使配置生效

$ source ~/.bashrc

进入/usr/local/cuda-11.1/samples/1_Utilities/目录

$ cd deviceQuery
$ sudo make
$ ./deviceQuery

 输出如下,说明安装cuda成功

 至此nvidia/cuda安装完成

步骤三:运行docker容器

命令

docker run -d --gpus all 容器号

报错:docker: Error response from daemon: exec: "nvidia-container-runtime-hook": executable file not found in $PATH.

找了很多才知道是cuda的依赖包没装上

sudo apt install安装下面依赖包

libnvidia-container1
libnvidia-container-tools
nvidia-container-toolkit
nvidia-container-runtime
nvidia-docker2

步骤四:解决问题过程的补充问题

1:查看nouveau

         1. 禁用nouveau

$ sudo vim /etc/modprobe.d/blacklist.conf

        2. 末尾添加

blacklist nouveau
options nouveau modeset=0

        3. 验证nouveau是否已经被禁用

lsmod | grep nouveau

2. 查看显卡型号

lspci |grep -i nvidia

3. 安装nvidia/cuda基础依赖环境

yum -y install gcc kernel-devel kernel-headers

4. 在Nvidia官网下载相应驱动
官网下载地址:https://www.nvidia.cn/Download/index.aspx?lang=cn

解决问题过程中的参考资料:

 Ubuntu18中安装Nvidia驱动和CUDA和cuDNN库加速_想要有趣的灵魂的博客-CSDN博客_ubuntu18安装cudnn

 "nvidia-container-runtime-hook": executable file not found in $PATH · Issue #1337 · NVIDIA/nvidia-docker · GitHub

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在安装nvidia显卡驱动报错可能有多种原因。根据引用\[3\]中提供的信息,错误信息可能是由于以下几种情况导致的: 1. 驱动程序与内核源代码不匹配或配置不正确。这可能是由于使用了错误或配置不正确的内核源代码版本,或者使用了与目标内核构建时使用的gcc版本不同的gcc版本。 2. 存在rivafb/nvidiafb等驱动程序,阻止了NVIDIA内核模块获取NVIDIA图形设备的所有权。 3. 安装的NVIDIA GPU不受此NVIDIA Linux图形驱动程序版本的支持。 为了解决这个问题,可以尝试以下步骤: 1. 从nVidia官方网站下载最新版本的nVidia驱动程序。 2. 以管理员身份打开blacklist模块,并在/etc/modprobe.d/blacklist.conf文件中添加以下内容并保存: blacklist vga16fb blacklist nouveau blacklist rivafb blacklist nvidiafb blacklist rivatv 3. 删除之前安装的所有nVidia驱动程序。 4. 重启计算机。 5. 当出现无法加载nVidia驱动程序的错误提示时,选择进入终端选项。 6. 登录并进入下载驱动程序的文件夹。 7. 安装驱动程序:sudo sh NVIDIA-Linux-x86_64-195.36.24-pkg2.run(根据实际下载的驱动程序版本进行替换)。 8. 重启计算机。 这些步骤应该能够帮助您解决在Linux安装nvidia显卡驱动报错的问题。请注意,确保您下载的驱动程序与您的硬件和操作系统版本兼容。 #### 引用[.reference_title] - *1* *2* [记录Manjaro Linux安装nvidia显卡驱动失败的经历&更新内核出问题如何修复](https://blog.csdn.net/weixin_44220976/article/details/127940616)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [linux英伟达显卡偶尔加载失败,Ubuntu 10.04 安装Nvidia显卡出错解决方法](https://blog.csdn.net/weixin_32002013/article/details/116962369)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值