Dziwne artefakty wzdłuż krawędzi okna po wybudzeniu komputera z trybu uśpienia


118

Uwaga: Nvidia wydała oficjalną poprawkę; proszę zobaczyć odpowiedź ByteCommandera , moją własną odpowiedź i / lub odpowiedź Kaz Wolfe'a .


Po przebudzeniu Ubuntu 16.04 z Suspend następujące usterki graficzne pojawiają się wokół wszystkich okien, menu kontekstowych i podobnych:

wprowadź opis zdjęcia tutaj


Obecnie wiadomo, że ma to wpływ na następujące karty NVIDIA z prawnie zastrzeżonymi sterownikami:

  • NVIDIA GeForce 610M, wersja sterownika 375.39, 340.102
  • NVIDIA GT 630M, wersja sterownika 375.39
  • NVIDIA GTX 650, wersja sterownika 375.39
  • NVIDIA GT 740M, wersja sterownika 378.13
  • NVIDIA GTX 745, nieznana wersja sterownika
  • NVIDIA GTX 850M, wersja sterownika 375.39, 378.13
  • NVIDIA GT 940M, wersja sterownika 375.39
  • NVIDIA GTX 950M, nieznana wersja sterownika
  • NVIDIA GTX 960M, wersja sterownika 378.13
  • NVIDIA GTX 970, wersja sterownika 375.39
  • NVIDIA GTX 970M, wersja sterownika 375.39
  • NVIDIA GTX 980 TI, nieznana wersja sterownika
  • NVIDIA GTX 1060, wersja sterownika 375.26, 375.39, 378.09
  • NVIDIA GTX 1070, wersja sterownika 378.09

Powyższa lista pochodzi z raportów innych użytkowników tutaj w AU, tego wątku i tego wątku.

NB: To nie jest lista wyłączna. Prawdopodobnie wpływa na prawie wszystkie karty Nvidii.

Ponadto problem ten został zreplikowany podczas czystej instalacji, w której jedyną zmianą była aktualizacja oprogramowania i instalacja najnowszych sterowników NVIDIA.


Co się dzieje i jak można to rozwiązać?


Z jakiego sterownika graficznego korzystasz i jaki masz model karty graficznej? Ostatnio miałem ten sam problem z moją kartą 940M i niektórymi wersjami zastrzeżonego sterownika nvidii po zawieszeniu i ponownym obudzeniu laptopa. Proszę edytować pytanie i dodać na wyjściu lspci -k | grep -iEA3 '3d|vga', który zawiera wszystkie wymagane informacje. Dzięki.
Bajt Dowódca

1
Och, tak naprawdę mam ten problem ponownie , ponieważ nvidia-367sterownik, którego użyłem, stał się pakietem przejściowym, który automatycznie aktualizuje się do nvidia-375, która była jedną z wersji powodujących ten błąd. Czas nagrać NVIDIA i napisać raporty o błędach.
Bajt Dowódca

2
to rzeczywiście dub, ale spróbuj wyszukać w Google coś w rodzaju „dziwnych rzeczy w rogach” ... W każdym razie te pytania mają słabe odpowiedzi, podczas gdy poniższe rozwiązanie działa jak urok.
Ivan

1
@taylorswift - Wygląda na to, że co najmniej 41 innych ma również ten problem: bugs.launchpad.net/ubuntu/+source/nvidia-graphics-drivers-375/… Myślę, że będziemy musieli poczekać, aż Nvidia go naprawi.
Android Dev

Wpływa również na GeForce GTX 950M.
conualfy

Odpowiedzi:


77

Uwaga: To było tymczasowe obejście, dopóki Nvidia nie wypuściła poprawionego sterownika. Przewiń w dół, aby znaleźć inne odpowiedzi z właściwą poprawką. - Android Dev


Mam ten sam problem z GPU: Nvidia GTX 970 ze sterownikiem nvidia 375.39 na Ubuntu 16.04.2 LTS

Zauważyłem to od ostatniej aktualizacji sterownika NVIDIA. Podejrzewam więc, że jest to błąd w sterowniku.

Znalazłem odpowiedź na tablicy nvidii . Jest to potwierdzony błąd w sterowniku i nvidia najwyraźniej już nad tym pracuje. W międzyczasie można ponownie uruchomić compiz

