Странные артефакты вдоль границ окна после выхода компьютера из спящего режима


118

NB: Nvidia выпустила официальное исправление; пожалуйста, смотрите ответ ByteCommander , мой собственный ответ и / или ответ Kaz Wolfe .


После пробуждения Ubuntu 16.04 из Suspend вокруг всех окон, контекстных меню и т. П. Появляются следующие графические сбои:

введите описание изображения здесь


В настоящее время известно, что это влияет на следующие карты NVIDIA, на которых установлены проприетарные драйверы:

  • NVIDIA GeForce 610M, версия драйвера 375.39, 340.102
  • NVIDIA GT 630M, версия драйвера 375.39
  • NVIDIA GTX 650, версия драйвера 375.39
  • NVIDIA GT 740M, версия драйвера 378.13
  • NVIDIA GTX 745, неизвестная версия драйвера
  • NVIDIA GTX 850M, версия драйвера 375.39, 378.13
  • NVIDIA GT 940M, версия драйвера 375.39
  • NVIDIA GTX 950M, неизвестная версия драйвера
  • NVIDIA GTX 960M, версия драйвера 378.13
  • NVIDIA GTX 970, версия драйвера 375.39
  • NVIDIA GTX 970M, версия драйвера 375.39
  • NVIDIA GTX 980 TI, неизвестная версия драйвера
  • NVIDIA GTX 1060, версия драйвера 375.26, 375.39, 378.09
  • NVIDIA GTX 1070, версия драйвера 378.09

Приведенный выше список был получен из отчетов других пользователей здесь, в AU, этой теме и этой теме.

NB: Это ни в коем случае не исключительный список. Это, вероятно, влияет почти на все карты Nvidia.

Кроме того, эта проблема была повторена при чистой установке, где единственным изменением было обновление программного обеспечения и установка последних драйверов NVIDIA.


Что происходит и как это можно решить?


Какой графический драйвер вы используете и какая у вас модель видеокарты? У меня недавно была такая же проблема с моей картой 940M и некоторыми версиями проприетарного драйвера nvidia после того, как ноутбук снова завис и снова проснулся. Пожалуйста, отредактируйте вопрос и добавьте вывод, lspci -k | grep -iEA3 '3d|vga'который содержит всю запрашиваемую информацию. Благодарю.
Byte Commander

1
О, на самом деле у меня также сноваnvidia-367 возникает эта проблема , потому что драйвер, который я использовал, стал переходным пакетом, который автоматически обновляется до версии nvidia-375, которая была одной из версий, вызывающих эту ошибку. Пора пускать nvidia и писать сообщения об ошибках.
Byte Commander

2
это действительно даб, но попробуйте гуглить что-то вроде «странных вещей по углам» ... В любом случае, эти вопросы имеют плохие ответы, в то время как решение ниже работает как шарм.
Иван

1
@taylorswift - Похоже, что по крайней мере 41 человек тоже имеют эту проблему: bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-375/… Думаю, нам просто нужно подождать, пока Nvidia исправит это.
Android Dev

Также влияет GeForce GTX 950M.
conualfy

Ответы:


77

NB: Это был временный обходной путь, пока Nvidia не выпустила исправленный драйвер. Прокрутите вниз, чтобы найти другие ответы с фактическим исправлением. - Android Dev


У меня та же проблема с использованием графического процессора: Nvidia GTX 970 с драйвером nvidia 375.39 на Ubuntu 16.04.2 LTS

Я наблюдал это с недавнего обновления драйвера nvidia. Я, таким образом, подозреваю, что это ошибка в драйвере.

Я нашел ответ на доске nvidia . Это подтвержденная ошибка в драйвере, и nvidia, очевидно, уже работает над этим. В то же время, можно перезагрузить Compiz с

compiz --replace

избавиться от артефактов.

Ошибка в системе отслеживания ошибок Ubuntu, включая обходной скрипт для автоматического перезапуска compiz после возобновления.


Другим решением было бы перейти на предыдущую версию драйвера: askubuntu.com/a/896544/657603
Антуан Дюссо,

Спасибо за обходной путь. Я не уверен, но так как у меня есть эта проблема, и у меня также есть другая проблема: мой ноутбук не всегда корректно зависает после одного часа, как он установил.
Скалар Ваг

Когда он возвращается из спящего режима, он автоматически входит в систему, прежде чем запрашивать пароль, в любом случае, чтобы это исправить?
Хатем Джабер

