从 16.04 LTS 升级到 18.04 LTS 后,显示管理器显然由于 freedesktop 而失败

从 16.04 LTS 升级到 18.04 LTS 后,显示管理器显然由于 freedesktop 而失败

我最近接受了这个提示,从 16.04 LTS 升级到了 18.04 LTS,但令人不快的是,没有出现登录屏幕,甚至 ctrl-alt F2 等其他组合键也不起作用。幸运的是,我能够从其他地方通过 ssh 登录。

欢迎使用 Ubuntu 18.04.1 LTS(GNU/Linux 4.15.0-33-generic x86_64)

查看 syslog,我发现 gdm3/wayland 多次尝试启动 org.freedesktop.systemd1,但会立即失败(退出 1)。类似这样的消息会在 syslog 中反复重复。

8 月 30 日 09:13:38 pabst /usr/lib/gdm3/gdm-wayland-session[1442]: dbus-daemon[1444]: [session uid=127 pid=1444] 激活由 ':1.0' 请求的服务名称='org.freedesktop.systemd1' (uid=127 pid=1442 comm="/usr/lib/gdm3/gdm-wayland-session gnome-session --" label="unconfined")
8 月 30 日 09:13:38 pabst /usr/lib/gdm3/gdm-wayland-session[1442]: dbus-daemon[1444]: [session uid=127 pid=1444] 激活服务“org.freedesktop.systemd1”失败:进程 org.freedesktop.systemd1 以状态 1 退出
8 月 30 日 09:13:38 pabst /usr/lib/gdm3/gdm-wayland-session[1442]: 无法使用显示管理器注册显示器
8 月 30 日 09:13:38 pabst gdm3:子进程 -1442 已经死亡。
8 月 30 日 09:13:38 pabst gdm3:子进程 1439 已经死亡。
8 月 30 日 09:13:38 pabst gdm3:无法终止会话工作进程

看到其他地方的建议后,我尝试使用“ubuntu-drivers autoinstall”安装了推荐的 nvidia-drivers-390。但这没有帮助。

我也尝试过在配置文件中禁用 Wayland,但是也没有用。

我清除了 Nvidia 驱动程序并尝试使用 nouveau。仍然没有成功。

然后我安装了 nvidia-340,它至少可以正确设置屏幕分辨率(如使用“xinit”所示,它会调出一个没有显示管理器的 xterm)。

然后我安装了 xdm,并将“xdm”设为默认欢迎程序(它是安装 xdm 时配置的一部分)。

现在出现了一个登录屏幕(并且 ctrl-alt F2 和朋友可以工作)但如果我尝试登录,它会在登录后等待一会儿然后再回到登录屏幕。

.xsession-errors 显示没有严重问题。

但是 syslog 显示 gnome-session-binary 正在尝试启动 org.freedesktop.systemd1,但它(当然)再次失败,导致所需的 Gnome Shell.desktop 死机,进而导致整个过程失败(经过多次徒劳的尝试)。

故事的结局很悲伤:

8 月 30 日 11:40:12 pabst dbus-daemon[3966]: [session uid=820 pid=3964] 激活服务 'org.freedesktop.systemd1' 失败: 进程 org.freedesktop.systemd1 以状态 1 退出
8 月 30 日 11:40:12 pabst gnome-keyring-secrets.desktop[4042]: GNOME_KEYRING_CONTROL=/home/john/.cache/keyring-DFQHOZ
8 月 30 日 11:40:12 pabst gnome-keyring-secrets.desktop[4042]: SSH_AUTH_SOCK=/home/john/.cache/keyring-DFQHOZ/ssh
8 月 30 日 11:40:12 pabst org.gnome.Shell.desktop[4057]: 窗口管理器警告:不支持的会话类型
8 月 30 日 11:40:12 pabst gnome-session[3926]: gnome-session-binary[3926]: 警告:应用程序“org.gnome.Shell.desktop”已退出,代码为 1
8 月 30 日 11:40:12 pabst gnome-session-binary[3926]: 警告:应用程序“org.gnome.Shell.desktop”已退出,代码为 1
8 月 30 日 11:40:13 pabst org.gnome.Shell.desktop[4060]: 窗口管理器警告:不支持的会话类型
8 月 30 日 11:40:13 pabst gnome-session[3926]: gnome-session-binary[3926]: 警告:应用程序“org.gnome.Shell.desktop”已退出,代码为 1
8 月 30 日 11:40:13 pabst gnome-session[3926]: gnome-session-binary[3926]: 警告:应用程序“org.gnome.Shell.desktop”重生速度过快
8 月 30 日 11:40:13 pabst gnome-session[3926]: gnome-session-binary[3926]: 严重:我们失败了,但失败鲸鱼已经死了。抱歉……
8 月 30 日 11:40:13 pabst gnome-session-binary[3926]: 所需组件 org.gnome.Shell.desktop 发生不可恢复的故障
8 月 30 日 11:40:13 pabst gnome-session-binary[3926]: 警告:应用程序“org.gnome.Shell.desktop”已退出,代码为 1
8 月 30 日 11:40:13 pabst gnome-session-binary[3926]: 警告:应用程序“org.gnome.Shell.desktop”重生速度过快
8 月 30 日 11:40:13 pabst gnome-session-binary[3926]: 严重:我们失败了,但失败鲸鱼已经死了。抱歉……

