服务器 Unbuntu重启后,nvidia-smi 不能使用

news/2025/1/13 2:41:32/

问题

用来深度学习的服务器重启了,结果会导致nvidia-smi 失效,会出现这样的错误:

NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver.

原因

Ubuntu 重启后会升级内核,升级后的内核与之前 的nvidia驱动版本不对应

解决方法

把内核降低到原来的版本,找到之前内核与之匹配的nvidia 驱动版本,

ll /usr/src/


图片最下面nvidia-510.60.02 就是之前nvidia 驱动,

然后执行

sudo apt install dkms
sudo dkms install -m nvidia -v 510.60.02

但是往往会执行失败,如果成功的话,就不会出现我们刚开始的问题了。
错误如下

File: /usr/src/nvidia-510.60.02/dkms.conf does not exist.

接下来才是重点:

降低内核版本

  1. 首先查看自己的grub版本
grub-install --version

看看(GRUB)之后的大版本是2.00以后还是2.00以前 ,后面操作会有不同

  1. 查看自己的内核版本
uname -r

我的是 5.15.0-58-generic

然后查看内核版本有哪些

grep menuentry /boot/grub/grub.cfg

然后找menuentry

if [ x"${feature_menuentry_id}" = xy ]; thenmenuentry_id_option="--id"menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-229d416d-6318-4310-a1b4-b5b7eb2faf88' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-229d416d-6318-4310-a1b4-b5b7eb2faf88' {menuentry 'Ubuntu, with Linux 5.15.0-58-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-58-generic-advanced-229d416d-6318-4310-a1b4-b5b7eb2faf88' {menuentry 'Ubuntu, with Linux 5.15.0-58-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-58-generic-recovery-229d416d-6318-4310-a1b4-b5b7eb2faf88' {menuentry 'Ubuntu, with Linux 5.15.0-25-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-25-generic-advanced-229d416d-6318-4310-a1b4-b5b7eb2faf88' {menuentry 'Ubuntu, with Linux 5.15.0-25-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.0-25-generic-recovery-229d416d-6318-4310-a1b4-b5b7eb2faf88' {

一共四个,很大可能就是 版本低的5.15.0-25 升级到了5.15.0-58 ,所以我们要降到 25

  1. 找到自己想换回的内核版本

这里我们换到 25,这里有两个 ,注意我们不看 (recovery mode)

复制上面信息中menuentry之后的单引号内的字符串,比如我的是 Ubuntu, with Linux 5.15.0-25-generic

  1. 修改grub

在终端输入 sudo vim /etc/default/grub
将第一个 GRUB_DEFAULT=0

修改为刚才复制的内容
GRUB_DEFAULT ="Ubuntu, with Linux 5.15.0-25-generic"
注意加双引号

  1. 更新grub设置

终端输入
sudo update-grub
出现以下错误

Warning: Please don’t use old title Ubuntu, with Linux 5.15.0-25-generic' for GRUB_DEFAULT, use Advanced options for Ubuntu>Ubuntu, with Linux 5.15.0-25-generic’ (for versions before 2.00) or `gnulinux-advanced-229d416d-6318-4310-a1b4-b5b7eb2faf88>gnulinux-5.15.0-25-generic-advanced-229d416d-6318-4310-a1b4-b5b7eb2faf88’ (for 2.00 or later)

则根据之前看到的grub版本,如果大于等于2.00,则返回第二步中 要替换的内核版本 第三个单引号内的字符串复制粘贴 (其实也就是上述警告的or 的引号内容) 否则把 use后面单引号的内容复制粘贴。
也就是说一定要重新修改一次grub,就是
sudo vim /etc/default/grub
GRUB_DEFAULT ="Ubuntu, with Linux 5.15.0-25-generic" 替换为
GRUB_DEFAULT ="gnulinux-advanced-229d416d-6318-4310-a1b4-b5b7eb2faf88>gnulinux-5.15.0-25-generic-advanced-229d416d-6318-4310-a1b4-b5b7eb2faf88"

  1. 再次输入 sudo update-grub
    此时应该没有warning
  2. 重启
    sudo reboot
    重启会需要一定的时间
  3. 重启成功后,查看是否降低内核成功
    uname -r
    如果已经变成你想要改的内核版本,则继续,否则检查是否忘了sudo update-grub或者grub修改错误

此时nvidia的命令就已经可以使用了。

可以到这里就结束啦,目前我使用的没啥问题

如果还想要删除更新的内核

dpkg --get-selections | grep linux-image
linux-image-5.15.0-25-generic			install
linux-image-5.15.0-56-generic			deinstall
linux-image-5.15.0-57-generic			deinstall
linux-image-5.15.0-58-generic			install
linux-image-generic-hwe-22.04			install

自己自行搜索查看相关内容

参考

https://blog.csdn.net/HelloJinYe/article/details/106787295
https://blog.csdn.net/Terrence_Z/article/details/121921389


http://www.ppmy.cn/news/488808.html

相关文章

4310 树的DFS(dfs序列)

1. 问题描述:​​​​​​​ 给定一棵 n 个节点的树。节点的编号为 1∼n,其中 1 号节点为根节点,每个节点的编号都大于其父节点的编号。现在,你需要回答 q 个询问。每个询问给定两个整数 ui,ki。我们希望你用 DFS&…

hdu 4310

http://acm.hdu.edu.cn/showproblem.php?pid3979 减弱版的题目 http://acm.hdu.edu.cn/showproblem.php?pid4310 水题,在网上搜下是排序不等式,我也不知道什么叫排序不等式,如果深入的思考的话还是容易想出来的 这题肯定是贪心是肯定的&…

23.6.20.今天在理解项目业务。

今天理解了下复核是什么,挺好的,明天又有两个功能,加油吧。

4310. 树的DFS 邻接链表深搜

文章目录 [4310. 树的DFS](https://www.acwing.com/problem/content/4313/) 4310. 树的DFS 给定一棵 n 个节点的树。 节点的编号为 1∼n,其中 1 号节点为根节点,每个节点的编号都大于其父节点的编号。 现在,你需要回答 q 个询问。 每个询…

TPLink4310刷机

目录说明: MW4530R (水星4530R原厂固件、Firmware,uboot) TPLink4300 (TP 4310原厂固件、Firmware,uboot) TPLink4310 (TP 4310原厂固件、Firmware,uboot) OpenWRT(OP固件,均不含uboot,供4530,4310,4300原厂…

ubuntu设置开机启动命令

文章目录 概述系统版本设置开机启动命令1. 查看rc-local服务状态2. 设置rc-local服务开机启动3. 手动创建系统自启动服务4. 创建rc.local文件5. 设置rc.local文件权限6.添加开机启动命令7.启用rc-local服务8.查看rc-local服务状态9.重启系统 概述 本文档主要记录Ubuntu系统使用…

【带你刷《剑指Offer》系列】【每天40分钟,跟我一起用50天刷完 (剑指Offer)】第一天

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

Matthew Ball:十多年后AR/VR为何依然发展缓慢?

2010年,Magic Leap和微软就开始研发AR技术,直到2012年Oculus才成立,AR/VR经过了13年左右的时间,虽然受到越来越多人关注,但发展依然缓慢。VR的主要应用场景还是游戏,但VR游戏只是游戏市场的一个分支&#x…