2
compiz --replaceне ведет себя хорошо с рабочими пространствами. Он помещает все окна всех рабочих областей в первое рабочее пространство :(
AlikElzin-kilaka

1
Вы должны держать терминал открытым с помощью этой команды. Если вы закроете терминал, он снова запустит compiz. Это будет работать до следующей приостановки, это не настоящее решение, я не могу по-настоящему функционировать, выполняя эту команду несколько раз в день. Пошел к вышеуказанному решению, сменив драйвер.
conualfy

58

ОБНОВЛЕНИЕ 2:

Теперь Nvidia также обновила свои nvidia-375драйверы до версии 375.66 , которая доступна в стандартных репозиториях Ubuntu всех поддерживаемых в настоящее время выпусков .

Это означает, что отныне вам больше не нужно предпринимать никаких специальных действий , за исключением обычных обновлений системы, как всегда. Вам не нужен пакет драйверов от graphics-driversPPA, если вы не хотите их.

Вот отрывок журнала изменений для пакета из основных репозиториев 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 работал нормально и надежно, но теперь они обновили его и преобразовали в переходный пакет, который nvidia-375вместо этого автоматически устанавливает версию с ошибками .

Решение (обновлено после выпуска исправления от Nvidia):

Убедитесь, что у вас действительно есть видеокарта Nvidia, которая вызывает проблему, а не карта другого бренда, которая случайно ведет себя неправильно. Установка драйверов Nvidia для видеокарт, отличных от Nvidia, не поможет.

Вы можете убедиться в этом, проверив вывод команды ниже:

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

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


1
Для обычных пользователей, я предпочел бы быстро без водителя изменяющего обходного пути здесь , а не понижая водитель. Учитывая, что исправление будет выпущено (и, вероятно, не слишком далеко), это просто временный дискомфорт. Однако, если вы понизили версию драйверов, вам придется не забывать возвращаться aptв состояние, при котором дальнейшие обновления будут автоматически получены снова. Вы также должны будете постоянно проверять, чтобы новая исправленная версия была выпущена, вместо того, чтобы просто ждать ее получения автоматически - проблема склонна и неудобна.
Джейсон С

1
@JasonC Нет. nvidia-370Весьма вероятно, что он также превратится в переходный пакет, как это nvidia-367уже было, и поэтому это обновление автоматически установит версию драйвера, которую nvidia / команда графических драйверов считает подходящим преемником. 370 - это последний (и, возможно, единственный) поддерживаемый в настоящее время драйвер, который не подвержен этой ошибке, так почему бы не использовать его? По сравнению с 367, которая использовалась до обновления, представляющего эту ошибку, это все еще обновление. Более того, мы не задерживаем какие-либо пакеты и не перезаписываем любую подходящую конфигурацию, как вам кажется.
Byte Commander

1
@ByteCommander Я удалю свой комментарий при двух условиях. 1) До тех пор , как вы 100% уверены , что он будет превращаться в переходный пакет, я буду верить вам (я не 100% уверен в своем заявлении); или если вы не уверены на 100%, добавьте в ответ упоминание о риске и 2) добавьте упоминание о том, как это не повлияет на будущие обновления, если он станет переходным пакетом, и что делать один раз. Исправление выпущено, к ответу.
Джейсон С

1
@JasonC Нет необходимости удалять ваш комментарий. Я по понятным причинам не могу гарантировать, что сопровождающие graphics-driversPPA будут делать со своими пакетами в будущем, я могу просто сделать предположения на основе того, что они делали в прошлом. И пока поддерживается 370, нет необходимости действовать, даже когда они исправляют 375 и 378. Мое сильное предположение состоит в том, что как только nvidia отвергает 370 (как они недавно сделали с 367), сопровождающие PPA повернут его в переходный пакет, означающий, что обновленная версия не будет содержать больше кода, но добавит зависимость к более новому драйверу.
Byte Commander

2
@ Мацмат, я не знаю. Время покажет. Возможно, он никогда не будет добавлен в репозитории «старых» версий Ubuntu, которые были выпущены до этого пакета драйверов. Я не думаю, что можно дать точный ответ до того, как это действительно произошло.
Byte Commander

36

Это является была ошибка в драйверах Nvidia.

Nvidia смогла воспроизвести проблему, и они работают над исправлением, которое будет включено в их следующую версию драйвера. (Исправление уже выпущено, см. Раздел ниже).

