前几天一直在给笔记本装软件和配置文件,之前都装好了Ubuntu的显卡驱动、caffe、opencv、anaconda、pytorch、pycharm等等,
结果今天在准备跑项目是运行
watch -n 0.1 nvidia-smi #每隔0.1秒刷新一次
NVIDIA-SMI has failed because it couldn’t communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
同样: nvidia-smi
问题:
ckq@ckq:~$ uname -r
4.15.0-91-generic
ckq@ckq:~$ 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.
当时一下子懵逼,想想好几天装了环境,结果功亏一篑,心态炸了,网上也有教程说重装显卡驱动,虽然不烦,但是也很头疼,虽知道装好又会出什么幺蛾子,幸好看到一个博客,终于知道哪里出了问题。
原因是因为不知道怎么滴,更新了,内核版本,导致内核版本太高。参考出处
按他的步骤我进行了低版本的内核进去,发现是可行的
ckq@ckq:~$ nvidia-smi
Fri Mar 20 10:56:56 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64 Driver Version: 440.64 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 850M Off | 00000000:01:00.0 Off | N/A |
| N/A 43C P0 N/A / N/A | 0MiB / 2004MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
分析:由于我的显卡驱动是在低版本的时候安装的,由于更新的原因,内核版本升级导致NVIDIA无法应用在高内核版本,所以是内核版本的原因,选择吧默认内核版本改成之前的低版本!!!
修改Ubuntu的默认开机启动的内核版本
执行:`sudo gedit /etc/default/grub
把文档内容做修改:
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet aplash"
GRUB_CMDLINE_LINUX=""
改成:
GRUB_DEFAULT="1>3"
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet aplash"
GRUB_CMDLINE_LINUX=""
修改的GRUB_DEFAULT= 由0改为"1>3"
(注:1 代表主菜单的第二项Advanced options for Ubuntu;3代表1项目下面对应的子菜单里面的第4项;)
参考出处
保存后,
sudo update-grub
ckq@ckq:~$ sudo update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.15.0-91-generic
Found initrd image: /boot/initrd.img-4.15.0-91-generic
Found linux image: /boot/vmlinuz-4.15.0-88-generic
Found initrd image: /boot/initrd.img-4.15.0-88-generic
Found linux image: /boot/vmlinuz-4.13.0-36-generic
Found initrd image: /boot/initrd.img-4.13.0-36-generic
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
Found Windows 10 (loader) on /dev/sdb1
done
重新启动,这时应该默认启动旧的内核版本。
再次查看内核版本
查看:uname -r
ckq@ckq:~$ uname -r
4.15.0-88-generic