compiz --replace

pozbyć się artefaktów.

Błąd znajduje się w systemie śledzenia błędów Ubuntu, w tym w skrypcie obejścia, aby automatycznie wznowić compiz po wznowieniu.


Innym rozwiązaniem byłoby przejście na poprzednią wersję sterownika: askubuntu.com/a/896544/657603
Antoine Dusséaux

Dzięki za obejście. Nie jestem pewien, ale ponieważ mam ten problem i mam również inny problem: mój laptop nie zawsze jest poprawnie zawieszony po godzinie, gdy został ustawiony.
Skalár Wag

Po powrocie ze snu jest automatycznie logowany, zanim w ogóle poprosi o hasło, aby to naprawić?
Hatem Jaber

2
compiz --replacenie zachowuje się dobrze w obszarach roboczych. Umieszcza wszystkie okna wszystkich obszarów roboczych w pierwszym obszarze roboczym :(
AlikElzin-kilaka

1
Za pomocą tego polecenia musisz pozostawić terminal otwarty. Jeśli zamkniesz terminal, uruchomi się on ponownie. Będzie to działać do następnego zawieszenia, to nie jest prawdziwe rozwiązanie, nie mogę naprawdę działać z uruchamianiem tego polecenia kilka razy dziennie. Poszedł do powyższego rozwiązania, zmieniając sterownik.
conualfy

58

AKTUALIZACJA 2:

Nvidia zaktualizowała teraz także swoje nvidia-375sterowniki do wersji 375.66 , która jest dostępna ze standardowych repozytoriów Ubuntu wszystkich obecnie obsługiwanych wydań .

Oznacza to, że odtąd nie powinieneś już podejmować żadnych specjalnych działań , z wyjątkiem zwykłych aktualizacji systemu. Nie potrzebujesz pakietu sterowników z graphics-driversPPA, jeśli ich nie chcesz.

Oto fragment dziennika zmian dla pakietu z głównych repozytoriów 16.04 dotyczących tego błędu:

$ 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.
  [...]

AKTUALIZACJA:

Nvidia w końcu naprawiła ten problem i wydała nową działającą wersję sterownika: nvidia-381

Rozwiązanie opisane w tej odpowiedzi również zostało zaktualizowane i teraz sugeruje aktualizację do tej ustalonej wersji zamiast obniżania wersji do najnowszej przed błędem. Pozostaje jednak ta sama procedura, wystarczy zmienić nazwy pakietów.


Przyczyna problemu:

Niektóre z zastrzeżonych pakietów sterowników graficznych Nvidia dla Ubuntu (mianowicie nvidia-375i nvidia-378) są błędne i wytwarzają białe artefakty wokół granic okien, które są pokazane na zrzutach ekranu w pytaniu. Zdarza się to powtarzalnie za każdym razem, gdy zawieszasz i budzisz się ponownie.

Jeszcze kilka dni temu nvidia-367pakiet w repozytorium Xenial działał dobrze i niezawodnie, ale teraz zaktualizowali go i przekonwertowali na pakiet przejściowy, który nvidia-375zamiast tego automatycznie instaluje błędną wersję.

Rozwiązanie (zaktualizowane po wydaniu poprawki z Nvidii):

Upewnij się, że naprawdę masz kartę graficzną Nvidia, która jest przyczyną problemu, a nie kartę innej marki, która przypadkowo źle zachowuje się w podobny sposób. Zainstalowanie sterowników Nvidia dla kart graficznych innych niż Nvidia nie przyniesie żadnego pożytku.

Możesz to sprawdzić, sprawdzając dane wyjściowe polecenia poniżej:

lspci -k | grep -iEA3 '3d|vga'

Moim rozwiązaniem na razie jest obniżenie wersji z nvidia-375lub nvidia-378do nvidia-370, co do tej pory wydaje się działać dobrze.
Ponieważ Nvidia wydała nową, zaktualizowaną wersję sterownika nvidia-381z tym błędem, możemy (i powinniśmy) zainstalować tę wersję zamiast obniżenia wersji.

Ten pakiet nie jest dostępny ze standardowych repozytoriów, ale można go łatwo pobrać z PPA i zastąpić go obecnym sterownikiem, uruchamiając poniższe polecenia:

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

Po zakończeniu tej procedury uruchom ponownie komputer i sprawdź, czy nadal występują problemy. Dla mnie ich nie było. Powodzenia.


1
Dla zwykłych użytkowników, wolałbym szybki non-kierowca zmienia obejście tutaj zamiast obniżenia sterowniki. Biorąc pod uwagę, że poprawka zostanie wydana (i prawdopodobnie nie za daleko od teraz), to naprawdę tylko tymczasowy dyskomfort. Jeśli jednak obniżysz sterowniki, musisz pamiętać, aby powrócić aptdo stanu, w którym kolejne aktualizacje będą automatycznie odbierane ponownie. Będziesz także musiał aktywnie sprawdzać, czy nowa poprawnie naprawiona wersja zostanie wydana, zamiast tylko czekać na jej automatyczną wersję - Problem podatny i niewygodny.
Jason C

1
@JasonC Nie. nvidia-370Najprawdopodobniej również zmieni się w pakiet przejściowy, tak jak nvidia-367już jest, i dlatego ta aktualizacja automatycznie zainstaluje wersję sterownika nvidia / zespół sterowników grafiki uważa za odpowiedniego następcę. 370 to najnowszy (i może tylko) aktualnie obsługiwany sterownik, na który ten błąd nie ma wpływu, więc dlaczego go nie użyć? W porównaniu do 367, który był używany przed aktualizacją wprowadzającą ten błąd, nadal jest aktualizacją. Co więcej, nie powstrzymujemy żadnych pakietów ani nie zastępujemy żadnej konfiguracji apt, jak się wydaje.
Bajt Dowódca

1
@ByteCommander Usunę mój komentarz pod dwoma warunkami. 1) Tak długo, jak jesteś w 100% pewien, że to będzie przekształcić w pakiet przejściowy, będę ci wierzyć (nie jestem 100% pewny mojego oświadczenia); lub jeśli nie masz 100% pewności, dodaj wzmiankę o ryzyku do odpowiedzi, i 2) Jeśli dodasz wzmiankę o tym, jak nie wpłynie to na przyszłe aktualizacje, jeśli stanie się pakietem przejściowym, i co zrobić raz poprawka została wydana, zgodnie z odpowiedzią.
Jason C

1
@JasonC Nie musisz usuwać swojego komentarza. Z oczywistych powodów nie mogę zagwarantować, że opiekunowie graphics-driversPPA zrobią ze swoimi pakietami w przyszłości, mogę po prostu przyjąć założenia na podstawie tego, co zrobili w przeszłości. I dopóki obsługiwane jest 370, nie ma potrzeby działania, nawet jeśli naprawią 375 i 378. Moje przypuszczenie jest takie, że gdy NVIDIA deprecjonuje 370 (tak jak ostatnio z 367), opiekunowie PPA to zmienią do pakietu przejściowego, co oznacza, że ​​zaktualizowana wersja nie będzie zawierała więcej kodu, ale doda zależność do nowszego sterownika.
Bajt Dowódca

2
@ Matematyka Nie wiem. Tylko czas powie. Być może nigdy nie zostanie dodany do repozytoriów „starszych” wersji Ubuntu, które zostały wydane przed tym pakietem sterowników. Nie sądzę, aby można było udzielić dokładnej odpowiedzi na to pytanie, zanim to się stanie.
Bajt Dowódca

36

To jest to bug w sterownikach Nvidii.

Nvidia była w stanie odtworzyć problem i pracują nad poprawką, która zostanie uwzględniona w następnej wersji sterownika. (Poprawka została już wydana, patrz poniższa sekcja).

Zobacz ten wątek na forach programistów Nvidia, aby uzyskać więcej informacji. Ten błąd został również zgłoszony na Launchpadzie .

Dzięki @Stefan za jego świetne umiejętności zdzirowania w odkrywaniu tych informacji !


