После пробуждения Ubuntu 16.04 от Suspend следующие графические сбои появляются вокруг всех окон, контекстных меню и аналогичный:
[!d8]
Кроме того, эта проблема была реплицирована на чистой установке, где единственным изменением было обновление программного обеспечения и установка последних драйверов NVIDIA.
Что происходит, и как это можно решить?
Я попытался сменить драйвер на обновленную версию исправления ошибок, но он закрутил мою способность делать глубокое обучение с помощью тензорного потока, поэтому я вернулся к исходному программному обеспечению.
Это происходит каждый Я просыпаюсь с Убунту от сна. Я просто открываю терминал CTRL + ALT + T и нажимаю
killall compiz
Сброс дисплея и сбой исчезли. Это займет всего несколько секунд. Вы даже можете использовать его в своем ~/.bashrc, таком как alias kc='killall compiz', поэтому вам нужно только набрать kc, когда вы хотите выполнить команду.
Есть еще один способ решить эту проблему.
Просто убить Xorg после пробуждения компьютера.
Найти PID Xorg:
top
Когда вы найдете pid Xorg, нажмите Ctrl + C, чтобы остановить «верхний» процесс.
Перейти к корню и убить процесс:
sudo su
kill [pid]
После этого войдите в свою учетную запись.
Предупреждение: это закроет все ваши приложения , Firefox не создает никаких проблем, он просто восстановит все ваши вкладки, но я не могу гарантировать другие приложения, поэтому сохраните их перед выполнением этого процесса.
Теперь Nvidia также обновила свои драйверы nvidia-375 до версии 375.66, которая доступна из стандартных репозиториев Ubuntu всех поддерживаемых в данный момент релизов.
Это означает, что теперь nvidia-375 , за исключением обычного обновления системы, как всегда. Вы не нуждаетесь в пакете драйвера из graphics-drivers PPA, если вы этого не хотите.
Ниже приведен фрагмент изменений для пакета из основных репозиториев 16.04 относительно этой ошибки:
$ apt changelog nvidia-375=375.66-0ubuntu0.16.04.1
[...]
- Fixed a regression that caused corruption in certain
applications, such as window border shadows in Unity, after
resuming from suspend.
[...]
Наконец, Nvidia исправила эту проблему и выпустила новую версию рабочего драйвера: nvidia-381
Решение, описанное в этом ответе, также было обновлено и теперь предлагает перейти на эту фиксированную версию вместо перехода на последнюю версию до ошибки. Однако это остается той же процедурой, но вы просто выключаете имена пакетов.
Некоторые из собственных пакетов драйверов графики Nvidia для Ubuntu ( а именно nvidia-375 и nvidia-378) являются ошибками и создают белые артефакты вокруг границ окна, которые показаны на ваших скриншотах в вопросе. Это происходит воспроизводимо каждый раз, когда вы снова приостанавливаете и снова пробуждаетесь.
До тех пор, пока несколько дней назад пакет nvidia-367 в репозитории Xenial работал нормально и надежно, но теперь они обновили его и преобразовали к пакету перехода, который автоматически устанавливает версию buggy nvidia-375.
lspci -k | grep -iEA3 '3d|vga'
Мое решение на данный момент состоит в том, чтобы понизить с nvidia-375 или nvidia-378 до nvidia-370, что, похоже, работает до сих пор , Поскольку Nvidia выпустила новую версию обновленного драйвера nvidia-381 с исправленной ошибкой, мы можем (и должны) установить этот вариант вместо понижения.
Этот пакет недоступен из стандартные репозитории, но вы можете легко получить его из PPA и заменить его текущим драйвером, выполнив следующие команды:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt purge nvidia*
sudo apt install nvidia-370
sudo apt install nvidia-381
После вас закончили эту процедуру, перезагрузите компьютер и проверьте, есть ли у вас проблемы. Для меня они исчезли. Удачи.
Решение, предложенное Виктором А., прекрасно работает. Однако вы должны заметить, что скрипты, помещенные в /lib/systemd/system-sleep/, выполняются как при переходе компьютера в режим сна, так и при просыпании. Учитывая, что мы хотим только позже, использование предлагаемого сценария замедляет процесс перехода в сон без необходимости. Я рекомендую следующее:
#!/bin/sh
if [ "$2" = "suspend" ] || [ "$2" = "hybrid-sleep" ]; then
case "$1" in
post) kill $(ps -C compiz -o pid=) ;;
esac
fi
Предупреждение. Этот скрипт (а также тот, который предлагается Виктором А.) отключит экран подсказки пароля при пробуждении, тем самым представляя угрозу безопасности.
NVIDIA выпустила обновленную версию драйвера, которая исправила эту регрессию. Любой драйвер, прошедший с 381.09, теперь больше не будет иметь эту проблему, пока NVIDIA не испортится снова.
До тех пор, пока драйвер не достигнет основных репозиториев, их можно загрузить с неофициального драйвера PPID NVIDIA. Это гарантирует, что вам не нужно будет возиться с установщиком (который считается плохой идеей) или нуво. Аналогичным образом, это позволит устанавливать / удалять драйверы через apt вместо опасной полуконфигурации, в которую установщик NVIDIA оставляет драйверы. Кроме того, это не вызовет никаких логических циклов или ошибок, если у вас нет странной системы. Чтобы установить, запустите:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-381
Старые драйверы будут автоматически удалены, а новые будут загружены. Последуйте за перезагрузкой компьютера (так как драйверы NVIDIA необходимо запекать в ядре) и все должно работать нормально. Вы можете проверить правильность установки драйверов, выполнив следующую команду:
nvidia-settings --version
Обязательно верните любые исправления, описанные в этом сообщении , а не , которые вы обновляете до последних драйверов. Например, если вы установили исправленную версию Unity, как описано ниже, запустите эту команду, чтобы вернуться к нормальной версии:
sudo ppa-purge ppa:kaihengfeng/lp1292830
Обратите внимание, что вам понадобится ppa-purge, который может быть установлен сделано так:
sudo apt install ppa-purge
Если обновление не является вариантом (слишком старым для карты, политики компании и т. д.):
Kai-Heng Фэн из Launchpad был достаточно любезен, чтобы загрузить версию Unity в свой собственный PPA (ppa:kaihengfeng/lp1292830), который должен исправить эту проблему. Чтобы решить эту проблему, просто добавьте его PPA, выполнив следующие команды:
sudo add-apt-repository ppa:kaihengfeng/lp1292830
sudo apt update
sudo apt full-upgrade
После того, как вы закончите, перезагрузите свою систему или перезапустите X11, выйдя из системы, а затем снова запустите.
В качестве альтернативы вы также можете выполнить любое из следующих действий:
Перейти на карту Intel. Если вы используете NVIDIA Prime, вы можете перейти на карту Intel, которая решит эту проблему. Обратите внимание, однако, что это не позволит системе использовать полную графическую мощность. Понижающие драйверы Согласно некоторым комментариям к отчету об ошибках, переход на драйвер NVIDIA 367.57 должен полностью решить проблему. Поскольку это больше не присутствует в PPA, вам необходимо загрузить его непосредственно из NVIDIA (64-разрядной) (32-разрядной) (32-разрядной ARM).Это не полное решение, но оно может быть лучше, чем с помощью compiz --replace или иначе перезапустить компиляцию и испортить ваши рабочие области.
Когда я возвращаюсь из suspend, я делаю это:
Система -> Настройки -> Тема изменения внешнего вида для другой темы. Вернуться к исходной темеЭто перезагрузит то, что кажется поврежденными текстурами в графическом процессоре. Если есть способ автоматически принудительно перезагрузить текстуру темы в резюме, это может быть постоянным решением.
Эта проблема также исправлена в драйвере Nvidia 375.66, который находится в обычных репозиториях и должен быть установлен обычными обновлениями.
Я попытался сменить драйвер на обновленную версию исправления ошибок, но он закрутил мою способность делать глубокое обучение с помощью тензорного потока, поэтому я вернулся к исходному программному обеспечению.
Это происходит каждый Я просыпаюсь с Убунту от сна. Я просто открываю терминал CTRL + ALT + T и нажимаю
killall compiz
Сброс дисплея и сбой исчезли. Это займет всего несколько секунд. Вы даже можете использовать его в своем ~/.bashrc, таком как alias kc='killall compiz', поэтому вам нужно только набрать kc, когда вы хотите выполнить команду.
Есть еще один способ решить эту проблему.
Просто убить Xorg после пробуждения компьютера.
Найти PID Xorg:
top
Когда вы найдете pid Xorg, нажмите Ctrl + C, чтобы остановить «верхний» процесс.
Перейти к корню и убить процесс:
sudo su
kill [pid]
После этого войдите в свою учетную запись.
Предупреждение: это закроет все ваши приложения , Firefox не создает никаких проблем, он просто восстановит все ваши вкладки, но я не могу гарантировать другие приложения, поэтому сохраните их перед выполнением этого процесса.
Теперь Nvidia также обновила свои драйверы nvidia-375 до версии 375.66, которая доступна из стандартных репозиториев Ubuntu всех поддерживаемых в данный момент релизов.
Это означает, что теперь nvidia-375 , за исключением обычного обновления системы, как всегда. Вы не нуждаетесь в пакете драйвера из graphics-drivers PPA, если вы этого не хотите.
Ниже приведен фрагмент изменений для пакета из основных репозиториев 16.04 относительно этой ошибки:
$ apt changelog nvidia-375=375.66-0ubuntu0.16.04.1
[...]
- Fixed a regression that caused corruption in certain
applications, such as window border shadows in Unity, after
resuming from suspend.
[...]
Наконец, Nvidia исправила эту проблему и выпустила новую версию рабочего драйвера: nvidia-381
Решение, описанное в этом ответе, также было обновлено и теперь предлагает перейти на эту фиксированную версию вместо перехода на последнюю версию до ошибки. Однако это остается той же процедурой, но вы просто выключаете имена пакетов.
Некоторые из собственных пакетов драйверов графики Nvidia для Ubuntu ( а именно nvidia-375 и nvidia-378) являются ошибками и создают белые артефакты вокруг границ окна, которые показаны на ваших скриншотах в вопросе. Это происходит воспроизводимо каждый раз, когда вы снова приостанавливаете и снова пробуждаетесь.
До тех пор, пока несколько дней назад пакет nvidia-367 в репозитории Xenial работал нормально и надежно, но теперь они обновили его и преобразовали к пакету перехода, который автоматически устанавливает версию buggy nvidia-375.
lspci -k | grep -iEA3 '3d|vga'
Мое решение на данный момент состоит в том, чтобы понизить с nvidia-375 или nvidia-378 до nvidia-370, что, похоже, работает до сих пор , Поскольку Nvidia выпустила новую версию обновленного драйвера nvidia-381 с исправленной ошибкой, мы можем (и должны) установить этот вариант вместо понижения.
Этот пакет недоступен из стандартные репозитории, но вы можете легко получить его из PPA и заменить его текущим драйвером, выполнив следующие команды:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt purge nvidia*
sudo apt install nvidia-370
sudo apt install nvidia-381
После вас закончили эту процедуру, перезагрузите компьютер и проверьте, есть ли у вас проблемы. Для меня они исчезли. Удачи.
Решение, предложенное Виктором А., прекрасно работает. Однако вы должны заметить, что скрипты, помещенные в /lib/systemd/system-sleep/, выполняются как при переходе компьютера в режим сна, так и при просыпании. Учитывая, что мы хотим только позже, использование предлагаемого сценария замедляет процесс перехода в сон без необходимости. Я рекомендую следующее:
#!/bin/sh
if [ "$2" = "suspend" ] || [ "$2" = "hybrid-sleep" ]; then
case "$1" in
post) kill $(ps -C compiz -o pid=) ;;
esac
fi
Предупреждение. Этот скрипт (а также тот, который предлагается Виктором А.) отключит экран подсказки пароля при пробуждении, тем самым представляя угрозу безопасности.
NVIDIA выпустила обновленную версию драйвера, которая исправила эту регрессию. Любой драйвер, прошедший с 381.09, теперь больше не будет иметь эту проблему, пока NVIDIA не испортится снова.
До тех пор, пока драйвер не достигнет основных репозиториев, их можно загрузить с неофициального драйвера PPID NVIDIA. Это гарантирует, что вам не нужно будет возиться с установщиком (который считается плохой идеей) или нуво. Аналогичным образом, это позволит устанавливать / удалять драйверы через apt вместо опасной полуконфигурации, в которую установщик NVIDIA оставляет драйверы. Кроме того, это не вызовет никаких логических циклов или ошибок, если у вас нет странной системы. Чтобы установить, запустите:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-381
Старые драйверы будут автоматически удалены, а новые будут загружены. Последуйте за перезагрузкой компьютера (так как драйверы NVIDIA необходимо запекать в ядре) и все должно работать нормально. Вы можете проверить правильность установки драйверов, выполнив следующую команду:
nvidia-settings --version
Обязательно верните любые исправления, описанные в этом сообщении , а не , которые вы обновляете до последних драйверов. Например, если вы установили исправленную версию Unity, как описано ниже, запустите эту команду, чтобы вернуться к нормальной версии:
sudo ppa-purge ppa:kaihengfeng/lp1292830
Обратите внимание, что вам понадобится ppa-purge, который может быть установлен сделано так:
sudo apt install ppa-purge
Если обновление не является вариантом (слишком старым для карты, политики компании и т. д.):
Kai-Heng Фэн из Launchpad был достаточно любезен, чтобы загрузить версию Unity в свой собственный PPA (ppa:kaihengfeng/lp1292830), который должен исправить эту проблему. Чтобы решить эту проблему, просто добавьте его PPA, выполнив следующие команды:
sudo add-apt-repository ppa:kaihengfeng/lp1292830
sudo apt update
sudo apt full-upgrade
После того, как вы закончите, перезагрузите свою систему или перезапустите X11, выйдя из системы, а затем снова запустите.
В качестве альтернативы вы также можете выполнить любое из следующих действий:
Перейти на карту Intel. Если вы используете NVIDIA Prime, вы можете перейти на карту Intel, которая решит эту проблему. Обратите внимание, однако, что это не позволит системе использовать полную графическую мощность. Понижающие драйверы Согласно некоторым комментариям к отчету об ошибках, переход на драйвер NVIDIA 367.57 должен полностью решить проблему. Поскольку это больше не присутствует в PPA, вам необходимо загрузить его непосредственно из NVIDIA (64-разрядной) (32-разрядной) (32-разрядной ARM).Это не полное решение, но оно может быть лучше, чем с помощью compiz --replace или иначе перезапустить компиляцию и испортить ваши рабочие области.
Когда я возвращаюсь из suspend, я делаю это:
Система -> Настройки -> Тема изменения внешнего вида для другой темы. Вернуться к исходной темеЭто перезагрузит то, что кажется поврежденными текстурами в графическом процессоре. Если есть способ автоматически принудительно перезагрузить текстуру темы в резюме, это может быть постоянным решением.
Эта проблема также исправлена в драйвере Nvidia 375.66, который находится в обычных репозиториях и должен быть установлен обычными обновлениями.
Есть еще один способ решить эту проблему.
Просто убить Xorg после пробуждения компьютера.
Найти PID Xorg:
top
Когда вы найдете pid Xorg, нажмите Ctrl + C, чтобы остановить «верхний» процесс.
Перейти к корню и убить процесс:
sudo su
kill [pid]
После этого войдите в свою учетную запись.
Предупреждение: это закроет все ваши приложения , Firefox не создает никаких проблем, он просто восстановит все ваши вкладки, но я не могу гарантировать другие приложения, поэтому сохраните их перед выполнением этого процесса.
Я попытался сменить драйвер на обновленную версию исправления ошибок, но он закрутил мою способность делать глубокое обучение с помощью тензорного потока, поэтому я вернулся к исходному программному обеспечению.
Это происходит каждый Я просыпаюсь с Убунту от сна. Я просто открываю терминал CTRL + ALT + T и нажимаю
killall compiz
Сброс дисплея и сбой исчезли. Это займет всего несколько секунд. Вы даже можете использовать его в своем ~/.bashrc, таком как alias kc='killall compiz', поэтому вам нужно только набрать kc, когда вы хотите выполнить команду.
Теперь Nvidia также обновила свои драйверы nvidia-375 до версии 375.66, которая доступна из стандартных репозиториев Ubuntu всех поддерживаемых в данный момент релизов.
Это означает, что теперь nvidia-375 , за исключением обычного обновления системы, как всегда. Вы не нуждаетесь в пакете драйвера из graphics-drivers PPA, если вы этого не хотите.
Ниже приведен фрагмент изменений для пакета из основных репозиториев 16.04 относительно этой ошибки:
$ apt changelog nvidia-375=375.66-0ubuntu0.16.04.1
[...]
- Fixed a regression that caused corruption in certain
applications, such as window border shadows in Unity, after
resuming from suspend.
[...]
Наконец, Nvidia исправила эту проблему и выпустила новую версию рабочего драйвера: nvidia-381
Решение, описанное в этом ответе, также было обновлено и теперь предлагает перейти на эту фиксированную версию вместо перехода на последнюю версию до ошибки. Однако это остается той же процедурой, но вы просто выключаете имена пакетов.
Некоторые из собственных пакетов драйверов графики Nvidia для Ubuntu ( а именно nvidia-375 и nvidia-378) являются ошибками и создают белые артефакты вокруг границ окна, которые показаны на ваших скриншотах в вопросе. Это происходит воспроизводимо каждый раз, когда вы снова приостанавливаете и снова пробуждаетесь.
До тех пор, пока несколько дней назад пакет nvidia-367 в репозитории Xenial работал нормально и надежно, но теперь они обновили его и преобразовали к пакету перехода, который автоматически устанавливает версию buggy nvidia-375.
lspci -k | grep -iEA3 '3d|vga'
Мое решение на данный момент состоит в том, чтобы понизить с nvidia-375 или nvidia-378 до nvidia-370, что, похоже, работает до сих пор , Поскольку Nvidia выпустила новую версию обновленного драйвера nvidia-381 с исправленной ошибкой, мы можем (и должны) установить этот вариант вместо понижения.
Этот пакет недоступен из стандартные репозитории, но вы можете легко получить его из PPA и заменить его текущим драйвером, выполнив следующие команды:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt purge nvidia*
sudo apt install nvidia-370
sudo apt install nvidia-381
После вас закончили эту процедуру, перезагрузите компьютер и проверьте, есть ли у вас проблемы. Для меня они исчезли. Удачи.
Решение, предложенное Виктором А., прекрасно работает. Однако вы должны заметить, что скрипты, помещенные в /lib/systemd/system-sleep/, выполняются как при переходе компьютера в режим сна, так и при просыпании. Учитывая, что мы хотим только позже, использование предлагаемого сценария замедляет процесс перехода в сон без необходимости. Я рекомендую следующее:
#!/bin/sh
if [ "$2" = "suspend" ] || [ "$2" = "hybrid-sleep" ]; then
case "$1" in
post) kill $(ps -C compiz -o pid=) ;;
esac
fi
Предупреждение. Этот скрипт (а также тот, который предлагается Виктором А.) отключит экран подсказки пароля при пробуждении, тем самым представляя угрозу безопасности.
NVIDIA выпустила обновленную версию драйвера, которая исправила эту регрессию. Любой драйвер, прошедший с 381.09, теперь больше не будет иметь эту проблему, пока NVIDIA не испортится снова.
До тех пор, пока драйвер не достигнет основных репозиториев, их можно загрузить с неофициального драйвера PPID NVIDIA. Это гарантирует, что вам не нужно будет возиться с установщиком (который считается плохой идеей) или нуво. Аналогичным образом, это позволит устанавливать / удалять драйверы через apt вместо опасной полуконфигурации, в которую установщик NVIDIA оставляет драйверы. Кроме того, это не вызовет никаких логических циклов или ошибок, если у вас нет странной системы. Чтобы установить, запустите:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-381
Старые драйверы будут автоматически удалены, а новые будут загружены. Последуйте за перезагрузкой компьютера (так как драйверы NVIDIA необходимо запекать в ядре) и все должно работать нормально. Вы можете проверить правильность установки драйверов, выполнив следующую команду:
nvidia-settings --version
Обязательно верните любые исправления, описанные в этом сообщении , а не , которые вы обновляете до последних драйверов. Например, если вы установили исправленную версию Unity, как описано ниже, запустите эту команду, чтобы вернуться к нормальной версии:
sudo ppa-purge ppa:kaihengfeng/lp1292830
Обратите внимание, что вам понадобится ppa-purge, который может быть установлен сделано так:
sudo apt install ppa-purge
Если обновление не является вариантом (слишком старым для карты, политики компании и т. д.):
Kai-Heng Фэн из Launchpad был достаточно любезен, чтобы загрузить версию Unity в свой собственный PPA (ppa:kaihengfeng/lp1292830), который должен исправить эту проблему. Чтобы решить эту проблему, просто добавьте его PPA, выполнив следующие команды:
sudo add-apt-repository ppa:kaihengfeng/lp1292830
sudo apt update
sudo apt full-upgrade
После того, как вы закончите, перезагрузите свою систему или перезапустите X11, выйдя из системы, а затем снова запустите.
В качестве альтернативы вы также можете выполнить любое из следующих действий:
Перейти на карту Intel. Если вы используете NVIDIA Prime, вы можете перейти на карту Intel, которая решит эту проблему. Обратите внимание, однако, что это не позволит системе использовать полную графическую мощность. Понижающие драйверы Согласно некоторым комментариям к отчету об ошибках, переход на драйвер NVIDIA 367.57 должен полностью решить проблему. Поскольку это больше не присутствует в PPA, вам необходимо загрузить его непосредственно из NVIDIA (64-разрядной) (32-разрядной) (32-разрядной ARM).Это не полное решение, но оно может быть лучше, чем с помощью compiz --replace или иначе перезапустить компиляцию и испортить ваши рабочие области.
Когда я возвращаюсь из suspend, я делаю это:
Система -> Настройки -> Тема изменения внешнего вида для другой темы. Вернуться к исходной темеЭто перезагрузит то, что кажется поврежденными текстурами в графическом процессоре. Если есть способ автоматически принудительно перезагрузить текстуру темы в резюме, это может быть постоянным решением.
Эта проблема также исправлена в драйвере Nvidia 375.66, который находится в обычных репозиториях и должен быть установлен обычными обновлениями.