欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ubuntu16安装from nvidia-390显卡驱动后,不能进入系统的解决方案

程序员文章站 2022-07-15 17:19:50
...

设备:小米笔记本pro
显卡:MX150和intel UHD620
系统:ubuntu16.04
现象描述:笔记本为双系统环境,win10+ubuntu16.04,由于专业学习,需要安装cuda-toolkit做并行运算。按照tensorflow官方给的教程分别安装了tensorflow和cuda-toolkit(后者的安装步骤参考:https://www.tensorflow.org/install/gpu)。安装完之后,在python console中输入import tensorflow as tf,以验证tensorflow是否能正常使用,结果报错为:ImportError: libcuda.so.1: cannot open shared object file: No such file or directory。通过网络搜索了解到,报这个错是因为显卡驱动不是nvidia的驱动,因此按照“system settings-->system-->software&updates-->additional drivers”进入系统显卡驱动选择界面这里面我选了version 390.30 from nvidia-390(因为装的是cuda9.0,网上检索结果表明,cuda9.0依赖nvidia-390,因此就选了比较低的390(事实证明并不是这个样子的,摔))。噩梦从此开始,390驱动安装好之后,重启系统,然后画面就是不停地在黑屏与状态界面之间切换,即闪屏,闪了一会之后,稳定在状态界面,状态界面显示内容为:“/dev/nvme0n1p3: clean, 301086/1875968 files, 2492253/7500032 blocks”
问题解决:在网上找了很久,一个个的尝试,终于找到了对应的解决方案。
    1.停在状态界面后,按ctrl+alt+F3(或F2)组合键,进入tty3界面,先输入用户名,再输入密码。这里有几个坑:1)用户名不是我们在装系统的时候填的全名,而是后面缩写的用户名,这个用户名跟home目录下的文件对应的上一层文件目录一样,比如:/home/xxx/Documents,这个xxx就是我们的用户名;2)网上说的比较多的一个坑,即:输入密码的时候要用小键盘输入,不能用数字键盘输入,貌似linux对数字键盘输入不感冒。
    2.下面执行一些命令:

    sudo apt-get purge *390*
    sudo apt-get autoremove


    执行这些命令主要是为了删除nvidia-390,需要注意的是,在点“y”之前,要确认删除的都是与nvidia显卡驱动相关的文件,别删错东西了。
    3.然后重启,重新进入系统显卡驱动选择界面,注意,选version 396.44 from nvidia-396,一定要选from nvidia-396的,安装好该驱动之后,重启,正常进入系统,并重新测试了一下tensorflow的可用性,显示tensorflow是可用的。如果按照“system settings-->system-->details”进入系统信息界面,能够看到系统的显卡已经切换为 MX150了。

问题小结:至于from nvidia-390的驱动为什么不能用,有个说法是GDM和390驱动不兼容,而这个GDM(GNOME Display Manager)是ubuntu默认的管理用户登录的图形界面工具,因而导致了不能进入用户登录界面。如果真是这样子的话,或许可以通过把gdm切换为lightDM来解决390驱动的兼容问题,有兴趣的话可以一试(出问题了别找我呀,逃)
 

参考:https://www.reddit.com/r/Ubuntu/comments/8rt0ob/boot_is_stuck_at_devsdb2_clean/#ampf=undefined(怎么解决390)

           https://askubuntu.com/questions/58528/whats-the-difference-between-gdm-and-lightdm(什么是GDM)

           https://blog.csdn.net/m0_37407756/article/details/79911975(为什么装显卡驱动)