Nvidia w końcu opublikowała oficjalną poprawkę!

  • Poprawka pochodzi od sterownika wersji 381.09. Odpowiedni zrzut ekranu z dziennika zmian : wprowadź opis zdjęcia tutaj

  • Ten sterownik nie znajduje się obecnie w żadnych repozytoriach

  • Do czasu powyższych zmian konieczne będzie ręczne zainstalowanie nowego sterownika. Aktualizacja: sterownik 381.09 znajduje się teraz w nieoficjalnym repozytorium. Możesz zainstalować załatany sterownik z nieoficjalnego PPA lub możesz zainstalować go ręcznie.

  • AKTUALIZACJA - NAPRAW TERAZ W OFICJALNEJ REPO:

    Uznanie dla @ ubfan1 do zgłaszania tego ! Szczegółowe informacje znajdują się w poniższej sekcji


1. Instalowanie poprawionego sterownika [release] z oficjalnego repozytorium (zalecane):

Nvidia opublikowała aktualizację sterownika wersji 05.04.2017, zawierającą między innymi naprawę błędu, którego szukasz. Zaktualizowany sterownik wersji otrzymał wersję375.66

Ponieważ 375.66znajduje się w oficjalnym repozytorium, ładowanie załatanego sterownika jest dość proste.

  • Jeśli aktualnie korzystasz z 375.39wersji buggy , wszystko, co powinno być wymagane, to prosta:

    sudo apt-get update
    sudo apt-get upgrade
    

  • Jeśli korzystasz ze starszego sterownika, wykonaj następujące czynności:

    sudo apt-get update
    

    Następnie następuje przejście do nowej wersji sterownika w Dodatkowych sterownikach:

    wprowadź opis zdjęcia tutaj


  • Jeśli obecnie używasz ręcznie zainstalowanego sterownika, odinstaluj go, uruchom ponownie, a następnie wykonaj czynności opisane powyżej.

Po ponownym uruchomieniu powinieneś stwierdzić, że twój sterownik Nvidia został zaktualizowany do 375.66.


2. Jeśli nie potrzebujesz nowszego sterownika do kompatybilności z twoim GPU: *

* Uwaga: ta sekcja została zastąpiona przez sekcję # 1

Jeśli twoja karta graficzna jest na tyle duża, że ​​jest obsługiwana przez v340 sterownika, nie ma potrzeby instalowania nowszej wersji z nieoficjalnego PPA. Jednak dla osób z nowszymi kartami, takimi jak GTX z serii 9 lub 10, potrzebujesz nowszego sterownika.

Dla wygody, oto pełna lista kart obsługiwanych przez wersję 340 sterownika:

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

Tak więc, jeśli twój GPU jest obsługiwany przez 340, możesz po prostu przejść do wersji 340 w Dodatkowych sterownikach. (Wersja 340 nie ma tego błędu).

wprowadź opis zdjęcia tutaj

Należy zrestartować komputer po zmianie wersji sterownika.


3. Aby zainstalować poprawiony sterownik [beta] z nieoficjalnego PPA ( zalecane ):

  1. Odpal terminal za pomocą CTRL+ ALT+T

  2. Uruchom następujące polecenia:

    sudo -i
    add-apt-repository ppa:graphics-drivers/ppa
    apt-get update
    apt-get install nvidia-381
    
  3. Uruchom ponownie komputer i powinieneś już iść! Po ponownym uruchomieniu komputera otwórz Ustawienia serwera Nvidia X. Przy odrobinie szczęścia zobaczysz nową wersję sterownika:

    wprowadź opis zdjęcia tutaj


4. Aby ręcznie zainstalować poprawiony sterownik [beta] ( NIE zalecane):

Instalowanie sterowników Nvidia z *.runpliku na ogół nie jest zbyt dobrym pomysłem. Ma tendencję do niszczenia rzeczy. Dlatego lepiej jest zainstalować je z PPA, jak opisano powyżej. Niemniej jednak, jeśli jesteś przygodą i chcesz zainstalować je ręcznie, jest to proces, który działał dla mnie z Ubuntu 16.04 i GTX650.

Przed zainstalowaniem poprawionego sterownika MUSISZ odinstalować bieżący prawnie zastrzeżony sterownik i przejść do sterownika Nouveau:

wprowadź opis zdjęcia tutaj

