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:
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ć?
nvidia
graphics
suspend
visual-artifacts
Android Dev
źródło
źródło
lspci -k | grep -iEA3 '3d|vga'
, który zawiera wszystkie wymagane informacje. Dzięki.nvidia-367
sterownik, którego użyłem, stał się pakietem przejściowym, który automatycznie aktualizuje się donvidia-375
, która była jedną z wersji powodujących ten błąd. Czas nagrać NVIDIA i napisać raporty o błędach.GeForce GTX 950M
.Odpowiedzi:
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
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.
źródło
compiz --replace
nie zachowuje się dobrze w obszarach roboczych. Umieszcza wszystkie okna wszystkich obszarów roboczych w pierwszym obszarze roboczym :(AKTUALIZACJA 2:
Nvidia zaktualizowała teraz także swoje
nvidia-375
sterowniki 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-drivers
PPA, jeśli ich nie chcesz.Oto fragment dziennika zmian dla pakietu z głównych repozytoriów 16.04 dotyczących tego błędu:
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-375
invidia-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-367
pakiet w repozytorium Xenial działał dobrze i niezawodnie, ale teraz zaktualizowali go i przekonwertowali na pakiet przejściowy, którynvidia-375
zamiast tego automatycznie instaluje błędną wersję.Rozwiązanie (zaktualizowane po wydaniu poprawki z Nvidii):
Moim rozwiązaniem na razie jest obniżenie wersji znvidia-375
lubnvidia-378
donvidia-370
, co do tej pory wydaje się działać dobrze.Ponieważ Nvidia wydała nową, zaktualizowaną wersję sterownika
nvidia-381
z 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:
Po zakończeniu tej procedury uruchom ponownie komputer i sprawdź, czy nadal występują problemy. Dla mnie ich nie było. Powodzenia.
źródło
apt
do 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.nvidia-370
Najprawdopodobniej również zmieni się w pakiet przejściowy, tak jaknvidia-367
już 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.graphics-drivers
PPA 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.To
jestto 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 :
Ten sterownik nie znajduje się obecnie w żadnych repozytoriachDo 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.66
znajduje się w oficjalnym repozytorium, ładowanie załatanego sterownika jest dość proste.Jeśli aktualnie korzystasz z
375.39
wersji buggy , wszystko, co powinno być wymagane, to prosta:Jeśli korzystasz ze starszego sterownika, wykonaj następujące czynności:
Następnie następuje przejście do nowej wersji sterownika w Dodatkowych sterownikach:
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:
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).
Należy zrestartować komputer po zmianie wersji sterownika.
3. Aby zainstalować poprawiony sterownik [beta] z nieoficjalnego PPA (
zalecane):Odpal terminal za pomocą CTRL+ ALT+T
Uruchom następujące polecenia:
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:
4. Aby ręcznie zainstalować poprawiony sterownik [beta] ( NIE zalecane):
Instalowanie sterowników Nvidia z
*.run
pliku 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:
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!
Pobierz załatany plik sterownika z Nvidii. Oto bezpośredni link.
Zapisz plik w folderze pobranych plików
Wyloguj się z sesji GUI (przed kontynuowaniem powinieneś skończyć na ekranie logowania)
Odpal za
tty1
pomocą CTRL+ ALT+F1Zaloguj się przy użyciu swoich zwykłych danych logowania
Uruchom następujące polecenia:
Zaakceptuj umowę licencyjną:
Będzie narzekać, że dostarczony przez dystrybucję skrypt przedinstalacyjny nie powiódł się. Kontynuować mimo wszystko:
Wybierz, Yesgdy pojawi się pytanie, czy chcesz zarejestrować moduł jądra w dkms:
Wybierz, Yesgdy pojawi się pytanie, czy chcesz zainstalować biblioteki zgodności 32-bitowej:
Budowa modułu jądra zajmie trochę czasu, więc bądź cierpliwy!
Wybierz, Yesgdy pojawi się pytanie, czy chcesz uruchomić
nvidia-xconfig
:Wybierz, Okaby wyjść z instalatora
Prawie na miejscu! Teraz uruchom następujące polecenia:
Po ponownym uruchomieniu komputera otwórz Ustawienia serwera Nvidia X. Przy odrobinie szczęścia zobaczysz nową wersję sterownika:
źródło
.run
plikó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.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
fixbadborders
w katalogu/lib/systemd/system-sleep
. Zawierał:Krok 2:
Zezwolono skryptowi na wykonywanie uprawnień z:
Aby usunąć ten skrypt:
Wszystkie kredyty należą do Sun Bear, który utworzył ten komentarz do skryptu 13
źródło
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
apt
zamiast 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: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:
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ę:
Pamiętaj, że będziesz musiał
ppa-purge
zainstalować, co można zrobić w następujący sposób: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: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:
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.
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) .
źródło
graphics-drivers/ppa
PPA, ten pakiet jest „pakietem przejściowym dlanvidia-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 odpowiedziRozwią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ą: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.
źródło
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.
źródło
To nie jest pełne rozwiązanie, ale może być lepsze niż używanie
compiz --replace
lub w inny sposób restartowanie compiz i popsuwanie obszarów roboczych.Kiedy wznawiam z zawieszenia, robię to:
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.
źródło
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:
Po znalezieniu pid Xorg, naciśnij Ctrl + C, aby zatrzymać proces „top”.
Przejdź do rootowania i zabij proces przez:
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.
źródło
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ę
Wyświetlacz resetuje się i usterka zniknęła. To zajmuje tylko kilka sekund. Możesz nawet aliasować go tak,
~/.bashrc
jak chcesz,alias kc='killall compiz'
więc musisz pisać tylkokc
wtedy, gdy chcesz wykonać polecenie.źródło