Strona główna
» Porady PC
»
Jak naprawić problem braku ładowania sterowników Nvidia po aktualizacji jądra w systemie Ubuntu
Jak naprawić problem braku ładowania sterowników Nvidia po aktualizacji jądra w systemie Ubuntu
Aktualizacja jądra może spowodować, że Ubuntu wyświetli ekran logowania z grafiką o niskiej rozdzielczości, czarny ekran lub pulpit działający bez akceleracji NVIDIA. Nie oznacza to automatycznie awarii karty graficznej. Aktualizacja jądra zmienia jądro, na podstawie którego musi zostać zbudowany moduł NVIDIA spoza drzewa, a Secure Boot może odmówić załadowania modułu, którego klucz podpisu nie jest zaufany.
Zacznij od zidentyfikowania awarii. Jeśli poprzednie jądro uruchomiło się z działającym sterownikiem NVIDIA, prawdopodobną granicą jest nowe jądro lub jego kompilacja modułu. Jeśli moduł wydaje się zainstalowany, ale jądro zgłasza odrzucenie klucza lub podpisu, sprawdź Bezpieczny rozruch i rejestrację klucza właściciela maszyny (MOK). W tym przewodniku wykorzystano obieg pracy ze sterownikami pakietowymi Ubuntu; treść menu i gałęzie sterowników mogą się różnić w zależności od wersji Ubuntu i sprzętu.
Przykładowy widok GRUB: wybranie wcześniej zainstalowanego jądra może pomóc w przywróceniu działającego pulpitu podczas diagnozowania zaktualizowanego jądra.
Czy możesz bezpiecznie uruchomić najpierw poprzednią wersję jądra?
Tak, jeśli jest nadal zainstalowany. Uruchom ponownie i otwórz menu GRUB; w wielu systemach przytrzymanie klawisza Shift w starszym BIOS-ie lub naciśnięcie klawisza Esc w UEFI podczas uruchamiania powoduje jego wyświetlenie. Wybierz „ Opcje zaawansowane” dla Ubuntu , a następnie wybierz starsze jądro bez „trybu odzyskiwania”. Dokładny czas reakcji klawiszy i etykiety menu zależą od oprogramowania układowego i konfiguracji GRUB. Jeśli menu jest ukryte, sprawdź zachowanie komputera podczas uruchamiania, zamiast zmieniać ustawienia oprogramowania układowego na chybił trafił.
Po uruchomieniu systemu potwierdź działanie jądra za pomocą uname -r. Działające starsze jądro zapewnia ścieżkę odzyskiwania i czas na sprawdzenie pakietów. Nie jest to trwałe rozwiązanie: aktualizacje zabezpieczeń nadal mają znaczenie, dlatego po naprawieniu sterownika należy powrócić do nowego jądra. Jeśli żadne z jąder nie uruchomi się prawidłowo, skorzystaj z wpisu odzyskiwania Ubuntu lub dysku USB Live, aby wykonać kopię zapasową ważnych danych przed wprowadzeniem zmian w pakietach.
Co należy sprawdzić przed ponowną instalacją?
Otwórz terminal (lub konsolę tekstową za pomocą kombinacji klawiszy Ctrl+Alt+F3, jeśli logowanie graficzne jest niedostępne) i zbierz krótką linię bazową:
uname -rIdentyfikuje aktywne jądro. mokutil --sb-stateRaportuje, czy funkcja bezpiecznego rozruchu jest włączona. dkms statusPokazuje, czy dla danego jądra zarejestrowano kompilację z obsługą dynamicznych modułów jądra. nvidia-smiTestuje komunikację z załadowanym sterownikiem NVIDIA; jest to polecenie diagnostyczne, a nie naprawcze. Dziennik jądra może ujawnić brakujący moduł, nieudaną kompilację lub odrzucenie sygnatury. Brak pasującego wiersza w dzienniku nie dowodzi, że sterownik jest sprawny.
Aby odróżnić brakującą kompilację od problemu z załadowanym sterownikiem, należy użyć aktywnego jądra, statusu DKMS i narzędzia NVIDIA. Przykładowe dane wyjściowe mogą się różnić w zależności od wersji.
Czy moduł NVIDIA nie skompilował się dla nowego jądra?
Jeśli DKMS wyświetla tylko NVIDIA dla starszego jądra lub moduł NVIDIA nie jest dostępny dla tego jądra uname -r, zainstaluj odpowiednie nagłówki jądra i pozwól Ubuntu naprawić spakowany sterownik. Nagłówki zawierają pliki potrzebne do zbudowania zewnętrznego modułu dla działającego jądra. Najpierw upewnij się, że masz dostęp do sieci i wystarczająco dużo miejsca na dysku, a następnie uruchom:
Zalecane narzędzie Ubuntu ubuntu-driverswybiera dostępny sterownik odpowiedni dla danej maszyny. Przed zaakceptowaniem sprawdź pakiety proponowane przez APT. Jeśli sterownik jest już zainstalowany, a kompilacja DKMS wydaje się niekompletna, zidentyfikuj zainstalowany pakiet, zamiast zgadywać gałąź:
dpkg -l 'nvidia-dkms-*' 'nvidia-driver-*'
ubuntu-drivers list
Następnie zainstaluj ponownie pasujący pakiet DKMS widoczny w systemie (wpisz jego dokładną nazwę): sudo apt install --reinstall nvidia-dkms-<branch>. Unikaj kopiowania numeru sterownika z innej wersji Ubuntu lub mieszania pakietów Ubuntu z samodzielnym instalatorem NVIDIA; konkurencyjne metody instalacji mogą nadpisywać pliki lub komplikować Secure Boot. Jeśli APT zgłosi niespełnione zależności, wstrzymane pakiety lub nieudaną kompilację DKMS, przeczytaj cały błąd przed uruchomieniem kolejnych poleceń. Odpowiedni dziennik kompilacji znajduje się zazwyczaj w /var/lib/dkms/; użyj ścieżki wskazanej w błędzie, zamiast usuwać katalogi DKMS.
Zainstaluj nagłówki dla działającego jądra, a następnie napraw ten sam pakiet Ubuntu DKMS, który został już wybrany dla systemu. Nazwa pakietu i dane wyjściowe APT mogą się różnić.
Czy Secure Boot blokuje wbudowany moduł?
Możliwe. Po włączeniu funkcji Bezpieczny rozruch jądro Ubuntu sprawdza podpisy modułów jądra innych firm. Pakiet Ubuntu może utworzyć klucz podpisu MOK i poprosić o jego zarejestrowanie. Jeśli instalacja wyświetliła monit o ustawienie hasła jednorazowego, ale po kolejnym restarcie system od razu uruchomił Ubuntu, klucz mógł nie zostać zarejestrowany. Sprawdź mokutil --sb-statedziennik jądra pod kątem komunikatów o weryfikacji lub odrzuceniu klucza.
Gdy instalator pakietu Ubuntu umieści w kolejce rejestrację MOK, uruchom ponownie komputer i postępuj zgodnie z instrukcjami na niebieskim ekranie Menedżera MOK: wybierz opcję „Zarejestruj MOK” , kontynuuj, potwierdź klucz, wprowadź hasło jednorazowe utworzone podczas instalacji pakietu i uruchom ponownie komputer. To hasło niekoniecznie jest Twoim hasłem logowania do Ubuntu. Przeczytaj uważnie ekran; treść menu może się różnić. Jeśli żadna rejestracja nie została ustawiona w kolejce, ponowna instalacja obsługiwanego pakietu sterowników Ubuntu może spowodować wyświetlenie monitu o konfigurację klucza. Nie rejestruj nieznanego pliku klucza ani nie udostępniaj hasła jednorazowego.
Ekran rejestracji Menedżera MOK jest dostępny podczas ponownego uruchamiania, gdy oczekuje na rejestrację klucza. Wybierz opcję Zarejestruj MOK tylko dla klucza, któremu chcesz zaufać.
Co się stanie, jeśli kompilacja się nie powiedzie, nawet jeśli nagłówki zostaną zainstalowane?
Sprawdź, czy nowe jądro jest w pełni zainstalowane i czy jego nagłówki dokładnie się zgadzają: uname -rpowinny odpowiadać zainstalowanemu pakietowi nagłówkowemu. Następnie sprawdź błąd DKMS APT i dziennik kompilacji. Nowe jądro może ujawnić niezgodność ze starszą gałęzią sterownika NVIDIA; przebudowa nie naprawi kodu źródłowego, który nie obsługuje tego interfejsu jądra. Użyj selektora sterowników Ubuntu, aby zainstalować gałąź obsługiwaną dla Twojej wersji, a następnie uruchom ponownie komputer. Jeśli zainstalowałeś sterownik za pomocą instalatora .run firmy NVIDIA, postępuj zgodnie z instrukcjami usuwania firmy NVIDIA przed powrotem do pakietów Ubuntu; nie nakładaj menedżerów pakietów na siebie.
Aby uzyskać tymczasowy dostęp, uruchom starsze jądro z poziomu GRUB-a i pozostaw je zainstalowane, aż sterownik nowego jądra załaduje się poprawnie. Jeśli używasz niestandardowego jądra, niestandardowej wersji lub konfiguracji serwera/obliczeń graficznych, automatyczne zalecenia Ubuntu dotyczące pulpitu mogą nie być zgodne z zamierzoną konfiguracją. Zapoznaj się z dokumentacją danego jądra lub obciążenia, zamiast wymuszać użycie ogólnego pakietu.
Jak sprawdzić, czy poprawka zadziałała?
Po naprawie pakietów lub zarejestrowaniu klucza, uruchom ponownie i uruchom nowe jądro. Uruchom uname -r, dkms statusi nvidia-smiponownie. Pomyślny wynik to wpis DKMS dla uruchomionego jądra, brak odrzucenia podpisu modułu w dzienniku jądra podczas bieżącego rozruchu oraz nvidia-smiwyświetlenie informacji o GPU i sterowniku. Sprawdź również, czy uruchamia się normalna sesja pulpitu i czy aplikacja wymagająca przyspieszenia GPU może korzystać z GPU NVIDIA. Laptopy hybrydowe mogą celowo używać zintegrowanej grafiki, więc sam cichy GPU nie jest dowodem awarii.
Jeśli błąd nadal występuje, zapisz pełne dane wyjściowe kompilacji DKMS, aktywną wersję jądra, wydanie Ubuntu ( cat /etc/os-release), stan Bezpiecznego Rozruchu i odpowiednie wiersze dziennika jądra. Te dane określają, czy kolejnym krokiem jest obsługiwana gałąź sterownika, problem z podpisem, czy problem ze zgodnością jądra. Oficjalne wytyczne Ubuntu zalecają tę ubuntu-driversścieżkę dla większości systemów, szczególnie z włączonym Bezpiecznym Rozruchem; patrz Ubuntu Desktop: Instalacja sterowników NVIDIA , Ubuntu Server: Instalacja sterownika NVIDIA i Ubuntu Security: Bezpieczny Rozruch UEFI . Szczegółowe informacje na temat zgodności sterowników niskiego poziomu można znaleźć w dokumentacji instalacji sterowników Linux firmy NVIDIA . Dostępne wersje sterowników i dokładne instrukcje zmieniają się w zależności od wydania Ubuntu i statusu obsługi GPU.