Pamiętaj, aby ponownie uruchomić komputer po przełączeniu. JEŚLI NIE ODINSTALUJESZ AKTUALNEGO WŁAŚCICIELA KIEROWCY, NOWY KIEROWCA BĘDZIE KONFLIKOWAĆ ZE STAREJ I JESTEŚ PRZERWAĆ RZECZY!

  1. Pobierz załatany plik sterownika z Nvidii. Oto bezpośredni link.

  2. Zapisz plik w folderze pobranych plików

  3. Wyloguj się z sesji GUI (przed kontynuowaniem powinieneś skończyć na ekranie logowania)

  4. Odpal za tty1pomocą CTRL+ ALT+F1

  5. Zaloguj się przy użyciu swoich zwykłych danych logowania

  6. Uruchom następujące polecenia:

    sudo service lightdm stop
    cd Downloads
    chmod +x NVIDIA-Linux-x86_64-381.09.run
    sudo ./NVIDIA-Linux-x86_64-381.09.run
    
  7. Zaakceptuj umowę licencyjną:

    wprowadź opis zdjęcia tutaj

  8. Będzie narzekać, że dostarczony przez dystrybucję skrypt przedinstalacyjny nie powiódł się. Kontynuować mimo wszystko:

    wprowadź opis zdjęcia tutaj

  9. Wybierz, Yesgdy pojawi się pytanie, czy chcesz zarejestrować moduł jądra w dkms:

    wprowadź opis zdjęcia tutaj

  10. Wybierz, Yesgdy pojawi się pytanie, czy chcesz zainstalować biblioteki zgodności 32-bitowej:

    wprowadź opis zdjęcia tutaj

  11. Budowa modułu jądra zajmie trochę czasu, więc bądź cierpliwy!

    wprowadź opis zdjęcia tutaj

  12. Wybierz, Yesgdy pojawi się pytanie, czy chcesz uruchomić nvidia-xconfig:

    wprowadź opis zdjęcia tutaj

  13. Wybierz, Okaby wyjść z instalatora

  14. Prawie na miejscu! Teraz uruchom następujące polecenia:

    rm ~/.Xauthority
    rm ~/.config/dconf/unity
    sudo shutdown -r now
    
  15. Po ponownym uruchomieniu komputera otwórz Ustawienia serwera Nvidia X. Przy odrobinie szczęścia zobaczysz nową wersję sterownika:

    wprowadź opis zdjęcia tutaj


1
UWAGA : krok 14 został zastosowany, gdy pulpit Unity odpowiedzi nie pojawił się, jak omówiono w czacie Ask Ubuntu. Może to nie być konieczne, ale jeśli pulpit Unity się nie pojawi, użyj tego kroku jako rozwiązania.
Sergiy Kolodyazhnyy,

Przepraszam, ale muszę się kłócić z tym rozwiązaniem. Doprowadziło mnie to do błędu, który spowodował, że nie mogłem się zalogować i było to niezgodne z oprogramowaniem Windows zainstalowanym w winie. Taki problem z logowaniem jest powszechny, jeśli instalujesz pliki .run ze strony nvidia zamiast korzystać z dostępnych źródeł w Ubuntu. Znacznie prostszym sposobem rozwiązania tego problemu byłoby użycie wersji 340, dostępnej bezpośrednio między sterownikami do wyboru w menu Oprogramowanie i aktualizacje. Przynajmniej udało mi się naprawić wszystko dla mnie.
Giorgio Vitanza,

@GiorgioVitanza - Wiem, że instalowanie .runplików nie jest tak naprawdę zalecanym sposobem robienia rzeczy. Ale korzystanie ze sterownika 340 nie jest opcją dla osób z nowszymi kartami, takimi jak seria 10. Przetestowałem to rozwiązanie na własnym komputerze i działało dobrze.
Android Dev

@GiorgioVitanza Wypróbuj moją odpowiedź - instaluje sterowniki z plików PPA, które powinny być znacznie bardziej kompatybilne niż pliki uruchamiania.
Kaz Wolfe,

@GiorgioVitanza - Teraz, gdy sterownik jest objęty umową PPA, zaktualizowałem odpowiedź, aby uwzględnić obie metody.
Android Dev

7