那么:(1) org.freedesktop.systemd1 可以修复吗?有什么方法可以查看它失败的原因吗?或者它是否无法修复 (2) 有没有办法让 gnome 使用 org.freedesktop.systemd1 以外的其他东西?或者 (3) 是否有可以在 Ubuntu bionic 上使用的不使用任何 gnome 内容的显示管理器?

答案1

我认为你需要从 Xwayland 中选择 Xorg,请参阅这个错误

编辑您的/etc/gdm3/custom.conf文件并添加:

WaylandEnable=false

安装后另一个用户问题已经修复haveged,您可以尝试:

sudo apt install haveged

并且您还需要确保有plymouth包裹。

sudo apt install plymouth

你也可以确保你的内核已经修复,参见这个错误

希望这可以帮助。

答案2

我遇到了类似的问题。 syslog 中的这个错误最终让我找到了解决方案:

(EE) systemd-logind: failed to get session: PID 10023 does not belong to any known session

由于该错误,gdm-x-session 在 gdm3 启动过程中进一步失败并中止:

/usr/lib/gdm3/gdm-x-session[2849]: dbus-daemon[3479]: [session uid=136 pid=3479] Activating service name='org.freedesktop.systemd1' requested by ':1.0' (uid=136 pid=2849 comm="/usr/lib/gdm3/gdm-x-session gnome-session --autost" label="unconfined")
/usr/lib/gdm3/gdm-x-session[2849]: dbus-daemon[3479]: [session uid=136 pid=3479] Activated service 'org.freedesktop.systemd1' failed: Process org.freedesktop.systemd1 exited with status 1
gdm-x-session: could not fetch environment: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.freedesktop.systemd1 exited with status 1
gdm3: GdmManager: trying to register new display
gdm3: GdmManager: Error while retrieving session id for sender: Error getting session id from systemd: No data available
gdm-x-session: Could not register display: GDBus.Error:org.freedesktop.DBus.Error.AccessDenied: No display available

gdm3 服务只是不断尝试启动 gdm-x-session,导致系统日志泛滥。我通过在 /etc/pam.d/gdm-launch-environment 中添加此行来修复此问题:

session optional        pam_systemd.so

我认为真正的问题是 pam-auth-update 在某些软件包安装过程中运行,它会将 pam_systemd 添加到 /etc/pam.d/common-session。但是,我手动编辑了至少一个 /etc/pam.d/common-* 文件,在这种情况下,如果未指定“--force”,pam-auth-update 会中止。

答案3

我遇到了类似的问题,从 16.04 升级到 18.04 导致屏幕空白。

查找问题的关键是检查文件 /var/log/syslog 中的错误

gnome-session[2851]: X Error of failed request:  BadValue (integer parameter out of range for operation)
gnome-session[2851]:   Major opcode of failed request:  154 (GLX)
gnome-session[2851]:   Minor opcode of failed request:  3 (X_GLXCreateContext)
gnome-session[2851]:   Value in failed request:  0x0
gnome-session[2851]:   Serial number of failed request:  19
gnome-session[2851]:   Current serial number in output stream:  20
gnome-session[2851]: gnome-session-check-accelerated: GL Helper exited with code 256
gnome-session-c[2979]: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-4UdC671MtT: Connection refused
gnome-session-c[2979]: eglGetDisplay() failed
gnome-session[2851]: gnome-session-check-accelerated: GLES Helper exited with code 256
gnome-session-c[2980]: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-4UdC671MtT: Connection refused
gnome-session[2851]: X Error of failed request:  BadValue (integer parameter out of range for operation)
gnome-session[2851]:   Major opcode of failed request:  154 (GLX)
gnome-session[2851]:   Minor opcode of failed request:  3 (X_GLXCreateContext)
gnome-session[2851]:   Value in failed request:  0x0
gnome-session[2851]:   Serial number of failed request:  19
gnome-session[2851]:   Current serial number in output stream:  20
gnome-session[2851]: gnome-session-check-accelerated: GL Helper exited with code 256

在下面链接的概述中找到了解决方案,即删除 nvidia 驱动程序。

我很惊讶这是解决方案,因为我的系统运行在英特尔集成 GPU 上。然而,在事情发生之前很难知道事情会如何发展。

https://www.osso.nl/blog/ubuntu-bionic-crashing-gdm-eglgetdisplay/

首先,我将显示管理器更改为 lightdm。

$ sudo apt-get install lightdm
$ sudo dpkg-reconfigure lightdm

选择 lightdm 作为默认桌面管理器

然后登录屏幕出现了。然而,我进入了著名的 ubuntu 登录循环,成功登录系统后,再次进入相同的欢迎屏幕,而不是导航到桌面。

$ dpkg -l | grep nvidia 
$ sudo apt-get remove --purge nvidia-***

瞧,系统又像以前一样启动了。

我还遇到了 gnome 主题的问题,导致菜单和窗口标题栏消失。我不得不安装 gnome“调整”程序来选择正确的主题,然后一切又恢复了。

相关内容