Jak naprawić problem braku ładowania sterowników NVIDIA po aktualizacji jądra w systemie Ubuntu

Aktualizacja jądra Ubuntu może spowodować, że system NVIDIA uruchomi się normalnie, a zastrzeżony sterownik przestanie się ładować. Objawy mogą być różne: nvidia-smimoże to oznaczać brak komunikacji ze sterownikiem, aplikacje CUDA mogą przestać widzieć GPU, pulpit może powrócić do renderowania programowego lub modprobe nvidiamoże przestać działać. Praktycznym rozwiązaniem jest zidentyfikowanie uszkodzonej warstwy zamiast ponownej instalacji wszystkiego naraz.

Niniejszy dokument koncentruje się na sterownikach NVIDIA w pakietach Ubuntu oraz aktualnych wytycznych Canonical. Od października 2026 roku Ubuntu zaleca korzystanie z tego ubuntu-driversnarzędzia lub aplikacji „Dodatkowe sterowniki” dla większości systemów, a także zaleca korzystanie z prekompilowanych, podpisanych modułów jądra, jeśli są dostępne. Własna dokumentacja Ubuntu firmy NVIDIA również obsługuje Ubuntu 22.04, 24.04 i 26.04, ale nazewnictwo pakietów różni się w nowszych gałęziach, dlatego nie kopiuj numeru gałęzi z przykładu, chyba że jest on faktycznie oferowany dla Twojego komputera.

Szybka lista kontrolna diagnozy

SprawdzaćRozkazCo ci to mówi
Uruchamianie jądrauname -rDokładny interfejs ABI jądra wymagający odpowiedniego modułu NVIDIA.
Status kierowcynvidia-smiCzy przestrzeń użytkownika może komunikować się z załadowanym modułem jądra NVIDIA.
Załadowane modułylsmod | grep -E 'nvidia|nouveau'Czy obecnie właścicielem GPU jest NVIDIA czy Nouveau?
Zalecany pakietsudo ubuntu-drivers listGałęzie sterowników, które Ubuntu uznaje za odpowiednie dla danego sprzętu.
Bezpieczny rozruchmokutil --sb-stateCzy niepodpisane moduły jądra innych firm mogą zostać odrzucone.
Dziennik jądrasudo dmesg | grep -iE 'nvrm|nvidia|nouveau|secure|module'Przydatne wskazówki dotyczące niezgodności interfejsu API, odrzucenia podpisu lub błędów sondy.
Terminal Ubuntu pokazuje uname -r, nieudane polecenie nvidia-smi i brak zwróconego modułu NVIDIA przez polecenie lsmod.
Typowy schemat awarii po aktualizacji: nowe jądro działa, ale moduł NVIDIA nie jest załadowany. Dokładne wersje jądra i sterowników w Twoim systemie mogą się różnić.

1. Sprawdź, czy problem zaczął się od aktualnego jądra

Najpierw zarejestruj działające jądro i aktualny stan NVIDIA:

uname -r
nvidia-smi
lsmod | grep -E 'nvidia|nouveau'

Jeśli nvidia-smiwystąpi błąd i nie nvidiapojawią się żadne moduły w lsmod, awaria występuje poniżej warstwy CUDA lub aplikacji pulpitu. Jeśli nvidia-smizgłosi Failed to initialize NVML: Driver/library version mismatch, Canonical dokumentuje to jako niezgodność przestrzeni użytkownika/jądra z modułem, która często następuje po aktualizacji sterownika; ponowne uruchomienie może być wystarczające, jeśli nowy moduł jest już zainstalowany.

Jeśli nadal możesz wybrać starsze jądro z GRUB-a i sterownik tam działa, to jest to mocny dowód na to, że nowe jądro nie posiada użytecznego modułu NVIDIA. Starsze jądro to przydatne rozwiązanie tymczasowe, ale nie jest to ostateczne rozwiązanie, ponieważ nadal potrzebujesz zgodności aktualnego jądra i stosu sterowników.

2. Zapytaj Ubuntu, jaką gałąź sterownika zaleca

Na standardowym komputerze stacjonarnym lub stacji roboczej Ubuntu należy użyć logiki wyboru sterowników Ubuntu, zamiast zgadywać gałąź:

sudo apt update
sudo ubuntu-drivers list