Ten problem występuje w sterownikach 375 i 378 ...


Biorąc pod uwagę, że samo zabicie procesu compiz naprawia problem złej granicy, przetestowałem rozwiązanie, które działa na moim systemie Ubuntu 16.04 za każdym razem, gdy system się budzi.

Krok 1:

Utworzyłem skrypt o nazwie fixbadbordersw katalogu /lib/systemd/system-sleep. Zawierał:

#!/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=)

Krok 2:

Zezwolono skryptowi na wykonywanie uprawnień z:

sudo chmod +x fixbadborders

Aby usunąć ten skrypt:

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

Wszystkie kredyty należą do Sun Bear, który utworzył ten komentarz do skryptu 13


Lepiej oznaczać pytania jako duplikaty, niż powtarzać to samo rozwiązanie
Zanna

3
Jego wadą jest to, że mój ekran logowania nigdy nie wyświetla się po wejściu w tryb uśpienia :(
Hesam

6

NVIDIA wydała zaktualizowaną wersję sterownika, która naprawiła tę regresję. Jakikolwiek sterownik po 381.09 nie będzie już miał tego problemu, dopóki NVIDIA nie zepsuje się ponownie.

Do momentu, gdy sterownik dotrze do głównych repozytoriów, można je pobrać z nieoficjalnego PPA sterownika NVIDIA. Dzięki temu nie będziesz musiał zadzierać z instalatorem (co jest powszechnie uważane za zły pomysł) lub Nouveau. Podobnie, pozwoli to na instalację / odinstalowanie sterowników aptzamiast niebezpiecznej półkonfiguracji, w której instalator NVIDIA pozostawia sterowniki. Co więcej, nie spowoduje to żadnych pętli logowania ani błędów, chyba że masz dziwny system. Aby zainstalować, uruchom:

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt install nvidia-381

Stare sterowniki zostaną automatycznie odinstalowane, a nowe zostaną załadowane. Następnie uruchom ponownie komputer (ponieważ sterowniki NVIDIA muszą zostać upieczone w jądrze) i wszystko powinno działać dobrze. Możesz sprawdzić, czy sterowniki zostały poprawnie zainstalowane, uruchamiając poniższe polecenie:

nvidia-settings --version

Pamiętaj, aby cofnąć wszelkie poprawki opisane w tym poście przed aktualizacją do najnowszych sterowników. Na przykład, jeśli zainstalowałeś łataną wersję Unity w sposób opisany poniżej, uruchom to polecenie, aby przywrócić normalną wersję:

sudo ppa-purge ppa:kaihengfeng/lp1292830 

Pamiętaj, że będziesz musiał ppa-purgezainstalować, co można zrobić w następujący sposób:

sudo apt install ppa-purge

Jeśli aktualizacja nie jest opcją (zbyt stara karta, zasady firmy itp.):

Kai-Heng Feng z Launchpad był na tyle miły, że przesłał wersję Unity do własnego PPA ( ppa:kaihengfeng/lp1292830), który powinien załatać ten problem. Aby rozwiązać ten problem, po prostu dodaj jego PPA, uruchamiając następujące polecenia:

sudo add-apt-repository ppa:kaihengfeng/lp1292830 
sudo apt update
sudo apt full-upgrade

Po zakończeniu uruchom ponownie system lub zrestartuj X11, wylogowując się, a następnie ponownie logując.

Możesz również wykonać dowolną z następujących czynności:

  • Przełącz na kartę Intel
    Jeśli korzystasz z NVIDIA Prime, możesz przełączyć się na kartę Intel, co rozwiąże ten problem. Należy jednak pamiętać, że zapobiegnie to wykorzystaniu przez system pełnej mocy graficznej.
  • Zredukuj sterowniki
    Zgodnie z niektórymi komentarzami do raportu o błędzie , przejście na sterownik NVIDIA 367.57 powinien całkowicie rozwiązać problem. Ponieważ nie ma go już w PPA, musisz pobrać go bezpośrednio z NVIDIA (64-bit) (32-bit) (32-bit ARM) .

Wydaje się, że 367 już nie istnieje, zarówno w oficjalnych repozytoriach Ubuntu, jak i w graphics-drivers/ppaPPA, ten pakiet jest „pakietem przejściowym dla nvidia-375, więc jego zainstalowanie automatycznie zapewni ci błędną wersję 375. Jeśli znasz źródło, gdzie możesz uzyskać stary sterownik 367 z, powinieneś dołączyć go do swojej odpowiedzi
Byte Commander

@ByteCommander zrobione
Kaz Wolfe

Do Twojej wiadomości, jeśli go przegapiłeś, załatany sterownik jest teraz w oficjalnym repozytorium.
Android Dev

3

Rozwiązanie zaproponowane przez Victora A. działa dobrze. Należy jednak pamiętać, że umieszczone skrypty /lib/systemd/system-sleep/są wykonywane zarówno wtedy, gdy komputer przechodzi w tryb uśpienia, jak i gdy się budzi. Ponieważ chcemy tylko później, użycie proponowanego skryptu niepotrzebnie spowalnia proces przejścia do trybu uśpienia. Polecam następującą:

#!/bin/sh
if [ "$2" = "suspend" ] || [ "$2" = "hybrid-sleep" ]; then
    case "$1" in
        post) kill $(ps -C compiz -o pid=) ;;
    esac
