Некоторые окна потускнел, как если бы они были безответственны в GNOME

я использую гном на Ubuntu 17.04 на некоторое время теперь, и я никогда не испытывал такой внезапной проблемы.

теперь некоторые окна потускнел, как если бы они были не отвечает. Вот скриншот в rhythmbox и PulseEffect открыты: Вы можете заметить, что окна PulseEffects затемняется. Это также происходит с файлами (Наутилус), терминал (терминал GNOME), видео (тотем), и фото (глаз GNOME), системы настройки, и многие другие окна, но не все из них, так, например, в rhythmbox, Гугл хром, Firefox, и Блендер все в порядке.

это произошло после того, как я установил некоторые обновления программного обеспечения от обновление программного обеспечения всплывающее окно, но я не могу вспомнить точную обновления. Также после установки этих обновлений, гном на вариант Вэйланд исчез из GDM3, который заставляет меня думать, что это обновление драйвера графики, что является причиной этого.

я использую гном на x (это должно быть очевидно, раз уж я упомянул гнома на Вэйланд не доступен).

какие идеи? Спасибо заранее.

редактировать

вот это выход 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
0
задан 29 September 2017 в 11:45

2 ответа

У меня была такая же проблема после установки новых драйверов 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 читает файлы и их строки в том порядке, в котором они были сохранены ( Я узнал О 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

После перезагрузки все вернулось к тому, как это было раньше (более легкие окна, фиолетовый гном-терминал, лучший рендеринг шрифтов). Дайте мне знать, если это сработает для вас.

0
ответ дан 18 July 2018 в 06:23

У меня была такая же проблема после установки новых драйверов 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 читает файлы и их строки в том порядке, в котором они были сохранены ( Я узнал О 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

После перезагрузки все вернулось к тому, как это было раньше (более легкие окна, фиолетовый гном-терминал, лучший рендеринг шрифтов). Дайте мне знать, если это сработает для вас.

0
ответ дан 24 July 2018 в 18:35
  • 1
    Как узнать, какой путь добавить в какой .conf-файл? – Tooniis 28 September 2017 в 13:44
  • 2
    В большинстве случаев это не имеет особого значения, но в моем случае библиотеки mesa содержали обновленные библиотеки, старые версии которых были найдены в предыдущем пути. Можете ли вы разместить свой cat /etc/ld.so.conf.d/*.conf? В общем, я думаю, что сначала должны быть /usr/lib и /usr/local/lib, за которыми следуют эквиваленты multiarch (x86_64). В моем случае они были перечислены в разных файлах .conf. Если у вас есть специальные файлы, такие как файлы mesa, размещение x86_64-linux-gnu.conf после x86_64-linux-gnu_(E)GL.conf может выполнить задание. – pm-b 28 September 2017 в 16:55
  • 3
    Я добавил запрошенный результат. Похоже, проблема в том, что /usr/lib отсутствует. – Tooniis 29 September 2017 в 11:46
  • 4
    Удивительно, но еще одно обновление от Software Updater исправило эту проблему! Похоже, что разработчики заметили и исправили ошибку. – Tooniis 29 September 2017 в 13:33
  • 5
    Хорошие новости. Тем не менее, позор, потому что мне хотелось бы узнать причину проблемы. – pm-b 4 October 2017 в 21:25

Другие вопросы по тегам:

Похожие вопросы: