admin 管理员组

文章数量: 887021

普通的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方式)
参考2:http://t.csdn/jP4FY
参考3:http://t.csdn/mFROY

方法三:在命令行中安装系统推荐的驱动

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
参考链接:Ubuntu Linux开机黑屏的永久解决办法

情况三:

例如老哥的这种情况,重启后完全没有光标(我之前也遇到过花了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界面选择旧的内核也行,就是麻烦一些。 

参考链接:Ubuntu apt upgrade后黑屏问题

二、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/wjinjie/article/details/108997692
参考:https://blog.csdn/nizhenshishuai/article/details/123873453
方法二:

确认是否电脑更新了内核版本,我看其他博客说这是因为你驱动安装后,更新了内核版本出现的问题:

sudo dpkg --get-selections | grep linux-image  #查看已安装版本
uname -sr   #查看当前使用版本

重启电脑,在系统选择页面选择“ubuntu高级选项”,选择老版本进入。
成功了,nvidia-smi有显示。但是屏幕亮度是最亮的改变不了。

本文标签: 报错 黑屏 smi Nvidia