Некоторые окна недоступны, как если бы они не отвечали на запросы в GNOME
Я уже некоторое время использую GNOME в Ubuntu 17.04, и у меня никогда не было такой внезапной проблемы.
Некоторые окна теперь приглушены, как будто они не отвечают. Вот скриншот открытых Rhythmbox и PulseEffect: Вы можете заметить, что окно PulseEffects затемнено. Это также происходит с файлами (Nautilus), терминалом (GNOME Terminal), видео (Totem) и фотографиями (Eye of GNOME), настройками системы и многими другими окнами, но не со всеми, например Rhythmbox, Google Chrome, Firefox и Blender в порядке.
Это произошло после того, как я установил некоторые обновления программного обеспечения из всплывающего окна Software Updater, но не могу вспомнить точные обновления. Также после установки этих обновлений опция GNOME on Wayland исчезла из GDM3, что заставляет меня думать, что причиной этого является обновление графического драйвера.
Я использую GNOME на X (это должно быть очевидно, поскольку я упоминал, что GNOME на Wayland недоступен).
Есть идеи? Заранее спасибо.
РЕДАКТИРОВАТЬ
Вот вывод 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
, Google ldd
а также 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, улучшенная отрисовка шрифтов). Дайте мне знать, если это работает для вас.