W przypadku większości komputerów stacjonarnych i systemów do gier Canonical zaleca standardowy sterownik UDA zamiast -serverpakietu. W przypadku serwerów obliczeniowych należy stosować się do wskazówek dotyczących serwera i ubuntu-drivers list --gpgpuw razie potrzeby. Jeśli system został wcześniej zainstalowany za pomocą samodzielnego .runinstalatora firmy NVIDIA lub repozytorium innej firmy, mieszanie źródeł pakietów może utrudnić diagnostykę. Canonical wyraźnie ostrzega, że ​​sterowniki zainstalowane poza udokumentowanymi metodami mogą nadpisywać komponenty dostarczone przez Ubuntu i zakłócać działanie funkcji Secure Boot.

Terminal Ubuntu pokazujący listę ubuntu-drivers i urządzenia ubuntu-drivers ze sterownikiem NVIDIA oznaczonym jako zalecany.
Użyj funkcji wykrywania sterowników Ubuntu, aby zidentyfikować odpowiednią gałąź dla zainstalowanego procesora GPU zamiast kodować wersję na stałe z innego komputera.

3. Przed odbudową czegokolwiek sprawdź Bezpieczny rozruch

Bezpieczny rozruch to częsty powód, dla którego moduł NVIDIA jest obecny na dysku, ale nie chce się załadować. Sprawdź jego stan:

mokutil --sb-state
sudo modprobe nvidia

Jeśli funkcja Bezpieczny rozruch jest włączona i modprobezwraca komunikat taki jak Key was rejected by service, jądro wymusza zaufanie do modułów. Ubuntu od lat wymusza walidację modułów jądra w ramach Bezpiecznego rozruchu w obsługiwanych wersjach amd64. Preferowaną metodą przez Canonical jest korzystanie z podpisanych, prekompilowanych modułów NVIDIA, o ile są dostępne. Jeśli celowo używasz DKMS, Ubuntu może wymagać utworzenia i zarejestrowania klucza właściciela maszyny (MOK) podczas ponownego uruchomienia.

Nie wyłączaj funkcji Secure Boot jako pierwszego kroku rozwiązywania problemów. Może to być krótki eksperyment diagnostyczny w kontrolowanym środowisku, ale lepszym rozwiązaniem jest zazwyczaj instalacja podpisanego modułu lub poprawna rejestracja modułu MOK. Canonical dokumentuje proces rejestracji w swojej dokumentacji UEFI Secure Boot .

Terminal Ubuntu pokazuje włączony SecureBoot i błąd modprobe nvidia z komunikatem o odrzuceniu klucza.
Odrzucenie podpisu wskazuje na zaufanie Secure Boot, a nie na brak GPU. Rozwiąż problem z podpisywaniem modułów lub rejestracją MOK zamiast wielokrotnej reinstalacji bibliotek przestrzeni użytkownika.

4. Sprawdź, czy istnieje odpowiedni moduł NVIDIA dla uruchomionego jądra

Prekompilowane pakiety NVIDIA Ubuntu są powiązane z ABI jądra. Zastąp DRIVER_BRANCHgałęzią pokazaną przez ubuntu-drivers list:

DRIVER_BRANCH=XXX
apt-cache policy linux-modules-nvidia-${DRIVER_BRANCH}-$(uname -r)

Jeśli pakiet jest zainstalowany dla bieżącego jądra, przejdź do poniższych procedur bezpiecznego rozruchu, Nouveau i sprawdzania dziennika. Jeśli brakuje pakietu, zainstaluj dokładnie pasujący pakiet modułów:

sudo apt install linux-modules-nvidia-${DRIVER_BRANCH}-$(uname -r)

Canonical obsługuje również instalację metapakietu, na przykład linux-modules-nvidia-${DRIVER_BRANCH}-generic, który ułatwia przyszłym aktualizacjom jądra pobieranie odpowiednich modułów NVIDIA. Dokładna nazwa pakietu zależy od wersji Ubuntu, wersji jądra, gałęzi sterownika oraz od tego, czy używasz wariantu serwerowego, dlatego przed potwierdzeniem należy sprawdzić kandydata wskazanego przez APT.

Terminal Ubuntu sprawdza politykę apt-cache dla pakietu jądra NVIDIA i nagłówków current-kernel.
Sprawdzenie polityki pakietów pozwala odróżnić brakujący moduł NVIDIA specyficzny dla jądra od problemu ze sterownikiem przestrzeni użytkownika.

5. Jeśli używasz DKMS, upewnij się, że obecne są aktualne nagłówki jądra

DKMS buduje moduł dokładnie dla używanego jądra. Dlatego wymaga on pasujących nagłówków jądra. Canonical zaleca DKMS głównie wtedy, gdy prekompilowane moduły są niedostępne, na przykład w przypadku niektórych niestandardowych jąder.

sudo apt install linux-headers-$(uname -r)
dkms status

Jeśli wpis NVIDIA DKMS nie wskazuje na pomyślną kompilację bieżącego jądra, przed próbą losowego usuwania pakietów należy sprawdzić dziennik kompilacji /var/lib/dkms/. Typowe błędy to brakujące nagłówki, nieobsługiwane kombinacje kompilatora/jądra lub problem z podpisywaniem modułów. Po usunięciu problemu, zainstaluj ponownie odpowiedni pakiet DKMS lub skorzystaj ze ścieżki automatycznej Ubuntu:

sudo ubuntu-drivers install --include-dkms

Użyj tego polecenia tylko wtedy, gdy DKMS jest rzeczywiście wymagany. Aktualna dokumentacja Canonical Desktop podaje, że prekompilowane moduły są preferowanym wyborem dla większości użytkowników, szczególnie w przypadku bezpiecznego rozruchu.

Terminal Ubuntu instalujący linux-headers dla aktualnie uruchomionego jądra.
Dopasowane nagłówki jądra są wymagane, gdy DKMS musi skompilować moduł NVIDIA dla bieżącego jądra.

6. Zainstaluj brakujący, skompilowany moduł, jeśli jest dostępny

Jeżeli krok 4 pokazał, że obecne jądro nie posiada prekompilowanego modułu NVIDIA, zainstaluj go jawnie i pozwól APT na odbudowanie initramfs:

sudo apt install linux-modules-nvidia-${DRIVER_BRANCH}-$(uname -r)

Następnie sprawdź, czy APT zakończył działanie bez błędów zależności. Unikaj wymuszania instalacji pakietów za pomocą dpkg --force-*;, ponieważ może to spowodować, że moduł jądra, biblioteki przestrzeni użytkownika i metapakiet będą w niekompatybilnych wersjach.

Jeśli nie jesteś pewien, z której gałęzi skorzystać, bezpieczniejszą metodą naprawy ogólnej jest:

sudo ubuntu-drivers install

Kanoniczne stwierdzenie ubuntu-driverswykorzystuje tę samą logikę, co aplikacja Dodatkowe sterowniki i domyślnie wybiera wstępnie skompilowane podpisane sterowniki, które współpracują z funkcją Bezpiecznego rozruchu.

Terminal Ubuntu instaluje pakiet linux-modules-nvidia dla bieżącego jądra i aktualizuje initramfs.
Zainstalowanie pakietu modułów specyficznych dla jądra rozwiązuje częsty problem, w którym gałąź sterownika jest obecna, ale nowe jądro nie posiada odpowiadającego jej modułu NVIDIA.

7. Ponowne uruchomienie po zmianach pakietu

Ponowne uruchomienie nie jest tu jedynie formalnością. Działające jądro może zachować starszy moduł NVIDIA w pamięci, podczas gdy APT zaktualizował już biblioteki przestrzeni użytkownika na dysku. Canonical wyraźnie dokumentuje to jako przyczynę niezgodności wersji sterownika/biblioteki NVML po aktualizacjach.

sudo reboot

Po ponownym uruchomieniu nie instaluj od razu systemu ponownie. Najpierw sprawdź wynik za pomocą poleceń z następnej sekcji.

Terminal Ubuntu pokazujący instalację sterowników Ubuntu, po której następuje ponowne uruchomienie za pomocą sudo.
Po zmianie sterownika lub modułu jądra należy uruchomić ponownie komputer, aby jądro załadowało nowo zainstalowany moduł NVIDIA, a komponenty przestrzeni użytkownika powróciły do ​​tej samej wersji.

8. Sprawdź, czy moduł NVIDIA jest załadowany

Uruchomić:

nvidia-smi
lsmod | grep nvidia
cat /proc/driver/nvidia/version

Pomyślna naprawa ma trzy przydatne oznaki: nvidia-smiwyświetla listę GPU, lsmodpokazuje moduły NVIDIA i /proc/driver/nvidia/versionraportuje wersję uruchomionego modułu. W przypadku obciążeń CUDA należy również ponownie uruchomić aplikację lub framework, który wcześniej uległ awarii; nvidia-smisamo w sobie dowodzi to komunikacji ze sterownikami, a nie tego, czy wszystkie biblioteki CUDA w danym środowisku są kompatybilne.

Terminal Ubuntu pokazujący pomyślne wyjście nvidia-smi i moduły NVIDIA wymienione przez lsmod.
Prawidłowy stan końcowy: nvidia-smi może komunikować się z GPU, a moduły jądra NVIDIA są załadowane. Podane wartości są przykładowe, a nie oznaczają wymaganej wersji.

