NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver解决办法

2023-05-16

NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver解决办法

参考链接1
参考链接2
参考链接3

2023.3.17更新

今天突然又出现这个问题,一开始我就以为内核自动更新,便想去降低内核版本,一看旧版本的内核,发现都被自动删除了,然后我之前也将内核自动更新取消了啊,输入命令dpkg --get-selections | grep linux-image打印内核版本显示也是hold,按道理内核并没有更新。
在这里插入图片描述
一开始没发现问题,便一直尝试下载旧版本内核来解决,一直没成功。最后无意间在ubuntu的应用中点开nvidia x server settings

在这里插入图片描述
将选择nvidia on-demand,再重启系统就可以了(原来选项选的是intel 省电模式,太坑了。。。)

在这里插入图片描述

1. 问题描述

终端输入nvidia-smi报错

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. 
Make sure that the latest NVIDIA driver is installed and running.

本来好好的,突然出现这个问题一般是内核自动更新,导致内核版本与显卡驱动不匹配的问题,解决办法最好是把内核版本降到之前的版本

  • 终端输入命令uname -r,输出当前内核版本,记住当前版本信息
2.切换到原来的内核

(1)如果ubuntu有图形化界面,则可以通过以下方法切换内核

  • 重启主机,进入grub引导界面,选择Advanced options for Ubuntu

20221117143456

  • 选择Advanced options for Ubuntu后,进入其子菜单,如下图所示

20221117143533

  • 选择一个低版本的内核进入系统,然后通过终端输入uname -r查看当前内核版本确认是否切换成功,若切换成功则输入nvidia-smi查看显卡配置能否打印

(2)如果ubuntu没有图形化界面(远程控制的服务器那种),则可以通过以下方法切换内核

  • 首先,查看自己的grub版本:
grub-install --version

记住(GRUB)之后的大版本是2.00以后还是2.00以前

  • 查看自己现有的内核版本(完全版)
grep 'menuentry' /boot/grub/grub.cfg
  • 找到自己想换回的内核
