这是两个 64 位的故事玛吉亚 5配备 6xx/7xx 的 GNU/Linux 系统英伟达视频卡。每个配置有一个KDE4桌面 (任务-kde4-minimal-4.14.3-2.mga5),并使用发行版提供的专有驱动程序(nvidia-当前-内核-桌面-最新-352.79-10.mga5.nonfree)。需要专有驱动程序,因为新风格对于某些应用来说是不够的。一个系统似乎工作得很好,但另一个系统有一个最烦人的怪癖,我在另一个系统上没有看到这种怪癖:
If a particular application is closed, when it shuts down, the desktop
immediately goes to a black screen such that the monitor says the
signal is out of range.
重新启动并不能解决问题。图形登录(kdm-4.11.16-5.mga5)工作得很好,但是一旦用一个用户帐户登录凯德桌面,问题再次出现。
发布的解决方案当Linux桌面死机时该怎么办?被认为似乎没有效果。
重新配置组织除了改变方式之外没有任何影响克德姆配置了显示。 凯德覆盖设置的任何配置组织等级。
故障发生后,我没有找到任何按键,包括Ctrl-Alt-Backspace
可以恢复对图形桌面的某些控制的按键,但我可以使用 切换到控制台Ctrl-Alt-F2
,并且可以尝试恢复。
编辑:实际上,Ctrt-Alt-Backspace
确实有效,只是需要耐心或多次尝试。
故障发生后,我可以进入故障安全图形桌面是一个非常小的环境。效果很好。
经过一番咬牙切齿后,我发现停止桌面管理器并删除~/kde4
文件夹可以恢复系统行为:
# service dm stop
# rm -rf /home/user/.kde4
# service dm start
这是一个可怕的解决方法,更不用说它需要提升的权限才能运行。
顺便说一下,“特定应用”是我的世界 1.8.9在java下运行(jre1.8.0_91),但这个问题不是关于为什么这样做或如何防止它。相反,它是关于如何调试KDE4然而这种性质的破坏可能已经发生了。
有没有KDE 特定的在这种情况下可能会失去帮助的命令行实用程序?
答案1
不需要提升权限,也不需要重新启动。
- 用 杀死 KDE
Ctrl-Alt-Backspace
。 - 使用
Ctrl-Alt-F2
(或根据需要使用其他功能键)获取控制台。 - 以触发问题的用户身份登录。
- 为了安全,请备份
~/.kde4/share/apps/kscreen/????????????????????????????????
- 删除
~/.kde4/share/apps/kscreen/????????????????????????????????
在此特定实例中,鉴于问题中的详细信息,实际文件名 ws cc3277aaebc0a310157f935da894a119
,但在重建 .kde4 文件夹结构时文件名发生变化。
我是如何得出这个结论的?首先,我触发了桌面故障,杀死了凯德与Ctrl-Alt-Backspace
,重命名为 的损坏副本~/.kde
,重新启动凯德,然后将完好目录与损坏目录进行比较:
$ diff -qr .kde4 kde4.broke
Files .kde4/share/apps/activitymanager/activityranking/database and kde4.broke/share/apps/activitymanager/activityranking/database differ
Files .kde4/share/apps/kconf_update/log/update.log and kde4.broke/share/apps/kconf_update/log/update.log differ
Files .kde4/share/apps/kscreen/cc3277aaebc0a310157f935da894a119 and kde4.broke/share/apps/kscreen/cc3277aaebc0a310157f935da894a119 differ
Files .kde4/share/apps/kwallet/kdewallet.kwl and kde4.broke/share/apps/kwallet/kdewallet.kwl differ
Files .kde4/share/apps/kwallet/kdewallet.salt and kde4.broke/share/apps/kwallet/kdewallet.salt differ
Files .kde4/share/apps/nepomuk/repository/main/data/virtuosobackend/soprano-virtuoso.db and kde4.broke/share/apps/nepomuk/repository/main/data/virtuosobackend/soprano-virtuoso.db differ
Files .kde4/share/apps/nepomuk/repository/main/data/virtuosobackend/soprano-virtuoso-temp.db and kde4.broke/share/apps/nepomuk/repository/main/data/virtuosobackend/soprano-virtuoso-temp.db differ
Files .kde4/share/config/activitymanagerrc and kde4.broke/share/config/activitymanagerrc differ
Files .kde4/share/config/gtkrc and kde4.broke/share/config/gtkrc differ
Files .kde4/share/config/gtkrc-2.0 and kde4.broke/share/config/gtkrc-2.0 differ
Files .kde4/share/config/kdebugrc and kde4.broke/share/config/kdebugrc differ
Files .kde4/share/config/kdeglobals and kde4.broke/share/config/kdeglobals differ
Files .kde4/share/config/kglobalshortcutsrc and kde4.broke/share/config/kglobalshortcutsrc differ
Files .kde4/share/config/khotkeysrc and kde4.broke/share/config/khotkeysrc differ
Files .kde4/share/config/klipperrc and kde4.broke/share/config/klipperrc differ
Files .kde4/share/config/plasma-desktop-appletsrc and kde4.broke/share/config/plasma-desktop-appletsrc differ
只有一个文件中的差异似乎肯定是相关的:
$ diff -u .kde4/share/apps/kscreen/cc3277aaebc0a310157f935da894a119 kde4.broke/share/apps/kscreen/cc3277aaebc0a310157f935da894a119
--- .kde4/share/apps/kscreen/cc3277aaebc0a310157f935da894a119 2016-07-04 02:47:56.312121742 -0500
+++ kde4.broke/share/apps/kscreen/cc3277aaebc0a310157f935da894a119 2016-07-02 23:51:04.725895881 -0500
@@ -1 +1 @@
-[ { "enabled" : true, "id" : "39a867a4a7600077629a3c27c6fa77bf", "metadata" : { "fullname" : "xrandr-hp L2335-CNP509Z1GW", "name" : "DVI-I-1" }, "mode" : { "refresh" : 59.9502, "size" : { "height" : 1200, "width" : 1920 } }, "pos" : { "x" : 0, "y" : 0 }, "primary" : true, "rotation" : 1 } ]
\ No newline at end of file
+[ { "enabled" : true, "id" : "39a867a4a7600077629a3c27c6fa77bf", "metadata" : { "fullname" : "xrandr-hp L2335-CNP509Z1GW", "name" : "DVI-I-1" }, "mode" : { "refresh" : 59.8846, "size" : { "height" : 1200, "width" : 1920 } }, "pos" : { "x" : 0, "y" : 0 }, "primary" : true, "rotation" : 1 } ]
\ No newline at end of file
请注意,差异似乎很小且无害:59.9502 与 59.8846
大多数其他文件差异是由创建日期引起的,并且没有显示出功能差异,或者与应用程序环境而不是桌面管理器有关。有人提到了“桌面”,但区别仅在于 GUID - 不太可能与问题直接相关。
为了验证我的假设,我保存了一份完好的 副本.kde4/share/apps/kscreen/cc3277aaebc0a310157f935da894a119
,触发了桌面故障,并且我没有删除该文件,而是将已知完好的文件复制到系统故障后更改的文件上。 凯德恢复了。
接下来,由于大多数人手头没有该文件的完整副本,因此我决定尝试删除它而不是“修复”它。删除文件也恢复了桌面。