Jeśli nadal nie działa: użyj objawu, aby wybrać następną akcję

„Niezgodność wersji sterownika/biblioteki”

Najpierw uruchom ponownie. Następnie porównaj działającą wersję modułu jądra z zainstalowanymi pakietami. Kanoniczne informacje wskazują, że zaktualizowane komponenty przestrzeni użytkownika mogą tymczasowo nie zgadzać się ze starszym modułem, który nadal jest załadowany w pamięci. Jeśli niezgodność nadal występuje po ponownym uruchomieniu, sprawdź, czy występują mieszane źródła pakietów i wiele gałęzi sterowników.

„Nie znaleziono urządzeń” i Nouveau jest załadowany

Sprawdzać:

lsmod | grep nouveau

W dokumentacji serwera Ubuntu podano, że Nouveau może w takiej sytuacji kolidować z zastrzeżonym sterownikiem NVIDIA. Jeśli Nouveau jest załadowany i zamierzasz używać zastrzeżonego sterownika, Canonical umieszcza go na liście blokowanych sterowników i przebudowuje initramfs:

echo "blacklist nouveau" | sudo tee /etc/modprobe.d/disable-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/disable-nouveau.conf
sudo update-initramfs -u
sudo reboot

Nie umieszczaj Nouveau na czarnej liście tylko dlatego, że znajduje się na dysku; najpierw sprawdź, czy jest rzeczywiście załadowany i ma związek z awarią.

modprobe nvidiamówi, że klucz został odrzucony

Wróć do ścieżki Bezpiecznego Rozruchu. Używaj podpisanych modułów Ubuntu, gdy to możliwe, lub dokończ rejestrację MOK dla modułu DKMS. Wielokrotna reinstalacja tego samego niepodpisanego modułu nie zmieni decyzji o zaufaniu.

Nowe jądro nie ma kompatybilnego pakietu modułów

Tymczasowo uruchom starsze jądro, o którym wiadomo, że działa, aktualizuj system i sprawdź, czy Ubuntu udostępnia odpowiedni, prekompilowany moduł dla nowszego jądra. Jeśli celowo uruchamiasz niestandardowe jądro, DKMS może być odpowiednim rozwiązaniem, ale przeczytaj jego dziennik kompilacji i potwierdź podpisanie Secure Boot. Unikaj przypinania starego jądra na czas nieokreślony, chyba że masz plan konserwacji aktualizacji zabezpieczeń.

Polecenia do zebrania przed poproszeniem o pomoc

Polecenia te zapewniają kompaktowy pakiet diagnostyczny bez konieczności zmiany systemu:

uname -a
lspci -nnk | grep -A3 -i nvidia
nvidia-smi
lsmod | grep -E 'nvidia|nouveau'
mokutil --sb-state
dkms status
apt-cache policy 'nvidia-driver-*' | sed -n '1,160p'
sudo dmesg | grep -iE 'nvrm|nvidia|nouveau|secure|module' | tail -n 120

Podaj wersję Ubuntu z lsb_release -alub /etc/os-release, dokładny kernel z uname -r, a także informację, czy sterownik został pierwotnie zainstalowany za pośrednictwem pakietów Ubuntu, repozytorium NVIDIA, PPA czy samodzielnego instalatora. Te szczegóły zazwyczaj mają większe znaczenie niż ogólne stwierdzenie, że „sterownik zepsuł się po aktualizacji”.

Praktyczna profilaktyka

  • ubuntu-driversW przypadku normalnych systemów komputerowych preferuj przepływ pracy Ubuntu lub Dodatkowe sterowniki.
  • Zachowaj zainstalowany metapakiet wersji jądra, aby przyszłe aktualizacje jądra mogły zawierać pasujące moduły NVIDIA.
  • Po uaktualnieniu jądra lub sterownika NVIDIA należy przeprowadzić ponowne uruchomienie zamiast kontynuować korzystanie ze stosu mieszanego w pamięci i na dysku.
  • Zachowaj co najmniej jedno działające jądro, dopóki nie potwierdzisz, że nowe uruchamia się ze sterownikiem GPU.
  • Unikaj mieszania pakietów Ubuntu, PPA, samodzielnego instalatora NVIDIA i wielu repozytoriów, chyba że celowo zapobiegasz konsekwencjom.

Oficjalne referencje

Aktualne procedury firmy Canonical znajdują się w dokumentach Instalacja sterowników NVIDIA — Ubuntu Desktop i Instalacja sterowników NVIDIA — Ubuntu Server . Wskazówki dotyczące pakietu DKMS można znaleźć w artykule Tworzenie własnych modułów NVIDIA za pomocą pakietu DKMS . Dokumentacja dostawcy NVIDIA jest dostępna w Podręczniku instalacji sterowników NVIDIA dla Ubuntu .

