问题描述:
ubuntu18.04系统安装Nvidia驱动,nvidia-smi能够输出GPU显卡信息,但sudo reboot后,黑屏,不能进入图形界面,无法开机。进入tty界面删除nvidia驱动后,则能成功进入ubuntu系统。

但驱动还是要装呀,ZED2双目相机若只使用CPU的话,只能获取摄像头的双目信息(即当成普通摄像头使用),官方的slam和深度信息处理功能是无法实现的。

于是开启了心酸又耗时耗力的踩坑埋坑过程。

ubuntu18.04安装NVIDIA驱动过程:
1)安装方法
网上很容易找到,就不详述了。总结起来有三种:
具体方法可见https://blog.csdn.net/wf19930209/article/details/81877822

  • 从ubuntu标准仓安装。 使用ubuntu-drives autoinstall,其实就是apt-get install
    nvidia-drivers-xxx,不过版本不需要自行指定,直接安装系统推荐的而已。这种方法不需要手动禁止nouveau,不需要退出图形界面;也可以
ubuntu-drivers devices//查看系统推荐的nvidia驱动
sudo apt install nvidia-driver-XXX //安装推荐的驱动
  • 从PPA源安装。 添加PPA源,然后apt-get install nvidia-drivers-xxx,其他同上;
  • 使用官方installer。 最正统的安装方法,主要区别是此方法需要手动禁止nouveau,需要退出图形界面;

这三种方法我都尝试过,其中只有.run安装方式能安装成功。

2)遇到的问题及尝试的解决方案

问题:
ubuntu18.04系统安装Nvidia驱动,nvidia-smi能够输出GPU显卡信息,但sudo reboot后,黑屏,不能进入图形界面,无法开机。进入tty界面删除nvidia驱动后,则能成功进入ubuntu系统。

猜测有两个可能原因:

桌面与nvidia驱动不兼容;
内核与nvidia驱动不兼容;

尝试过的解决方法:

  • 卸载nvidia驱动,能解决黑屏问题;
sudo apt-get purge nvidia-*
接着输入nvidia-smi,如果没有显示驱动信息,说明卸载成功,如果还能输出GPU信息,则
sudo /usr/bin/nvidia-uninstall
即可,然后输入nvidia-smi查看是否成功
  • 尝试采用官方installer并加上–no-opengl-files参数。依据是nvidia官方提及过的一个冲突的地方,即nvidia驱动自带的opengl库覆盖原本的opengl库,导致gnome桌面的不兼容。结果失败;
  • 尝试从390到440的所有当前显卡型号适用驱动版本。依据是ubuntu16.04不能安装过高版本的驱动,否则导致内核不兼容。结果失败;
  • 尝试将gdm3切换为lightdm。依据是gdm3与驱动不兼容。结果失败;
  • 尝试采用官方installer并加上–add-this-kernel参数。依据是某篇博客提到的内核接口不兼容,但该博客原本已安装驱动,是内核升级带来的不兼容,本系统中并无任何相关安装,直接安装和添加此参数应该是没有差别的。结果失败;
  • 还未尝试重装系统,使之降低到16.04或升至20.04;
  • 还未尝试将桌面改为2D桌面,例如KDE;

决定:
在基本把全网解决方案尝试了一遍依旧没有成功后,抱着放过自己的想法,决定重装系统,将系统升至ubuntu20.04,事实证明,没有什么是放弃解决不了的&~&
在这里插入图片描述

解决方法:
将系统升至ubuntu20.04

从NVIDIA官网下载相应驱动 https://www.nvidia.com/Download/index.aspx?lang=en-us

Nvidia驱动安装方式:

1)安装lightdm桌面服务

sudo apt install -y lightdm

2)卸载Ubuntu自带的驱动程序

sudo apt purge nvidia*

3)禁用自带的nouveau nvidia驱动
打开/etc/modprobe.d/blacklist.conf

# 图形化界面可以用gedit打开
sudo gedit /etc/modprobe.d/blacklist.conf 
# 也可以用命令行打开
sudo vi /etc/modprobe.d/blacklist.conf 
# 如果提示没有vi就安装一下: sudo apt install vi

在最后添加如下内容

blacklist nouveau  
options nouveau modeset=0 

然后保存退出。

更新

sudo update-initramfs -u

重启电脑

sudo reboot

重启后查看是否已经将自带的驱动屏蔽了,输入以下代码

lsmod | grep nouveau//没有结果输出,则表示屏蔽成功

4)安装(系统安装)

ubuntu-drivers devices//查看系统推荐的nvidia驱动
sudo apt install nvidia-driver-470 //安装推荐的驱动

或推荐(手动安装)
停止lightdm桌面服务

sudo service lightdm stop

如果提示没有lightdm,就安装一下,再执行上面的命令

sudo apt install -y lightdm

(因为后面使用的命令行界面tty1~7 需要lightdm)
接下来按住键盘的Ctrl+Alt+F1,如果黑屏就切换到tty2,按Ctrl+Alt+F2
如果Ctrl+Alt+F1后还显示图形化桌面就重启一下电脑,之后不要登录,在登录界面直接按Ctrl+Alt+F1或F2,这时应该进了命令行界面了,然后登录root用户或者你的普通用户,如果登录root用户时所有密码都登录失败,一般是因为你装系统时没设置root密码的原因,这时就需要设置一下root账户密码,执行以下命令:

sudo passwd root

然后会让你输入你的普通用户密码,再输入两次root密码,然后就可以在命令行界面登录root账户了。
安装驱动
首先查看你有没有安装gcc

gcc --version

在这里插入图片描述如果没有安装gcc一般make也没安装,这时需要安装一下gcc和make

sudo apt install gcc 
sudo apt install make
# 或者直接执行
sudo apt install gcc & make # 同时安装gcc和make,不用一条一条执行了,效果和上面两条命令相同

执行安装

sudo chmod a+x NVIDIA-Linux-x86_64-450.80.02.run
sudo ./NVIDIA-Linux-x86_64-450.80.02.run --no-x-check --no-nouveau-check --no-opengl-files
# --no-x-check:安装时关闭X服务
# --no-nouveau-check: 安装时禁用nouveau
# --no-opengl-files:只安装驱动文件,不安装OpenGL文件

下面者两个按图中选择,其他默认就好
在这里插入图片描述在这里插入图片描述安装完成以后执行

nvidia-smi

如果显示如下内容则表示安装成功,可以看到我们显卡的型号,我的是GeForce GTX 750,包括显存大小都可以看见。
在这里插入图片描述

nvidia-settings

在这里插入图片描述如果出现这个界面可以看到 NVIDIA Driver Version:470.74,这就代表nvidia-setting安装正常。

就是这么简单,所以涉及与系统冲突问题,重装系统可能是最快速最省心的方式。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