Archlinux 更新失败之驱动与 Xorg 配置错误

Archlinux系统更新是滚动更新,所以更新失败又被叫做"滚挂了"

此次滚挂发生在1月27日,过了那么久了才想起来该记录了......

现象

滚挂的现象是,能够进系统,但是笔记本电脑自带的显示器无法显示图形界面。根据本人排查问题的经验,首先想到的是如何更加精确的定义现象。所以做了这一些尝试:

  1. 外接的显示器,可以进图形界面
  2. 用VNC,可以启动图形界面

问题解决尝试一

既然是更新导致的,那么回退有可能可以搞定。Archlinux更新的包与旧的包保存在/var/cache/pacman/pkg中,通过ls按时间排序,找到了几个相关的东西,即内核、固件、nvidia驱动。

到此依然不行,直接手动启动Xorg也不行。

问题解决尝试二

回退不行,那就只能试试全过程法了(这招真的是屡试不爽),即图形界面到显示到显示器的整个过程挨个排查。

全过程法依赖于我对正常流程的理解。我使用的是KDE桌面,KDE要用Xorg才能启动,之后的过程就不知道了。然后显示数据肯定会走到内核或者驱动中,之后的过程也不知道,最后会显示到显示器上。也就是说,目前想到的过程是:KDE->Xorg->...->内核或驱动->...->显示器。

中间不知道的怎么办?车到山前必有路,船到桥头自然直,我相信我排查到Xorg之后,就可以弄清楚Xorg之后的流程了。

根据之前"精确定义的现象",得出结论:

  1. KDE与Xorg大概率是没有问题,因为可以外接显示器并且启动
  2. Xorg没有核心的更新,所以Xorg大概也没有问题
  3. 显示器是正常的,因为windows是可以启动的。

所以出现问题的地方可能是:

  1. 内核或驱动
  2. Xorg与内核或驱动的结合方式,大概率就是Xorg没有配置对
  3. 内核或驱动与显示器的结合方式

1通过回滚试了,没用。

至于2,检查了/etc/X11/xorg.conf.d/的两个配置文件,没啥头绪,只记得linux的nvidia驱动不是很好用,就改了 /etc/X11/xorg.conf.d/10-optimus-manager.conf 中关于nvidia的部分,修改如图,原本文件中写的那两行被注释了。

然后?然后就意外地解决了?!

所以到底是为啥?我现在只知道这大概率和我默认选择nvidia显卡相关,但是更加具体的我真不知道。