我的AI之路(40)--解决Ubuntu内核更新导致桌面启动出错登录界面无法显示的问题

7 篇文章 0 订阅
5 篇文章 0 订阅

    注:采用NVIDIA*.run文件(例如NVIDIA-Linux-x86_64-450.57.run)安装的NVIDIA GPU的驱动,在Linux Kernel版本更新后,很可能导致驱动加载不了,如果当时图形界面使用的图形卡是NVIDIA卡,在系统重启后就可能登录不了了,凡是使用了GPU的docker的容器也都起不来,会报错,说是没找到驱动之类的错误,这时需要使用NVIDIA*.run文件重新安装一下驱动。

 

     最近服务器安装软件时被做了更新,Ubuntu16.04 LST的内核也被更新到了最新的GNU/Linux 4.4.0-171-generic x86_64,结果服务器重启后就出现这个以前经常见过的错误:The system is running in low-graphics mode

   用之前的解决办法:

     先检查确保/etc/modprob.d/下有blacklist-nouveau.conf文件,其内容是禁止nouveau驱动的加载,然后进入到/boot/下将最新版内核4.4.0-171-generic的ramfs文件备份,然后执行

sudo update-initramfs 

再重启系统,然后按CTRL+ALT+F1或F2 进入文本终端(如果用sudo service lightdm status发现lightdm还活着,加上执行sudo service lightdm stop) ,然后重装nvidia驱动,然后用sudo prime-select intel将主卡切换为集成显卡,或者执行sudo ldconfig,检查确保/etc/X11/下有xorg.conf这个文件,然后重启系统,结果试了多遍都没效果,重启系统总是出现上面的The system is running in low-graphics mode错误,于是执行

lsmod | grep nouveau

没有输出,好像nouveau驱动没有加载,这是对的呀,于是想看看xserver的日志看看到底发生了什么,于是在上面的错误窗口弹出来后点击OK按钮确定,然后选择Troubleshoot the error,再选择Review the xserver log file :

结果查找一阵发现nouveau驱动居然其实已经被加载了!

感觉很困惑,为啥nouveau被加载了,不是在/etc/modprob.d/下有了禁止nouveau驱动加载的blacklist conf文件吗?!后来发现这种配置文件对新版的内核居然就不起作用!于是来个狠招,把nouveau驱动文件改名(最好改名而不是删掉,以防哪天想要回退回来试用nouveau驱动的话方便点):

      cd /lib/modules/4.4.0-171-generic/kernel/drivers/gpu/drm/nouveau/

      sudo mv nouveau.ko nouveau.ko.unwanted

再执行

     sudo update-initramfs 

再重启系统,然后按CTRL+ALT+F1或F2 进入文本终端, 然后卸掉nvidia驱动后使用graphics-drviers ppa源再安装nvidia驱动:

sudo apt-get install nvidia-430
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包将被升级:
  nvidia-430
升级了 1 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 60 个软件包未被升级。
需要下载 75.6 MB 的归档。
解压缩后将会空出 103 MB 的空间。
获取:1 http://ppa.launchpad.net/graphics-drivers/ppa/ubuntu xenial/main amd64 nvidia-430 amd64 430.64-0ubuntu0~gpu16.04.2 [75.6 MB]
已下载 47.5 MB,耗时 12秒 (3,805 kB/s)
(正在读取数据库 ... 系统当前共安装有 333104 个文件和目录。)
正准备解包 .../nvidia-430_430.64-0ubuntu0~gpu16.04.2_amd64.deb  ...
Removing all DKMS Modules
Done.
正在将 nvidia-430 (430.64-0ubuntu0~gpu16.04.2) 解包到 (430.26-0ubuntu0~gpu16.04.1) 上 ...
正在处理用于 libc-bin (2.23-0ubuntu11) 的触发器 ...
正在处理用于 man-db (2.7.5-1) 的触发器 ...
正在设置 nvidia-430 (430.64-0ubuntu0~gpu16.04.2) ...
update-alternatives: 警告: 侯选项 /usr/lib/nvidia-430-prime/ld.so.conf(链接组 x86_64-linux-gnu_gl_conf 的一部分)不存在;从候选项列表中移除。
update-alternatives: 正在将次要链接 x86_64-linux-gnu_nvidia_app_profile 从 /usr/share/nvidia/nvidia-application-profiles-430.26-rc 重命名为 /usr/share/nvidia/nvidia-application-profiles-430.64-rc
update-alternatives: 正在将次要链接 x86_64-linux-gnu_nvidia_app_profile_keys 从 /usr/share/nvidia/nvidia-application-profiles-430.26-key-documentation 重命名为 /usr/share/nvidia/nvidia-application-profiles-430.64-key-documentation
update-alternatives: 警告: 链接组 x86_64-linux-gnu_gl_conf 已损坏,故强制重新安装候选项 /usr/lib/nvidia-430/ld.so.conf
update-alternatives: 警告: 侯选项 /usr/lib/nvidia-430-prime/ld.so.conf(链接组 x86_64-linux-gnu_egl_conf 的一部分)不存在;从候选项列表中移除。
update-alternatives: 警告: 侯选项 /usr/lib/nvidia-430-prime/alt_ld.so.conf(链接组 i386-linux-gnu_gl_conf 的一部分)不存在;从候选项列表中移除。
update-alternatives: 警告: 侯选项 /usr/lib/nvidia-430/alt_ld.so.conf(链接组 i386-linux-gnu_gl_conf 的一部分)不存在;从候选项列表中移除。
update-alternatives: 警告: /etc/alternatives/i386-linux-gnu_gl_conf 正处于未决状态;将以最佳选项更新它。
update-alternatives: 使用 /usr/lib/nvidia-430/alt-ld.so.conf 来在自动模式中提供 /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf)
update-alternatives: 警告: 侯选项 /usr/lib/nvidia-430-prime/alt_ld.so.conf(链接组 i386-linux-gnu_egl_conf 的一部分)不存在;从候选项列表中移除。
update-alternatives: 警告: 侯选项 /usr/lib/nvidia-430/alt_ld.so.conf(链接组 i386-linux-gnu_egl_conf 的一部分)不存在;从候选项列表中移除。
update-alternatives: 警告: /etc/alternatives/i386-linux-gnu_egl_conf 正处于未决状态;将以最佳选项更新它。
update-alternatives: 使用 /usr/lib/nvidia-430/alt-ld.so.conf 来在自动模式中提供 /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf (i386-linux-gnu_egl_conf)
update-initramfs: deferring update (trigger activated)
INFO:Enable nvidia-430
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/put_your_quirks_here
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/lenovo_thinkpad
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/dell_latitude
Loading new nvidia-430.64 DKMS files...
Building only for 4.4.0-171-generic
Building for architecture x86_64
Building initial module for 4.4.0-171-generic
Done.

