由于linux内核升级导致:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver及启动时修改内核方法

由于linux内核升级导致的:NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver以及启动时修改内核的方法

跑了一段实验,发现cuda不能用了,第一反应是检查水冷怎么样,结果发现并没有问题,后来通过百度发现是linux内核升级导致的,通过这篇博客提供的方法NVIDIA驱动失效简单解决方案检查驱动和cuda都是没有问题的,

ll /usr/src/
sudo apt install dkms
sudo dkms install -m nvidia -v 525.147.05

驱动版本对应自己查到的版本。 但是最后一步还有问题,说没有找到该路径下的dkms.conf文件。

sudo dkms install -m nvidia -v 525.147.05
Error! Could not locate dkms.conf file.
File: /usr/src/nvidia-525.147.05/dkms.conf does not exist.

所以继续发挥CSDN之力

修改启动内核

原因是ubuntu内核升级后,新的内核无法使用CUDA,非常难受。

首先查看目前的内核版本然后查看内核版本有哪些,输出如注释中显示

uname -r
#6.5.0-27-generic
grep menuentry /boot/grub/grub.cfg

#if [ x"${feature_menuentry_id}" = xy ]; then
#  menuentry_id_option="--id"
#  menuentry_id_option=""
#export menuentry_id_option
#menuentry 'Ubuntu' --class ubuntu --class gnu-linux --cl#ass gnu --class os $menuentry_id_option 'gnulinux-simple#-8a035b9d-dbd2-42b1-b02c-0fc24f60a331' {
#submenu 'Advanced options for Ubuntu' $menuentry_id_opti#on 'gnulinux-advanced-8a035b9d-dbd2-42b1-b02c-0fc24f60a3#31' {
# menuentry 'Ubuntu, with Linux 6.5.0-27-generic' --cla#ss ubuntu --class gnu-linux --class gnu --class os $menu#entry_id_option 'gnulinux-6.5.0-27-generic-advanced-8a03#5b9d-dbd2-42b1-b02c-0fc24f60a331' {
# menuentry 'Ubuntu, with Linux 6.5.0-27-generic (recov#ery mode)' --class ubuntu --class gnu-linux --class gnu #--class os $menuentry_id_option 'gnulinux-6.5.0-27-gener#ic-recovery-8a035b9d-dbd2-42b1-b02c-0fc24f60a331' {
# menuentry 'Ubuntu, with Linux 6.5.0-26-generic' --cla#ss ubuntu --class gnu-linux --class gnu --class os $menu#entry_id_option 'gnulinux-6.5.0-26-generic-advanced-8a03#5b9d-dbd2-42b1-b02c-0fc24f60a331' {
# menuentry 'Ubuntu, with Linux 6.5.0-26-generic (recov#ery mode)' --class ubuntu --class gnu-linux --class gnu #--class os $menuentry_id_option 'gnulinux-6.5.0-26-gener#ic-recovery-8a035b9d-dbd2-42b1-b02c-0fc24f60a331' {
#menuentry 'UEFI Firmware Settings' $menuentry_id_option #'uefi-firmware' {

这里显示了两个不同的Linux内核版本6.5.0-27-generic和6.5.0-26-generic,每个内核版本又分别有正常启动模式和恢复模式两种选择(恢复模式就算提供了一组有限的工具和选项,帮助用户诊断和修复系统问题,如无法正常启动、文件系统错误等)。

OK,现在想要回到原来的6.5.0-26需要怎么操作呢

sudo vim /etc/default/grub

修改其中第一行 GRUB_DEFAULT=0 ,修改为GRUB_DEFAULT="1> 2",这里千万注意大于号后面有个空格。选择6.5.0-26-generic的非recover版本。这里的选择可以反复开关机用uname来测试,因为这个数字非常迷。

然后更新GRUB文件并且重启即可

sudo update-grub
sudo reboot
如何在启动时选内核

如果你和我一样惨,不小心把gurb文件哪里弄错了,比如说GRUB_DEFAULT=2并且也update了,恭喜你,你的ubuntu系统起不来了... 这个时候,因为你的系统不知道选择哪个内核,所以ubuntu没法运行起来,需要你通过手动告诉他使用哪个内核。具体方法就是,在你启动ubuntu的时候疯狂按shift,进入到ubuntu单用户模式,选择Ubuntu Advanced,就可以自己手动选择内核了启动了。 这里参考的是 修改grub.cfg导致系统重启后起不来ubuntu 进入单用户模式的方法

启动之后立刻该回你的/etc/default/grub并且sudo update-grub,然后就可以正常运行了。

同时也可以用这种手动选内核的方法来测试哪个是和你nvida驱动适配的内核,希望大家一遍就搞定。

  • 10
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值