Смотрите эту ветку на форумах разработчиков Nvidia для получения дополнительной информации. Эта ошибка также была зарегистрирована на Launchpad .

Спасибо @Stefan за его великолепные навыки распутывания в раскрытии этой информации !


Nvidia наконец-то выпустила официальное исправление!

  • Исправление предоставлено бета-драйвером 381.09 Соответствующий скриншот из журнала изменений : введите описание изображения здесь

  • Этот драйвер в настоящее время отсутствует в каких-либо хранилищах.

  • Пока вышеперечисленные изменения не понадобятся, вам потребуется установить новый драйвер вручную. Обновление: драйвер 381.09 теперь находится в неофициальном репозитории. Вы можете установить исправленный драйвер из неофициального PPA или установить его вручную.

  • ОБНОВЛЕНИЕ - ИСПРАВИТЬ СЕЙЧАС В ОФИЦИАЛЬНОМ РЕПО:

    Престижность @ ubfan1 для представления этого ! Смотрите ниже раздел для деталей


1. Установка исправленного [release] драйвера из официального репо (рекомендуется):

Nvidia выпустила обновление для своего релиз-драйвера 05/04/2017, содержащее, среди прочего, исправление ошибки, которое вы ищете. Обновлен релиз драйвера получил версию375.66

Поскольку это 375.66в официальном репозитории, загрузка исправленного драйвера довольно проста.

  • Если вы в данный момент используете 375.39версию с ошибками , то все, что нужно, это просто:

    sudo apt-get update
    sudo apt-get upgrade
    

  • Если вы используете устаревший драйвер, вам следует выполнить:

    sudo apt-get update
    

    Затем следует перейти на новую версию драйвера в разделе «Дополнительные драйверы»:

    введите описание изображения здесь


  • Если вы в настоящее время используете драйвер, установленный вручную, вы должны удалить его, перезагрузить, а затем выполнить действия, описанные выше.

После перезагрузки вы должны обнаружить, что ваш драйвер Nvidia обновлен до 375.66.


2. Если вам не нужен новый драйвер для совместимости с вашим графическим процессором: *

* Обратите внимание, что этот раздел был заменен разделом № 1

Если ваша видеокарта достаточно старая, чтобы она поддерживалась драйвером v340, устанавливать неофициальную версию с неофициального PPA не нужно. Тем не менее, для людей с новыми картами, такими как GTX 9-й или 10-й серии, вам понадобится более новый драйвер.

Для удобства ниже приведен полный список карт, поддерживаемых драйвером версии 340:

GeForce 800M Series (Notebooks):
GeForce GTX 880M, GeForce GTX 870M, GeForce GTX 860M, GeForce GTX 850M, GeForce 845M, GeForce 840M, GeForce 830M, GeForce 825M, GeForce 820M, GeForce 810M

GeForce 700 Series:
GeForce GTX TITAN Z, GeForce GTX TITAN Black, GeForce GTX TITAN, GeForce GTX 780 Ti, GeForce GTX 780, GeForce GTX 770, GeForce GTX 760, GeForce GTX 760 Ti (OEM), GeForce GTX 750 Ti, GeForce GTX 750, GeForce GTX 745, GeForce GT 740, GeForce GT 730, GeForce GT 720, GeForce GT 710, GeForce GT 705

GeForce 700M Series (Notebooks):
GeForce GTX 780M, GeForce GTX 770M, GeForce GTX 765M, GeForce GTX 760M, GeForce GT 755M, GeForce GT 750M, GeForce GT 745M, GeForce GT 740M, GeForce GT 735M, GeForce GT 730M, GeForce GT 720M, GeForce GT 710M, GeForce 720M, GeForce 710M, GeForce 705M

GeForce 600 Series:
GeForce GTX 690, GeForce GTX 680, GeForce GTX 670, GeForce GTX 660 Ti, GeForce GTX 660, GeForce GTX 650 Ti BOOST, GeForce GTX 650 Ti, GeForce GTX 650, GeForce GTX 645, GeForce GT 645, GeForce GT 640, GeForce GT 635, GeForce GT 630, GeForce GT 620, GeForce GT 610, GeForce 605

GeForce 600M Series (Notebooks):
GeForce GTX 680MX, GeForce GTX 680M, GeForce GTX 675MX, GeForce GTX 675M, GeForce GTX 670MX, GeForce GTX 670M, GeForce GTX 660M, GeForce GT 650M, GeForce GT 645M, GeForce GT 640M, GeForce GT 640M LE, GeForce GT 635M, GeForce GT 630M, GeForce GT 625M, GeForce GT 620M, GeForce 610M

GeForce 500 Series:
GeForce GTX 590, GeForce GTX 580, GeForce GTX 570, GeForce GTX 560 Ti, GeForce GTX 560 SE, GeForce GTX 560, GeForce GTX 555, GeForce GTX 550 Ti, GeForce GT 545, GeForce GT 530, GeForce GT 520, GeForce 510

GeForce 500M Series (Notebooks):
GeForce GTX 580M, GeForce GTX 570M, GeForce GTX 560M, GeForce GT 555M, GeForce GT 550M, GeForce GT 540M, GeForce GT 525M, GeForce GT 520M, GeForce GT 520MX

GeForce 400 Series:
GeForce GTX 480, GeForce GTX 470, GeForce GTX 465, GeForce GTX 460 SE v2, GeForce GTX 460 SE, GeForce GTX 460, GeForce GTS 450, GeForce GT 440, GeForce GT 430, GeForce GT 420, GeForce 405

GeForce 400M Series (Notebooks):
GeForce GTX 485M, GeForce GTX 480M, GeForce GTX 470M, GeForce GTX 460M, GeForce GT 445M, GeForce GT 435M, GeForce GT 425M, GeForce GT 420M, GeForce GT 415M, GeForce 410M, GeForce 405M

GeForce 300 Series:
GeForce GT 340, GeForce GT 330, GeForce GT 320, GeForce 315, GeForce 310

GeForce 300M Series (Notebooks):
GeForce GTS 360M, GeForce GTS 350M, GeForce GT 335M, GeForce GT 330M, GeForce GT 325M, GeForce GT 320M, GeForce 320M, GeForce 315M, GeForce 310M, GeForce 305M

GeForce 200 Series:
GeForce GTX 295, GeForce GTX 285, GeForce GTX 280, GeForce GTX 275, GeForce GTX 260, GeForce GTS 250, GeForce GTS 240, GeForce GT 230, GeForce GT 240, GeForce GT 220, GeForce G210, GeForce 210, GeForce 205

GeForce 200M Series (Notebooks):
GeForce GTX 285M, GeForce GTX 280M, GeForce GTX 260M, GeForce GTS 260M, GeForce GTS 250M, GeForce GT 240M, GeForce GT 230M, GeForce GT 220M, GeForce G210M, GeForce G205M

GeForce 100 Series:
GeForce GT 140, GeForce GT 130, GeForce GT 120, GeForce G100

GeForce 100M Series (Notebooks):
GeForce GTS 160M, GeForce GTS 150M, GeForce GT 130M, GeForce GT 120M, GeForce G 110M, GeForce G 105M, GeForce G 103M, GeForce G 102M

GeForce 9 Series:
GeForce 9800 GX2, GeForce 9800 GTX/GTX+, GeForce 9800 GT, GeForce 9600 GT, GeForce 9600 GSO, GeForce 9600 GSO 512, GeForce 9600 GS, GeForce 9500 GT, GeForce 9500 GS, GeForce 9400 GT, GeForce 9400, GeForce 9300 GS, GeForce 9300 GE, GeForce 9300 SE, GeForce 9300, GeForce 9200, GeForce 9100

GeForce 9M Series (Notebooks):
GeForce 9800M GTX, GeForce 9800M GTS, GeForce 9800M GT, GeForce 9800M GS, GeForce 9700M GTS, GeForce 9700M GT, GeForce 9650M GT, GeForce 9650M GS, GeForce 9600M GT, GeForce 9600M GS, GeForce 9500M GS, GeForce 9500M G, GeForce 9400M G, GeForce 9400M, GeForce 9300M GS, GeForce 9300M G, GeForce 9200M GS, GeForce 9100M G

GeForce 8 Series:
GeForce 8800 Ultra, GeForce 8800 GTX, GeForce 8800 GTS 512, GeForce 8800 GTS, GeForce 8800 GT, GeForce 8800 GS, GeForce 8600 GTS, GeForce 8600 GT, GeForce 8600 GS, GeForce 8500 GT, GeForce 8400 GS, GeForce 8400 SE, GeForce 8400, GeForce 8300 GS, GeForce 8300, GeForce 8200, GeForce 8100 /nForce 720a

