我已经在 Ubuntu 17.04 上使用 GNOME 有一段时间了,从来没有遇到过如此突然的问题。
现在有些窗口变暗,好像没有响应一样。以下是 Rhythmbox 和 PulseEffect 打开时的屏幕截图: 您会注意到 PulseEffects 窗口变暗了。文件 (Nautilus)、终端 (GNOME Terminal)、视频 (Totem)、照片 (Eye of GNOME)、系统设置和许多其他窗口(但不是全部)也会出现这种情况,例如 Rhythmbox、Google Chrome、Firefox 和 Blender 都正常。
我从软件更新程序弹出窗口安装了一些软件更新后发生了这种情况,但我记不清具体更新了哪些。此外,安装这些更新后,GDM3 上的 GNOME on Wayland 选项消失了,这让我认为是图形驱动程序更新导致了这种情况。
我在 X 上使用 GNOME(这应该是显而易见的,因为我提到过 Wayland 上的 GNOME 不可用)。
有什么想法吗?提前致谢。
编辑
以下是输出cat /etc/ld.so.conf.d/*.conf
:
/usr/lib/x86_64-linux-gnu/libfakeroot
# Multiarch support
/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu
/lib/i686-linux-gnu
/usr/lib/i686-linux-gnu
/usr/lib/i386-linux-gnu/mesa
# libc default configuration
/usr/local/lib
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/mesa-egl
/usr/lib/x86_64-linux-gnu/mesa
答案1
安装新的 Intel Graphics 驱动程序后,我遇到了同样的问题。原因是 共享库之间的动态链接形成方式ld.so
。我从不同的来源找到了一些片段,并采取了以下步骤来修复它。
1:检查/etc/ld.so.conf
ldconfig
用于更新/维护链接的配置。在 SO我发现它查找的路径列表基于文件/etc/ld.so.conf
,该文件应该只包含一行并且应该如下所示:
$ cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
2:检查文件/etc/ld.so.conf.d/
文件夹内的文件/etc/ld.so.conf.d/
包含包含共享库的不同路径。要检查,请列出*conf
文件夹中的所有文件。我的文件夹中有文件和链接,看起来像这样。但根据安装的软件包,它可能有所不同。
$ ls -Ahl /etc/ld.so.conf.d/
total 16K
-rw-r--r-- 1 root root 38 aug 12 2016 fakeroot-x86_64-linux-gnu.conf
-rw-r--r-- 1 root root 24 sep 27 20:41 ld.so.conf
-rw-r--r-- 1 root root 48 sep 27 20:43 x86_64-linux-gnu.conf
lrwxrwxrwx 1 root root 43 jun 8 11:51 x86_64-linux-gnu_EGL.conf -> /etc/alternatives/x86_64-linux-gnu_egl_conf
lrwxrwxrwx 1 root root 42 jun 8 11:51 x86_64-linux-gnu_GL.conf -> /etc/alternatives/x86_64-linux-gnu_gl_conf
-rw-r--r-- 1 root root 18 sep 27 20:43 zz_i386-biarch-compat.conf
及其内容,使用以下命令逐一列出cat
(某些文件有注释,此处未显示):
$ cat /etc/ld.so.conf.d/*.conf
/usr/lib/x86_64-linux-gnu/libfakeroot
/usr/lib
/usr/lib/x86_64-linux-gnu
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/mesa-egl
/usr/lib/x86_64-linux-gnu/mesa
/lib32
3:添加缺失的路径
更改任何文件之前请先备份!
第一个问题可能是文件中缺少路径.conf
。例如,我必须添加/user/local/lib
并习惯于sudo nano ld.so.conf
添加它。我将其添加/usr/lib32
到zz_i386-biarch-compat.conf
。使用 Googleldd
和ldconfig
查找缺少的路径。通常不需要从这些文件中删除行。
4:重新排序文件及其条目
现在,问题是ld.so
按照文件保存的顺序读取文件及其行(我发现这里)。我使用了一个文件名数组和一个新前缀数组来重命名文件。条目/mesa...
必须位于条目之前,(/usr)/lib/x86_64-linux-gnu/
以便对图形库进行排序。
$ cd /etc/ld.so.conf.d
$ files=(*) #filename array
$ numbers=(1 2 5 3 4 6) #order array
$ for i in ${!files[@]}; do
$ sudo mv -i ${files[$i]} ${numbers[$i]}0_${files[$i]};
$ done
$ cat /etc/ld.so.conf.d/*.conf #Check the order
/usr/lib/x86_64-linux-gnu/libfakeroot
/usr/local/lib
/usr/lib
/usr/lib/x86_64-linux-gnu/mesa-egl
/usr/lib/x86_64-linux-gnu/mesa
/usr/lib/x86_64-linux-gnu
/lib/x86_64-linux-gnu
/usr/lib32
/lib32
5:重新配置库并重新启动
$ sudo ldconfig #sudo ldconfig -v (for output)
$ sudo reboot
重启后,一切都恢复了原样(更浅的窗口、紫色的 gnome 终端、更好的字体渲染)。如果它对你有用,请告诉我。