Dokładna nazwa gałęzi sterownika, jądra ABI i pakietu zależy od wersji. Zawsze zastępuj wartościami zgłoszonymi przez system i APT, zamiast traktować przykładowe wersje jako uniwersalne.

Zostaw komentarz

Jak bezpiecznie odzyskać utracone partycje i dane z dysku twardego

Jak bezpiecznie odzyskać utracone partycje i dane z dysku twardego

Dowiedz się, jak odzyskać utracone partycje i pliki za pomocą TestDisk i PhotoRec. Zabezpiecz dysk źródłowy, przeskanuj go bezpiecznie i zapisz odzyskane dane na innym dysku.

Jak skanować kody QR na komputerze stacjonarnym z systemem Linux

Jak skanować kody QR na komputerze stacjonarnym z systemem Linux

Skanuj kody QR w systemie Linux za pomocą CoBang, używając kamery internetowej lub pliku obrazu. Zobacz opcje instalacji, kroki konfiguracji i poprawki dotyczące dostępu do kamery Flatpak.

Jak zmienić ustawienia kamery internetowej w systemie Linux za pomocą Cameractrls

Jak zmienić ustawienia kamery internetowej w systemie Linux za pomocą Cameractrls

Zmień ustawienia kamery internetowej w systemie Linux za pomocą narzędzia Cameractrls: dostosuj ekspozycję, kolor, redukcję migotania i inne obsługiwane elementy sterujące, a następnie sprawdź zgodne tryby wideo.

Jak zainstalować PhpStorm na Linuksie: Toolbox, Tar.gz, Snap i AUR

Jak zainstalować PhpStorm na Linuksie: Toolbox, Tar.gz, Snap i AUR

Zainstaluj PhpStorm na Linuksie za pomocą JetBrains Toolbox lub samodzielnego archiwum tar.gz, a także opcji Snap i Arch AUR. Java jest już dołączona.

Jak wyciąć obraz w systemie Linux za pomocą programu GIMP

Jak wyciąć obraz w systemie Linux za pomocą programu GIMP

Usuń tło zdjęcia w systemie Linux za pomocą programu GIMP: narysuj obiekt, usuń wybrane tło, zachowaj przezroczystość i wyeksportuj plik PNG, który można ponownie wykorzystać.

Jak wykonać kopię zapasową płyty CD-ROM w postaci obrazu ISO w systemie Linux

Jak wykonać kopię zapasową płyty CD-ROM w postaci obrazu ISO w systemie Linux

Utwórz obraz ISO płyty CD-ROM w systemie Linux za pomocą GNOME Disks lub dd. Zidentyfikuj napęd optyczny, monitoruj kopiowanie, zweryfikuj obraz i dowiedz się, kiedy uszkodzona płyta lub płyta audio wymaga użycia innego narzędzia.

Jak skonfigurować dwa panele w środowisku XFCE 4

Jak skonfigurować dwa panele w środowisku XFCE 4

Utwórz oddzielny panel XFCE 4 dla każdego wyświetlacza, przypisz drugi panel do odpowiedniego wyjścia, określ jego położenie i rozmiar, a następnie dodaj potrzebne elementy uruchamiające i statusu.

Jak zainstalować Cisco Packet Tracer w systemie Linux

Jak zainstalować Cisco Packet Tracer w systemie Linux

Pobierz Cisco Packet Tracer 9.0.1 dla systemu Ubuntu 64-bit, zainstaluj pakiet DEB za pomocą APT, zaakceptuj licencję w terminalu i zaloguj się, aby rozpocząć laboratorium.

Pobierz FlightGear za darmo: Oficjalny przewodnik instalacji

Pobierz FlightGear za darmo: Oficjalny przewodnik instalacji

Pobierz FlightGear za darmo z oficjalnej strony. Porównaj pakiety dla systemów Windows, macOS i Linux, zainstaluj pliki danych i rozpocznij swój pierwszy lot.

OKSampler: darmowy, prosty sampler muzyczny do rytmów klawiszowych

OKSampler: darmowy, prosty sampler muzyczny do rytmów klawiszowych

OKSampler mapuje klipy MP3 na klawisze klawiatury i umożliwia zapętlanie dźwięku. Dowiedz się, co robi ten starszy, darmowy program, gdzie kończą się jego stare funkcje i co sprawdzić przed pobraniem.