GeForce 8M Series (Notebooks):
GeForce 8800M GTX, GeForce 8800M GTS, GeForce 8700M GT, GeForce 8600M GT, GeForce 8600M GS, GeForce 8400M GT, GeForce 8400M GS, GeForce 8400M G, GeForce 8200M G, GeForce 8200M

Quadro Series:
Quadro K6000, Quadro K5200, Quadro K5000, Quadro K4000, Quadro K4200, Quadro K2200, Quadro K2000, Quadro K2000D, Quadro K620, Quadro K600, Quadro K420, Quadro 6000, Quadro 5000, Quadro 4000, Quadro 2000, Quadro 2000D, Quadro 600, Quadro 410, Quadro 400

Quadro Series (Notebooks):
Quadro K5100M, Quadro K5000M, Quadro K4100M, Quadro K4000M, Quadro K3100M, Quadro K2100M, Quadro K3000M, Quadro K2000M, Quadro K1100M, Quadro K1000M, Quadro K610M, Quadro K510M, Quadro K500M, Quadro 5010M, Quadro 5000M, Quadro 4000M, Quadro 3000M, Quadro 2000M, Quadro 1000M

Quadro FX Series:
Quadro CX, Quadro FX 370, Quadro FX 370 Low Profile, Quadro FX 380, Quadro FX 380 Low Profile, Quadro FX 570, Quadro FX 580, Quadro FX 1700, Quadro FX 1800, Quadro FX 3700, Quadro FX 3800, Quadro FX 4600, Quadro FX 4700 X2, Quadro FX 4800, Quadro FX 5600, Quadro FX 5800

Quadro FX Series (Notebooks):
Quadro FX 3800M, Quadro FX 3700M, Quadro FX 3600M, Quadro FX 2800M, Quadro FX 2700M, Quadro FX 1800M, Quadro FX 1700M, Quadro FX 1600M, Quadro FX 880M, Quadro FX 770M, Quadro FX 570M, Quadro FX 380M, Quadro FX 370M, Quadro FX 360M

Quadro NVS Series:
Quadro NVS 290, Quadro NVS 295, NVS 510, NVS 315, NVS 310, NVS 300, Quadro NVS 420, Quadro NVS 450

Quadro NVS Series (Notebooks):
NVS 5400M, NVS 5200M, NVS 5100M, NVS 4200M, NVS 3100M, NVS 2100M, Quadro NVS 320M, Quadro NVS 160M, Quadro NVS 150M, Quadro NVS 140M, Quadro NVS 135M, Quadro NVS 130M

Quadro Plex Series:
Quadro Plex Model II, Quadro Plex D Series, Quadro Plex Model IV, Quadro Plex 7000

Quadro Sync Series:
Quadro Sync, Quadro G-Sync II

Quadro SDI:
Quadro SDI

GRID Series:
GRID K2, GRID K520

NVS Series:
Quadro NVS 290, Quadro NVS 295, NVS 510, NVS 315, NVS 310, NVS 300, Quadro NVS 420, Quadro NVS 450

NVS Series (Notebooks):
NVS 5400M, NVS 5200M, NVS 5100M, NVS 4200M, NVS 3100M, NVS 2100M, Quadro NVS 320M, Quadro NVS 160M, Quadro NVS 150M, Quadro NVS 140M, Quadro NVS 135M, Quadro NVS 130M

ION (Desktops):
ION

ION (Notebooks):
ION

ION LE (Desktops):
ION LE

ION LE (Notebooks):
ION LE

Итак, если ваш графический процессор поддерживается 340, то вы можете просто переключиться на версию 340 в разделе «Дополнительные драйверы». (Версия 340 не имеет этой ошибки.)

введите описание изображения здесь

Обязательно перезагрузите компьютер после переключения версии драйвера.


3. Чтобы установить исправленный [бета] драйвер из неофициального PPA ( рекомендуется ):

  1. Запустите терминал с помощью CTRL+ ALT+T

  2. Запустите эти команды:

    sudo -i
    add-apt-repository ppa:graphics-drivers/ppa
    apt-get update
    apt-get install nvidia-381
    
  3. Перезагрузите компьютер, и вы должны быть готовы к работе! После перезагрузки компьютера откройте настройки сервера Nvidia X. Если повезет, вы увидите новую версию драйвера:

    введите описание изображения здесь