fi

Jednak ostrzeżenie. Skrypt ten (podobnie jak ten zaproponowany przez Victora A.) wyłączy ekran zachęty do hasła po wybudzeniu, stanowiąc tym samym zagrożenie bezpieczeństwa.


3

Ten problem został również rozwiązany w sterowniku Nvidia 375.66, który znajduje się w normalnych repozytoriach i powinien zostać zainstalowany przez zwykłe aktualizacje.


Fajne snucie! Zaktualizowałem swoją odpowiedź, aby odzwierciedlić ten nowy rozwój, i podziękowałem za odkrycie, że w oficjalnym repozytorium jest teraz poprawiona wersja :)
Android Dev

2

To nie jest pełne rozwiązanie, ale może być lepsze niż używanie compiz --replacelub w inny sposób restartowanie compiz i popsuwanie obszarów roboczych.

Kiedy wznawiam z zawieszenia, robię to:

  • System -> Preferencje -> Wygląd
  • Zmień motyw na inny motyw
  • Wróć do oryginalnego motywu

Spowoduje to ponowne załadowanie uszkodzonych tekstur w GPU. Jeśli istnieje sposób, aby automatycznie wymusić ponowne załadowanie tekstur motywu przy wznowieniu, może to być trwałe rozwiązanie.


1
Nvidia wydała łatany sterownik , to już nie jest problem
Android Dev

1

Istnieje inny sposób rozwiązania tego problemu. (Nie polecam tego, jeśli masz wiele uruchomionych procesów).

Zabij Xorga po przebudzeniu komputera.

Znajdź PID of Xorg przez:

top

Po znalezieniu pid Xorg, naciśnij Ctrl + C, aby zatrzymać proces „top”.

Przejdź do rootowania i zabij proces przez:

sudo su
kill [pid]

Następnie zaloguj się do swojego konta.

Ostrzeżenie: spowoduje to zamknięcie wszystkich aplikacji. Firefox nie robi z tym problemu, po prostu przywróci wszystkie twoje karty, ale nie mogę zagwarantować innych aplikacji, więc zapisz je przed wykonaniem tego procesu.


2
Nawiasem mówiąc, aby zamknąć standardową drogę, zamiast po prostu anulować zadanie (Ctrl + C), możesz po prostu nacisnąć „q”.
anonimowy2

0

Próbowałem zmienić sterownik na zaktualizowany do naprawy błędów, ale to zepsuło moją zdolność do głębokiego uczenia się z tensorflow, więc wróciłem do oryginalnego błędnego oprogramowania.

Dzieje się tak za każdym razem, gdy budzę Ubuntu ze snu. Właśnie otwieram terminal CTRL+ ALT+ Ti piszę

killall compiz

Wyświetlacz resetuje się i usterka zniknęła. To zajmuje tylko kilka sekund. Możesz nawet aliasować go tak, ~/.bashrcjak chcesz, alias kc='killall compiz'więc musisz pisać tylko kcwtedy, gdy chcesz wykonać polecenie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.