4月21日,Arch Linux 的官方 Packages 库里的 GNOME 统一升级成 3.8。当时也没有在意,直接 pacman -Syu 升级了所有的更新,后来使用了几天也没有问题。今天因为有些事情要重启,再切换会来的时候发现 gdm 没法启动。情况是一旦启动 gdm 整个系统就会死机。用 sudo systemctl status gdm 查看 gdm 状态如下:

gdm[360]: Failed to give slave programs access to the display. Trying to proceed.

当时不知道是什么引起的,网上也很哪找到相关的解决方法。最后去 Arch Linux 的论坛上一看,上面已经闹的翻天了,各种各样的问题出现了,才了解是因为 GNOME 升级的原因。如果你也遇到了这样的情况,你可以按照以下几个步骤解决:

开启 SNA (如果使用 Intel 显卡驱动)

根据万能的 Wiki ,/etc/X11/xorg.conf.d 目录下创建一个 20-intel.conf 文件并输入内容如下:

Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod"  "sna"
EndSection

再次启动 gdm 应该就能解决问题,我看论坛上大部分人通过这种方法进入 GNOME。

使用其他的显示管理器 (SLiM, lighdm)

gdm 根本上来说是一个显示管理器,用来启动 GNOME,你也可以选择其他的来管理,最常用的就是 SLiM。 SLiM 的安装非常简单 pacman 安装 slim 然后再配置 .xinitrc。如果是启动 GNOME, 需要设置为 exec gnome-session

之后你要做的事情是把不兼容的扩展,主题都给换成默认的,然后才能正常的使用新版 GNOME,GNOME 3.8 三月就已经发布,新功能还没发现什么亮点,你可以在这篇文章里面找到。最后,据说开启 SNA 的方法只能说是一个实验性的方法,可能在以后的版本中解决这个问题,我们继续关注。