系统更新后 SDDM 损坏
SDDM was broken after system update
我将 Arch Linux 与 KDE 和 SDDM 一起使用了大约 6 个月。几天前我得到了一个平常的system update。第二天,重启后,系统卡在黑屏 Starting version 243.0-1-arch
。然后我按 Ctrl+Alt+F2
和 inter tty
终端,登录并 $startx
- GUI 被加载。下次当我尝试在 $ systemctl start sddm
的 tty 终端中手动启动 sddm 时,什么也没发生。这就是 journalctl -b -1 | grep sddm 说:
сен 23 02:48:55 jenkins audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=sddm comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
сен 23 02:48:55 jenkins sddm[630]: Initializing...
сен 23 02:48:55 jenkins sddm[630]: Starting...
сен 23 02:48:55 jenkins sddm[630]: Logind interface found
сен 23 03:00:03 jenkins sddm[630]: Signal received: SIGTERM
сен 23 03:00:03 jenkins systemd[1]: sddm.service: Succeeded.
сен 23 03:00:03 jenkins audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=sddm comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
сен 23 03:00:03 jenkins kernel: audit: type=1131 audit(1569196803.849:47): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=sddm comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
还有另一个列表 systemctl status sddm:
● sddm.service - Simple Desktop Display Manager
Loaded: loaded (/usr/lib/systemd/system/sddm.service; enabled; vendor preset: disab>
Active: active (running) since Mon 2019-09-23 10:30:06 MSK; 6h ago
Docs: man:sddm(1)
man:sddm.conf(5)
Main PID: 427 (sddm)
Tasks: 2
Memory: 12.8M
CGroup: /system.slice/sddm.service
└─427 /usr/bin/sddm
сен 23 10:30:06 jenkins systemd[1]: Started Simple Desktop Display Manager.
сен 23 10:30:06 jenkins sddm[427]: Initializing...
сен 23 10:30:06 jenkins sddm[427]: Starting...
сен 23 10:30:06 jenkins sddm[427]: Logind interface found
可能会出什么问题?
这似乎是一个竞争条件。 SDDM 启动,而视频驱动程序尚未准备就绪。
一个正确的解决方案是将您的图形驱动程序添加到 /etc/mkinitcpio.conf
到 MODULES
键。然后你必须重建在启动时加载的 ramdisk:mkinitcpio -p linux
。之后,重启。
要添加的图形驱动程序取决于您的硬件。对我来说(因为我使用 Intel 卡),它是 i915
。键入 lsmod
以获取所有已加载内核模块的列表。
谢谢 dritter 的回答,不幸的是我无法验证它的正确性,因为我找到了另一个解决方案,甚至两个(我检查了两个选项 - 都有效)。因此,第一个解决方案是 降级 Linux-lts 核心(在我的例子中,从 4.19.73-1 降级到 4.19.72-1 或更低版本)。另一个解决方案(我确定的)是安装 nvidia-dkms 驱动程序。
我将 Arch Linux 与 KDE 和 SDDM 一起使用了大约 6 个月。几天前我得到了一个平常的system update。第二天,重启后,系统卡在黑屏 Starting version 243.0-1-arch
。然后我按 Ctrl+Alt+F2
和 inter tty
终端,登录并 $startx
- GUI 被加载。下次当我尝试在 $ systemctl start sddm
的 tty 终端中手动启动 sddm 时,什么也没发生。这就是 journalctl -b -1 | grep sddm 说:
сен 23 02:48:55 jenkins audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=sddm comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
сен 23 02:48:55 jenkins sddm[630]: Initializing...
сен 23 02:48:55 jenkins sddm[630]: Starting...
сен 23 02:48:55 jenkins sddm[630]: Logind interface found
сен 23 03:00:03 jenkins sddm[630]: Signal received: SIGTERM
сен 23 03:00:03 jenkins systemd[1]: sddm.service: Succeeded.
сен 23 03:00:03 jenkins audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=sddm comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
сен 23 03:00:03 jenkins kernel: audit: type=1131 audit(1569196803.849:47): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=sddm comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
还有另一个列表 systemctl status sddm:
● sddm.service - Simple Desktop Display Manager
Loaded: loaded (/usr/lib/systemd/system/sddm.service; enabled; vendor preset: disab>
Active: active (running) since Mon 2019-09-23 10:30:06 MSK; 6h ago
Docs: man:sddm(1)
man:sddm.conf(5)
Main PID: 427 (sddm)
Tasks: 2
Memory: 12.8M
CGroup: /system.slice/sddm.service
└─427 /usr/bin/sddm
сен 23 10:30:06 jenkins systemd[1]: Started Simple Desktop Display Manager.
сен 23 10:30:06 jenkins sddm[427]: Initializing...
сен 23 10:30:06 jenkins sddm[427]: Starting...
сен 23 10:30:06 jenkins sddm[427]: Logind interface found
可能会出什么问题?
这似乎是一个竞争条件。 SDDM 启动,而视频驱动程序尚未准备就绪。
一个正确的解决方案是将您的图形驱动程序添加到 /etc/mkinitcpio.conf
到 MODULES
键。然后你必须重建在启动时加载的 ramdisk:mkinitcpio -p linux
。之后,重启。
要添加的图形驱动程序取决于您的硬件。对我来说(因为我使用 Intel 卡),它是 i915
。键入 lsmod
以获取所有已加载内核模块的列表。
谢谢 dritter 的回答,不幸的是我无法验证它的正确性,因为我找到了另一个解决方案,甚至两个(我检查了两个选项 - 都有效)。因此,第一个解决方案是 降级 Linux-lts 核心(在我的例子中,从 4.19.73-1 降级到 4.19.72-1 或更低版本)。另一个解决方案(我确定的)是安装 nvidia-dkms 驱动程序。