然后执行sudo ldconfig,然后在/etc/X11/下 cp xorg.conf.failsafe xorg.conf,然后重启系统,那个The system is running in low-graphics mode窗口没见弹出来了,不过等了很久只有Ubuntu的桌面的紫蓝色背景没见用户和输入密码的登录出现,很奇怪,重装了ubuntu-desktop,unity greeter等都没有效果,执行 sudo service lightdm status发现lightdm service居然死掉了!

● lightdm.service - Light Display Manager
   Loaded: loaded (/lib/systemd/system/lightdm.service; enabled; vendor preset: enabled)
  Drop-In: /lib/systemd/system/display-manager.service.d
           └─xdiagnose.conf
   Active: inactive (dead)
     Docs: man:lightdm(1)

执行sudo service lightdm restart后又出现The system is running in low-graphics mode错误,用另外的终端登录Ubuntu发现lightdm service是running状态,这说明可能重装后的nvidia驱动(ppa源的nvidia驱动最新版还是430版序列的430.64,不是最新440版的)还是哪里有点和最新的内核不匹配,导致lightdm启动后死掉了,但是lightdm重启又可以起来,说明GPU驱动支持图像显示应该可以的,只是加载过程中可能哪里和内核没契合上导致lightdm死掉,于是突发奇想,如果我退到文本终端下再强制启动图形界面会发生什么呢? 于是重启系统后出现Ubuntu的Unity桌面的紫蓝色背景但是长时间没见用户和输入密码出现时,按CTRL+ALT+F2进入文本终端,登录后在执行 sudo init 5,结果奇迹发生了,登录的图形界面出来了,选择用户后输入对应的口令,就顺利的进入了Ubuntu的桌面! 桌面用起来没有任何问题,看来可能就是驱动在显示图像方面没有问题,就是在加载过程中可能有点时序问题导致了lightdm service死掉从而登录界面出不来,退出图形界面模式进入到文本终端模式然后再启动图形界面模式就没问题了!  

      这个问题在我使用那个ppa源的nvidia驱动没有进一步更新到与最新的Linux内核和谐相处之前,恐怕只能一直使用这个办法进入Ubuntu的桌面。

     注意,把主卡切换成Intel驱动支持的卡后,在/etc/X11/下要cp -f xorg.conf.failsafe xorg.conf,不要使用sudo nvidia-xconfig生成的xorg.conf,但是使用xorg.conf.failsafe会导致进入桌面后发现大小和显示器屏幕不协调而且屏幕分辨率不能修改的问题,可以把xorg.conf文件的内容清空后再执行sudo apt-get updata和sudo apt-get upgrade然后重启系统。

    待有时间再实验的几个可能办法:

   1.增加lightdm的配置文件:/etc/lightdm/lightdm.conf,内容为:greeter-session=unity-greeter

   2.安装内核的源码后重装nvidia驱动:

      sudo apt-get install linux-source 
      sudo apt-get install linux-headers-$(uname -r)

      ...

      sudo apt-get install --reinstall nvidia-430

     nvidia-xconfig

   3. 删掉X11的配置文件:

      cd /etc/X11

      mv xorg.conf.failsafe xorg.conf.failsafe.deleted

      mv xorg.conf xorg.conf.deleted
      service lightdm restart

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Arnold-FY-Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值