例如,这里我想要更换为5.8.0-50,就找到对应的选项,有
menuentry 'Ubuntu,Linux 5.8.0-50-generic' --class ubuntu 
--class gnu-linux --class gnu --class os $menuentry_id_option 
'gnulinux-5.8.0-50-generic-advanced-237310b8-5d8a-4e13-bcbd-37ef97be8341' {

这一选项,注意不是(recovery mode).

  • 复制上面信息中menuentry之后的单引号内的字符串

比如我是Ubuntu,Linux 5.8.0-50-generic

  • 修改grub

在终端中输入

sudo nano /etc/default/grub

将第一个

GRUB_DEFAULT=0

修改为刚才复制的内容

GRUB_DEFAULT = "Ubuntu,Linux 5.8.0-50-generic"

(注意要加双引号)

  • 更新grub设置

在终端中输入

sudo update-grub

如果看到有下面警告

Please don't use old title 'Ubuntu,Linux 5.8.0-50-generic' 	for GRUB_DEFAULT,
 use 'Advanced options for Ubuntu>Ubuntu,Linux 5.8.0-50-generic' 
 (for versions before 2.00) or 
 'gnulinux-advanced-237310b8-5d8a-4e13-bcbd-37ef97be8341>gnulinux-5.8.0-50-generic-
 advanced-237310b8-5d8a-4e13-bcbd-37ef97be8341' (for 2.00 or later)

则根据之前看到的grub版本,如果大于等于2.00,则把上面第三个单引号内的字符串复制粘贴.否则把第二个单引号内的字符串复制粘贴,也就是说一定要重新修改一次grub

例如我的grub版本大于2.00,则再次将之前的

GRUB_DEFAULT="Ubuntu,Linux 5.8.0-50-generic"

修改为

GRUB_DEFAULT="gnulinux-advanced-237310b8-5d8a-4e13-bcbd-
37ef97be8341>gnulinux-5.8.0-50-generic-
	 advanced-237310b8-5d8a-4e13-bcbd-37ef97be8341"`

否则修改为

GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu,Linux 5.8.0-50-generic"

一定要再次修改一次GRUB_DEFAULT!!!注意看清楚是第二个单引号和第三个单引号内的内容!!!

  • 再次在终端中输入
sudo update-grub

此时不应再看到任何警告提示

  • 重新启动
sudo reboot

注意,此时grub引导时光标默认指向的应该是Ubuntu高级选项之类的选项,不要移动光标,让它自动选择启动

  • 查看是否成功
uname -r

如果已经变成你想要改的内核版本,则继续,否则检查是否忘了sudo update-grub或者grub修改错误

3.删除更新的内核
  • 查看当前的所有已安装的内核
dpkg --get-selections | grep linux-image

输出

linux-image-5.10.0-1023-oem             install
linux-image-5.4.0-42-generic			install
linux-image-5.8.0-50-generic			install
linux-image-generic-hwe-20.04			install

找到更新后的内核名字(一开始记住的内核版本信息),删除该内核

sudo apt-get remove linux-image-5.10.0-1023-oem
sudo dpkg -P linux-image-5.10.0-1023-oem

最后别忘记修改/etc/default/grub的GRUB_DEFAULT为=0,以及sudo update-grub(如果是采用第二种切换内核的方法才需要,第一种不需要)

4.禁止内核自动更新
  • 基于命令行修改配置文件

(1)输入:

sudo gedit /etc/apt/apt.conf.d/10periodic

如果要禁止自动更新配置文件设为如下:

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";

如果要打开自动更新配置文件设为如下:

APT::Periodic::Update-Package-Lists "2";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "1";

保存退出。

(2)输入:

sudo gedit /etc/apt/apt.conf.d/20auto-upgrades

如果要禁止自动更新配置文件设为如下:

APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "0";

如果要打开自动更新配置文件设为如下:

APT::Periodic::Update-Package-Lists "2";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "0";
APT::Periodic::Unattended-Upgrade "1";

保存退出。

  • 打开“Software & Updates(软件和更新)

更新选项卡修改为

20221117150250

  • ubuntu默认启动了自动更新内核,为了避免出现重启系统后遇到错误进入不到系统中去,我们可以进一步关闭内核更新,使用当前内核。
sudo apt-mark hold linux-image-generic linux-headers-generic 

如果要重启启动内核更新:

sudo apt-mark unhold linux-image-generic linux-headers-generic
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver解决办法 的相关文章

  • 如何理解“warp 中的所有线程同时执行相同的指令”。在 GPU 中?

    我在读专业CUDA C编程 并在GPU 架构概述部分 CUDA 采用单指令多线程 SIMT 架构来管理和执行 32 个线程组 称为 warp warp 中的所有线程同时执行相同的指令 每个线程都有自己的指令地址计数器和寄存器状态 并根据自己
  • 我的 GPU 上的总线程数、块数和网格数。

    For the NVIDIA GEFORCE 940mx GPU Device Query shows it has 3 Multiprocessor and 128 cores for each MP 每个多处理器的线程数 2048 所以
  • NVIDIA Fermi 中的 L2 缓存

    在查看NVIDIA Fermi架构中的性能计数器名称 cuda的doc文件夹中的Compute profiler txt文件 时 我注意到对于L2缓存未命中 有两个性能计数器 l2 subp0 read sector misses和l2 s
  • 如何让TensorFlow 100%使用GPU?

    我有一台配备 RTX 2060 GPU 的笔记本电脑 我使用 Keras 和 TF 2 在其上训练 LSTM 我还通过以下方式监控 GPU 使用情况nvidia smi我注意到 jupyter 笔记本和 TF 的使用率最多为 35 而 GP
  • 无法在 docker 上执行 nvidia 运行时

    我正在尝试让 nvidia docker 在我的 centos7 系统上运行 cat etc systemd system docker service d override conf Service ExecStart ExecStart
  • 我可以在 Windows Server 2019 中运行 NVIDIA DeepStream SDK 吗?

    System 我安装了 Windows Server 2019 操作系统NVIDIA Tesla T4 张量核心 GPU Goal 计划从 IP 摄像机读取实时流视频并进一步逐帧处理 目标是利用 NVIDIA DeepStream SDK
  • Cuda 内核返回向量

    我有一个单词列表 我的目标是匹配一个非常非常长的短语中的每个单词 我在匹配每个单词时没有问题 我唯一的问题是返回包含每个匹配信息的结构向量 In code typedef struct int A B C Match global void
  • 为什么 Cuda/OpenCL 的全局内存中不存在库冲突?

    我还没有弄清楚并且谷歌没有帮助我的一件事是 为什么有可能与共享内存发生银行冲突 但在全局内存中却没有 银行与寄存器会存在冲突吗 UPDATE哇 我真的很感谢 Tibbit 和 Grizzly 的两个回答 看来我只能给一个答案打绿色复选标记
  • cudamemcpyasync 和流行为理解

    我有下面所示的简单代码 它什么也不做 只是使用流将一些数据从主机复制到设备 但在运行 nvprof 后我很困惑 因为 cudamemcpyasync 确实是异步的并且对流的理解 include
  • CUDA 确定每个块的线程、每个网格的块

    我是 CUDA 范式的新手 我的问题是确定每个块的线程数和每个网格的块数 这是否需要一些艺术和尝试 我发现许多例子似乎为这些事情选择了任意的数字 我正在考虑一个问题 我可以将任意大小的矩阵传递给乘法方法 这样 C 的每个元素 如 C A B
  • 如何使 TensorFlow 在具有 2.x 功能的 GPU 上运行?

    我已在 Linux Ubuntu 16 04 上成功安装了tensorflow GPU 并进行了一些小的更改 以使其能够与新的 Ubuntu LTS 版本配合使用 然而 我认为 谁知道为什么 我的 GPU 满足计算能力大于 3 5 的最低要
  • OpenCL 在调用 clGetPlatformIDs 时崩溃

    我是 OpenCL 新手 在配备 Intel R HD Graphics 4000 运行 Windows 7 的 Core i5 计算机上工作 我安装了支持 OpenCL 的最新 Intel 驱动程序 GpuCapsViewer 确认我有
  • 使用内置显卡,没有NVIDIA显卡,可以使用CUDA和Caffe库吗?

    使用内置显卡 没有 NVIDIA 显卡 可以使用 CUDA 和 Caffe 库吗 我的操作系统是 ubuntu 15 CPU为 Intel i5 4670 3 40GHz 4核 内存为12 0GB 我想开始学习深度学习 CUDA 适用于 N
  • 在 python docker 镜像上使用 GPU

    我正在使用一个python 3 7 4 slim busterdocker 镜像 我无法更改它 我想知道如何使用我的英伟达 GPU on it 我通常用一个tensorflow tensorflow 1 14 0 gpu py3并用一个简单
  • cudaMemcpyToSymbol 的问题

    我正在尝试复制到恒定内存 但我不能 因为我对 cudaMemcpyToSymbol 函数的用法有误解 我正在努力追随this http developer download nvidia com compute cuda 4 1 rel t
  • Nvidia Theano docker 镜像不可用

    尝试运行 docker 命令 nvidia docker run d p 8888 8888 e PASSWORD 123abcChangeThis theano secure start notebook sh Then open you
  • 无法在 CUDA 中执行设备内核

    我正在尝试在全局内核中调用设备内核 我的全局内核是矩阵乘法 我的设备内核正在查找乘积矩阵每列中的最大值和索引 以下是代码 device void MaxFunction float Pd float max int x threadIdx
  • Linux 上的 OpenCL 编译

    我是 OpenCL 的新手 从昨天开始 我尝试使用 OpenCL 进行并行编程 而不是使用我更熟悉且以前体验过的 CUDA 现在我有 NVIDIA GTX 580 GPU Ubuntu Linux 12 04 操作系统和 CUDA SDK
  • cuda中内核的并行执行

    可以说我有三个全局数组 它们已使用 cudaMemcpy 复制到 GPU 中 但 c 中的这些全局数组尚未使用 cudaHostAlloc 分配 以便分配页面锁定的内存 而不是简单的全局分配 int a 100 b 100 c 100 cu
  • 如何在 GTX 560 及更高版本上使用 OpenGL 进行立体 3D?

    我正在使用在 Windows 7 上运行的开源触觉和 3D 图形库 Chai3D 我重写了该库以使用 Nvidia nvision 执行立体 3D 我将 OpenGL 与 GLUT 一起使用 并使用 glutInitDisplayMode

随机推荐

  • vncviewer使用教程

    首先安装vncviewer 之后在服务器输入你想要开启的 端口号 conda deactivate vncserver 88 VNC Server这里写 你的服务器地址 5900 43 端口号 如果出现以下问题 xff0c 可能是配置文件的
  • podman常见使用命令

    常用命令 容器 podman run 创建并启动容器 podman start 启动容器 podman ps 查看容器 podman stop 终止容器 podman restart 重启容器 podman attach 进入容器 podm
  • 对子模函数(submodular function)的一些理解

    1 子模函数是一个集合函数 xff0c 又减小回转属性 xff08 diminishing returns 子模函数适用于多种应用 xff0c 包括近似算法 xff0c 博弈理论 xff0c 和电网络 2 标准定义 xff1a 如果是一个集
  • 二项分布(np.random.binomial),搞它就完了

    二项分布 xff08 np random binomial xff09 xff0c 搞它就完了 xff01 首先我们的搞清楚伯努利分布和二项分布 xff0c 我们先找个例子 xff0c 选西瓜 xff0c 待我细细道来 伯努利分布 选一个西
  • Numpy给数组增加维度的操作

    不说其他的 xff0c 直接给个例子就懂了 a是一个一维数组 a 61 np array 0 0 10 0 20 0 30 0 print a shape a np newaxis a np newaxis shape 输出 4 0 10
  • 参数辨识的简单理解

    1 参数辨识技术 xff0c 是一种将理论模型与试验数据结合起来用于预测的技术 参数辨识根据实验数据和建立的模型来确定一组模型的参数 xff0c 使得由模型计算得到的数值结果能最好地拟合测试数据 xff08 可以看做是一种曲线拟合问题 xf
  • Matlab中持久变量(persistent)在Python中的理解

    语法 persistent var1 varN 说明 persistent 将变量var1 varN 声明为持久变量 持久变量是声明它们的函数的局部变量 xff1b 但其值保留在对该函数的各次调用所使用的内存中 xff0c Matlab命令
  • 新的代数计算软件包——Magma

    Magma是一款由悉尼大学数学与统计学系计算代数学小组开发的功能强大的代数计算程序包 xff0c 该软件专门解决代数系统中的数论 代数几何和代数组合学的计算问题 新的代数计算软件包 Magma 前言一 Magama安装二 基本操作三 多项式
  • 基于ChatGPT的新一代辅助编程神器——Cursor

    Cursor 编辑器 Cursor 这是一款与OpenAI合作并且基于GPT3的新一代辅助编程神器 它支持多种文件类型 xff0c 支持格式化文本 xff0c 支持多种主题 xff0c 支持多语言语法高亮 xff0c 支持快捷键设置 xff
  • 2023 Microsoft Edge 新增的分屏功能

    Microsoft Edge Canary 通道目前已经发布 110 版 xff0c 本次更新带来一个非常实用的实验性功能 xff1a 同窗双屏功能 xff0c 可以在一个窗口里同时开两个网页并排看 如何开启分屏功能 xff1f 默认分屏功
  • ubuntu服务器图形界面崩溃解决方案

    你们看的没错 xff0c 我又来了 真的是 xff0c 读计算机不易啊 我又又又把机器搞坏了 就单纯的程序跑不通 xff0c 网上搜解决方案是说好像这个文件夹名带中文 xff0c 明明我修改过了 xff0c 想着重启一下吧 xff0c 然后
  • Mysql备份和恢复

    一 数据备份的重要性 备份的主要目的是灾难恢复 在生产环境中 xff0c 数据的安全性至关重要 任何数据的丢失都可能产生严重的后果 造成数据丢失的原因 1 程序错误 2 人为操作错误 3 运算错误 4 磁盘故障 5 灾难 xff08 火灾
  • FreeRTOS中任务的四种状态

    FreeRTOS任务的四种状态分别是 xff1a 就绪态 运行态 阻塞态 挂起态 各种状态的说明如下 xff1a 1 就绪态 xff1a 处于就绪态的任务是那些已经准备就绪 这些任务没有被阻塞或者挂起 xff0c 可以运行的任务 xff0c
  • BP神经网络实现汽油辛烷值预测,《MATLAB源码+数据集》

    发展背景 在人工神经网络的发展历史上 xff0c 感知机 Multilayer Perceptron xff0c MLP 网络曾对人工神经网络的发展发挥了极大的作用 xff0c 也被认为是一种真正能够使用的人工神经网络模型 xff0c 它的
  • ELM极限学习实现汽油辛烷值预测(MATLAB)

    什么是极限学习机 xff1f 极限学习机 xff08 ELM Extreme Learning Machines xff09 是一种前馈神经网络 xff0c 最早由新加坡南洋理工大学黄广斌教授于2006年提出 该算法具有良好的泛化性能以及极
  • 粒子群算法(PSO)测试函数寻优

    3 1粒子群算法 粒子群优化算法是一种模拟鸟群捕食活动的进化算法 xff0c 体现了种群相互协作行为的群体智能 在处理优化问题时 xff0c 每个粒子对应搜索空间的一个潜在方案 xff0c 在进化过程中基于适应度函数进行选择和记录 xff0
  • 解决路由器离自己电脑远的问题:电脑和Linux开发板通过网线口连接,实现电脑与虚拟机,虚拟机与电脑、开发板和虚拟机实现网络ping回复。

    第一步 xff1a 关闭防火墙 xff0c 打开网络 internet 设置 xff1b 第二步 xff1a 找到更改适配器选项 xff1b 第三步 xff1a 找到 本地连接 双击它 xff1b 第四步 xff1a 点击属性 xff1b
  • 解决ubuntu中使用make命令报错的问题

    ubuntu界面出现 xff1a make arm linux gnueabihf xff1a 命令未找到 bin sh 1 arm linux gnueabihf not found dirname 缺少操作数 Try 39 dirnam
  • ros使用usb摄像头追踪ArUco markers

    ros使用usb摄像头追踪ArUco markers 注意 xff1a 在通过ros使用usb摄像头追踪ArUco markers之前 xff0c 先进行相机的内参标定 xff0c 否则会出现以下问题 Error TF NAN INPUT
  • NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver解决办法

    NVIDIA SMI has failed because it couldn t communicate with the NVIDIA driver解决办法 参考链接1 参考链接2 参考链接3 2023 3 17更新 今天突然又出现这个