运维系列&AI系列&Lenovo-G双系统系列(前传-装之前搜索的):NVIDIA驱动安装+nvidia-smi各种报错+ubuntu黑屏+问(NVIDIA-SMI has failed becaus
NVIDIA驱动安装+nvidia-smi各种报错+ubuntu黑屏+问(NVIDIA-SMI has failed because it couldn‘t communicate .... )
NVIDIA驱动安装+nvidia-smi各种报错+ubuntu黑屏+问(NVIDIA-SMI has failed because it couldn‘t communicate … )
普通的NVIDIA驱动
安装按理说比较简单,但偶尔会遇到各种奇怪的错误,之前安装时也黑屏过,最后也补救回来,这次狠下心来,把全部遇到的问题阅读的经验贴记录一下。
NVIDIA驱动的三种安装方式:
方法一:附加驱动安装方法(也是最简单的安装方法,但有时安装后不起作用)
(1)先更新软件源
sudo apt-get update
sudo apt-get upgrade
(2)在软件与更新中菜单栏选择附加驱动,会进行自动搜索,选择一个版本的专有驱动,点击应用更改,更改后重启即可。
(3)重启后执行nvidia-smi有如下显示则为成功:
方法二:英伟达官方安装,命令行安装
在官网上(官方高级驱动搜索 | NVIDIA)寻找和自己显卡匹配的驱动文件。输入自己显卡的类型,找到合适的驱动。
下载后会得到一个后缀为.run类型的可执行文件。
(1)先禁用nouveau驱动
sudo gedit /etc/modprobe.d/blacklist.conf
(2) 在最后一行添加
blacklist nouveau
options nouveau modeset=0 #禁用nouveau第三方驱动
(3)卸载原有的驱动(没有可以跳过)
sudo apt-get remove --purge nvidia*
sudo apt autoremove
(4)重启(分辨率可能不清晰,如果黑屏请看下面问题解决)
update-initramfs -u 更新内核
我看网上总结的经验贴是更新内核,我感觉如果没更新,安装完驱动后,系统自动更新会导致不匹配出现报错
reboot
lsmod | grep nouveau
禁用nouveau驱动
看有没有输出,没有输出则为成功
(5)安装驱动
然后在命令行界面下输入:
sudo service lightdm stop #这个是关闭图形界面,不执行会出错。
给.run文件赋予权限并安装
sudo chmod a+x NVIDIA-Linux-x86_64-418.56.run
sudo ./NVIDIA-Linux-x86_64-396.18.run -no-x-check -no-nouveau-check -no-opengl-files
#只有禁用opengl这样安装才不会出现循环登陆的问题
(6) 打开图形界面,在命令行输入
sudo service lightdm start #这个是打开图形界面
检查驱动是否安装成功:
nvidia-smi
参考1:Ubuntu 16.04 Nvidia驱动安装(run方式)
方法三:在命令行中安装系统推荐的驱动
ubuntu-drivers devices
然后安装一个系统推荐(recommended
)的驱动
sudo apt install nvidia-driver-530
最后重启,正常顺利的话nvidia-smi
会有显示,但有时候还是出现报错问题。
安装NVIDIA驱动后可能的问题
一、出现黑屏现象如何解决(因为每个人的问题不一样,有的只是驱动问题,有的是内核版本问题)
情况一:
有时安装驱动重启电脑时候会直接黑屏(有光标),这里不要急,先按住Ctr+Alt+F3(有的是F1,至于F几都试一下吧,有的电脑不一样)
,然后就进入tty3
这个命令行管理界面。下面这个图我嫖别人的,我们之后输入用户名,和登录密码。
whoami #查ubuntu系统用户名
接着我们在命令行输入下面命令,有的ubuntu版本
是gdm3
,有的是lightdm
,至于是哪一个可以查看cat /etc/X11/default-display-manager
sudo systemctl restart gdm3 重启管理显示器
情况二:
开机后自动显示grub选项
,提示要选择哪个操作系统的时候,默认选择光标是在第一行Ubuntu
上的(整个第一行为白色),按E键
(edit
的意思)进入编辑该引导选项的界面,可以看到,中下部分有一处写着“ro
“:
此时,你需要改写:把”ro
“改成”rw
“,即”read & write
“,可以读取并且可以写入,同时为了排除独立显卡的影响因素也在splash
后面加上了nomodeset
,然后按F10
或者ctrl+x
重启。再然后输入命令sudo update-grub
。
此时发现你已经成功进入图形界面了。但是,这种方法,可能只是一次性的,等你再次重启之后,又是老样子。
此时,你需要修改/etc/default/grub
,你需要将grub文件
中的:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset" #这里添加 nomodeset
GRUB_CMDLINE_LINUX="rw" #这里需要填写为rw
修改完之后,还需要最后一步。输入命令sudo update-grub
情况三:
例如老哥的这种情况,重启后完全没有光标(我之前也遇到过花了1伯大洋上淘宝解决的):ubuntu开机黑屏
(1)尝试可正常启动的系统内核在机器启动时进入grub模式
启动后,在有读条进度的时候按住左shift键即可进入,注意一定要赶在启动一开始时,进入后看到一堆选项。
选择启动内核
选择第二项Advanced options for Ubuntu
。然后按照版本从高到低尝试启动,直至可进入图形界面。
(2)卸载不需要的内核
查看现有系统内核
dpkg --get-selections | grep linux-image
执行以下命令卸载:根据自己的情况卸载
sudo apt-get remove --purge linux-image-6.2.1-25-custom
然后自动删除相关包
sudo apt autoremove
然后再查看内核的时候高版本的内核deinstall
。 至此大功告成!其实按理说你每次进ubuntu的时候在grub界面选择旧的内核也行,就是麻烦一些。
二、nvidia驱动安装上了,但是nvidia-smi显示报错,NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver
这里我总结了网上好多种思路:
方法一:
查找已安装的驱动版本,xxx
为版本号,如下所示说明驱动是已经按上的,但是不能用:
ls /usr/src | grep nvidia
接下来我们安装dkms
。dkms
全称是DynamicKernel ModuleSupport
,它可以帮我们维护内核外的驱动程序,在内核版本变动之后可以自动重新生成新的模块 。
sudo apt-get install dkms
sudo dkms install -m nvidia -v xxx
nvidia-smi
如果此时nvidia
成功显示,恭喜成功过。但大多数问题没有得到解决,执行 sudo dkms install -m nvidia -v xxx
时报错。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.如果 sudo dkms install -m nvidia -v xxx报错可能是gcc版本过低(尽量大于7.3),我们需要升级gcc版本。查看gcc版本:
gcc -v
gcc
在 /usr/bin 目录
下,输入命令查看所有版本的gcc
:
ls /usr/bin/gcc*
ls /usr/bin/g++*
将查到的版本加入gcc
候选中,最后的数字是优先级,如下:
> sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20
> sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50
> sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20
> sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 50
完成上面的操作之后,我们就可以通过下面的指令来选择不同的gcc
和g++
的版本
sudo update-alternatives --config gcc
更换后,如果nvidia-smi
成功了,恭喜。但有可能不是gcc问题
,就比如我下面这种报错。和内核有关。
参考:https://blog.csdn.net/weixin_54626591/article/details/141816378
参考:https://blog.csdn.net/weixin_54626591/article/details/141827390
方法二:
确认是否电脑更新了内核版本,我看其他博客说这是因为你驱动安装后,更新了内核版本出现的问题:
sudo dpkg --get-selections | grep linux-image #查看已安装版本
uname -sr #查看当前使用版本
重启电脑,在系统选择页面选择“ubuntu高级选项
”,选择老版本进入。
成功了,nvidia-smi
有显示。但是屏幕亮度是最亮的改变不了。
底下评论
问题一
大佬求问NVIDIA-SMI
命令一打开就闪退要怎么办
NVIDIA驱动安装+nvidia-smi各种报错+ubuntu黑屏+问(NVIDIA-SMI has failed because it couldn‘t communicate … )