4. Чтобы вручную установить исправленный драйвер [бета] ( НЕ рекомендуется):

Установка драйверов Nvidia из *.runфайла, как правило, не очень хорошая идея. Это имеет тенденцию ломать вещи. Таким образом, лучше установить их из PPA, как описано выше. Тем не менее, если вы путешествуете и хотите установить их вручную, это процесс, который работал для меня с Ubuntu 16.04 и GTX650.

Перед установкой исправленного драйвера вы ДОЛЖНЫ удалить свой текущий проприетарный драйвер и переключиться на драйвер Nouveau:

введите описание изображения здесь

Обязательно перезагрузите компьютер после переключения. Если вы не сможете удалить свой текущий драйвер, новый драйвер конфликтует со старым, и вы сломаете вещи!

  1. Загрузите исправленный файл драйвера от Nvidia. Вот прямая ссылка.

  2. Сохраните файл в папку загрузок

  3. Выйдите из сеанса с графическим интерфейсом (перед тем как продолжить, вы должны войти в экран входа в систему)

  4. Зажги tty1с CTRL+ ALT+F1

  5. Войти с вашими обычными учетными данными

  6. Запустите эти команды:

    sudo service lightdm stop
    cd Downloads
    chmod +x NVIDIA-Linux-x86_64-381.09.run
    sudo ./NVIDIA-Linux-x86_64-381.09.run
    
  7. Примите лицензионное соглашение:

    введите описание изображения здесь

  8. Он будет жаловаться на сбой сценария предварительной установки, предоставленного дистрибутивом. Продолжай в любом случае:

    введите описание изображения здесь

  9. Выберите, Yesкогда вас спросят, хотите ли вы зарегистрировать модуль ядра с помощью dkms:

    введите описание изображения здесь

  10. Выберите, Yesкогда вас спросят, хотите ли вы установить 32-битные библиотеки совместимости:

    введите описание изображения здесь

  11. Сборка модуля ядра займет некоторое время, так что наберитесь терпения!

    введите описание изображения здесь

  12. Выберите, Yesкогда вас спросят, хотите ли вы запустить nvidia-xconfig:

    введите описание изображения здесь

  13. Выберите Okдля выхода из установщика

  14. Почти готово! Теперь просто запустите эти команды:

    rm ~/.Xauthority
    rm ~/.config/dconf/unity
    sudo shutdown -r now
    
  15. После перезагрузки компьютера откройте настройки сервера Nvidia X. Если повезет, вы увидите новую версию драйвера:

    введите описание изображения здесь


1
ПРИМЕЧАНИЕ . Шаг 14 использовался, когда рабочий стол Unity ответа не отображался, как обсуждалось в чате Ask Ubuntu. Это может быть необязательно, но если ваш рабочий стол Unity не появляется, используйте этот шаг в качестве решения.
Сергей Колодяжный

Извините, но я должен поспорить с этим решением. Это привело меня к ошибке, из-за которой я не смог войти в систему и был несовместим с установленным винным программным обеспечением Windows. Такая проблема при входе часто встречается, если вы устанавливаете файлы .run с сайта nvidia вместо использования доступных источников в ubuntu. Гораздо более простым способом решения этой проблемы было бы использование версии 340, доступной прямо между выбираемыми драйверами в меню «Программное обеспечение и обновления». По крайней мере, это помогло мне все исправить.
Джорджио Витанза

@GiorgioVitanza - я знаю, что установка .runфайлов на самом деле не рекомендуется. Но использование драйвера 340 не подходит для людей с более новой картой, такой как 10-я серия. Я протестировал это решение на своем компьютере, и оно работало нормально.
Android Dev

@GiorgioVitanza Попробуйте мой ответ - он устанавливает драйверы из PPA, которые должны быть намного более совместимы, чем файлы запуска.
Каз Вулф

@GiorgioVitanza - Теперь, когда драйвер находится в PPA, я обновил свой ответ, включив оба метода.
Android Dev

7

Эта проблема присутствует в 375 и 378 драйверов ...


Учитывая, что простое уничтожение процесса compiz устраняет проблему плохой границы, я протестировал решение, которое работает на моей системе Ubuntu 16.04 каждый раз после пробуждения системы.

Шаг 1:

Я создал скрипт, который называется fixbadbordersв каталоге /lib/systemd/system-sleep. Он содержал следующее:

#!/bin/sh
## This file (or a link to it) must be in the folder /lib/systemd/system-sleep/
## Purpose: Kill compiz after system wakes up from sleep.
## This will fix bad window borders caused by Nvidia driver 375.39.
kill $(ps -C compiz -o pid=)

Шаг 2:

Разрешено, чтобы скрипт имел разрешение на выполнение с:

sudo chmod +x fixbadborders

Чтобы удалить этот скрипт:

sudo rm /lib/systemd/system-sleep/fixbadborders

Все кредиты принадлежат Sun Bear, который создал этот комментарий к сценарию. 13


Лучше
Zanna

3
Его недостаток в том, что мой экран входа в систему никогда не отображается, когда входишь в десктоп из сна :(
Hesam

6

NVIDIA выпустила обновленную версию драйвера, которая исправила эту регрессию. Любой драйвер после 381.09 больше не будет иметь этой проблемы, пока NVIDIA не испортится снова.

До тех пор, пока драйвер не дойдет до основных репозиториев, его можно будет загрузить с неофициального драйвера NVIDIA PPA. Это гарантирует, что вам не нужно возиться с установщиком (что широко считается плохой идеей) или Nouveau. Точно так же это позволит устанавливать / удалять драйверы 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

Если обновление недоступно (слишком старая карта, политика компании и т. Д.):

Кай-Хенг Фенг из 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) .

367, похоже, больше не существует, как в официальных репозиториях Ubuntu, так и в graphics-drivers/ppaPPA, этот пакет является «переходным» пакетом nvidia-375, поэтому при его установке вы получите версию с ошибкой 375. Если вы знаете источник, где можно найти старый драйвер от 367, вы должны включить его в свой ответ
Byte Commander

@ByteCommander готов
Kaz Wolfe

К вашему сведению, если вы пропустили это, исправленный драйвер теперь находится в официальном репо.
Android Dev

3

Решение, предложенное Виктором А., работает просто отлично. Однако следует помнить, что размещенные сценарии /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

Предупреждение, хотя. Этот сценарий (а также сценарий, предложенный Виктором А.) отключит экран запроса пароля при пробуждении, создавая тем самым угрозу безопасности.


3

Эта проблема также была исправлена ​​в драйвере Nvidia 375.66, который находится в обычных репозиториях и должен быть установлен обычными обновлениями.


Приятно спать! Я обновил свой ответ, чтобы отразить эту новую разработку, и благодарю вас за то, что вы обнаружили, что теперь в официальном репо есть исправленная версия :)
Android Dev

2

Это не полное решение, но может быть лучше, чем использовать compiz --replaceили иным образом перезапускать compiz и портить ваши рабочие пространства.

Когда я возобновляю с приостановки, я делаю это:

  • Система -> Настройки -> Внешний вид
  • Изменить тему на другую тему
  • Вернуться на исходную тему

Это перезагрузит то, что кажется поврежденным текстурам в GPU. Если есть способ автоматически перезагружать текстуры темы при возобновлении, это может быть постоянным решением.



1

Есть еще один способ решить эту проблему. (Я не рекомендую, если у вас запущено много процессов.)

Просто убейте Xorg после пробуждения компьютера.

Найдите PID Xorg по:

top

Когда вы найдете pid Xorg, нажмите Ctrl + C, чтобы остановить «верхний» процесс.

Войдите в root и убейте процесс:

sudo su
kill [pid]

После этого войдите в свой аккаунт.

Предупреждение: это закроет все ваши приложения. Firefox не создает проблем по этому поводу, он просто восстановит все ваши вкладки, но я не могу гарантировать другие приложения, поэтому сохраните их перед выполнением этого процесса.


2
Кстати, чтобы закрыть верх стандартным способом, а не просто отменить задачу (Ctrl + C), вы можете просто нажать «q».
anonymous2

0

Я попытался сменить драйвер на обновленный с исправлением ошибок, но это мешало мне выполнять глубокое обучение с tenorflow, поэтому я вернулся к исходному программному обеспечению с ошибками.

Это происходит каждый раз, когда я просыпаюсь от Ubuntu. Я просто открыть терминал CTRL+ ALT+ Tи тип

killall compiz

Дисплей сбрасывается и глюк исчезает. Это займет всего несколько секунд. Вы могли бы даже псевдоним он в вашем , ~/.bashrcкак alias kc='killall compiz'так у вас есть только набрать , kcесли вы хотите , чтобы выполнить команду.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.