Home
» LINUX
»
Hoe los je het probleem op dat NVIDIA-stuurprogramma's niet laden na een kernelupdate in Ubuntu?
Hoe los je het probleem op dat NVIDIA-stuurprogramma's niet laden na een kernelupdate in Ubuntu?
Een Ubuntu-kernelupdate kan ervoor zorgen dat een NVIDIA-systeem normaal opstart, terwijl het propriëtaire stuurprogramma niet meer laadt. De zichtbare symptomen variëren: nvidia-smier kan een melding verschijnen dat er geen communicatie met het stuurprogramma mogelijk is, CUDA-applicaties kunnen de GPU niet meer herkennen, het bureaublad kan terugvallen op softwarematige rendering of modprobe nvidiakan volledig vastlopen. De praktische oplossing is om te achterhalen welke laag defect is geraakt, in plaats van alles in één keer opnieuw te installeren.
Deze handleiding richt zich op NVIDIA-stuurprogramma's die in Ubuntu worden meegeleverd en de huidige richtlijnen van Canonical. Vanaf oktober 2026 raadt Ubuntu ubuntu-driversvoor de meeste systemen de tool of de applicatie 'Additional Drivers' aan en adviseert het, indien beschikbaar, voorgecompileerde en ondertekende kernelmodules. De Ubuntu-documentatie van NVIDIA zelf ondersteunt ook Ubuntu 22.04, 24.04 en 26.04, maar de pakketnamen verschillen in nieuwere branches. Kopieer daarom geen branchnummer uit een voorbeeld, tenzij deze daadwerkelijk voor uw machine wordt aangeboden.
Checklist voor snelle diagnose
Rekening
Commando
Wat het je vertelt
Kernel uitvoeren
uname -r
De exacte kernel-ABI waarvoor een overeenkomende NVIDIA-module nodig is.
Bestuurdersstatus
nvidia-smi
Of de gebruikersruimte kan communiceren met de geladen NVIDIA-kernelmodule.
Geladen modules
lsmod | grep -E 'nvidia|nouveau'
Ongeacht of NVIDIA of Nouveau momenteel de GPU bezit.
Aanbevolen pakket
sudo ubuntu-drivers list
De driverbranches die Ubuntu geschikt acht voor de hardware.
Secure Boot
mokutil --sb-state
Of niet-ondertekende kernelmodules van derden mogen worden geweigerd.
Nuttige aanwijzingen voor API-mismatch, afwijzing van handtekeningen of mislukte tests.
Een veelvoorkomend probleem na een update: de nieuwe kernel draait wel, maar de NVIDIA-module wordt niet geladen. De exacte kernel- en driverversies op uw systeem kunnen verschillen.
1. Controleer of het probleem is begonnen met de huidige kernel.
Noteer eerst de actieve kernel en de huidige NVIDIA-status:
Als nvidia-smihet mislukt en er geen nvidiamodules verschijnen lsmod, ligt de fout onder het CUDA- of desktopapplicatieniveau. Als nvidia-smier een foutmelding verschijnt Failed to initialize NVML: Driver/library version mismatch, documenteert Canonical dit als een mismatch tussen een gebruikersruimte- en een kernelmodule, wat vaak het gevolg is van een driverupdate; een herstart kan voldoende zijn als de nieuwe module al is geïnstalleerd.
Als je via GRUB nog steeds een oudere kernel kunt selecteren en de driver daar wel werkt, is dat een sterk bewijs dat de nieuwe kernel geen bruikbare NVIDIA-module bevat. Een oudere kernel is een handige tijdelijke oplossing, maar het is niet de definitieve oplossing, omdat de huidige kernel en driverstack nog steeds compatibel moeten zijn.
2. Vraag Ubuntu welke driverbranch het aanbeveelt.
Gebruik op een standaard Ubuntu-desktop of -werkstation de eigen stuurprogrammakeuzelogica van Ubuntu in plaats van zelf een tak te raden:
sudo apt update
sudo ubuntu-drivers list
Voor de meeste desktop- en gamingsystemen raadt Canonical het normale UDA-stuurprogramma aan in plaats van een -serverpakket. Op compute-servers dient u de serverrichtlijnen te volgen, ubuntu-drivers list --gpgpuindien van toepassing. Als uw systeem eerder is geïnstalleerd met het standalone-installatieprogramma van NVIDIA .runof een repository van derden, kan het combineren van pakketbronnen de diagnose bemoeilijken. Canonical waarschuwt expliciet dat stuurprogramma's die buiten de gedocumenteerde methoden zijn geïnstalleerd, componenten van Ubuntu kunnen overschrijven en Secure Boot kunnen verstoren.
Gebruik de stuurprogrammadetectie van Ubuntu om een geschikte branch voor de geïnstalleerde GPU te identificeren in plaats van een versie van een andere machine vast te coderen.
3. Controleer Secure Boot voordat u iets opnieuw installeert.
Secure Boot is een veelvoorkomende reden waarom een NVIDIA-module wel op de schijf aanwezig is, maar niet opstart. Controleer de status:
mokutil --sb-state
sudo modprobe nvidia
Als Secure Boot is ingeschakeld en modprobeeen bericht zoals dit weergeeft Key was rejected by service, dwingt de kernel modulevertrouwen af. Ubuntu dwingt al jaren validatie van kernelmodules af onder Secure Boot op ondersteunde amd64-releases. Canonical geeft de voorkeur aan het gebruik van ondertekende, vooraf gecompileerde NVIDIA-modules wanneer deze beschikbaar zijn. Als u bewust DKMS gebruikt, kan Ubuntu vereisen dat er bij het opnieuw opstarten een Machine Owner Key (MOK) wordt aangemaakt en geregistreerd.
Schakel Secure Boot niet uit als eerste stap bij het oplossen van problemen. Het kan een kort diagnostisch experiment zijn in een gecontroleerde omgeving, maar de beste oplossing is meestal het installeren van een ondertekende module of het correct registreren van de MOK. Canonical beschrijft het registratieproces in de UEFI Secure Boot-documentatie .
Een afwijzing van een digitale handtekening wijst eerder op een probleem met Secure Boot dan met een ontbrekende GPU. Los het probleem met de moduleondertekening of MOK-registratie op in plaats van herhaaldelijk gebruikersruimtebibliotheken opnieuw te installeren.
4. Controleer of de bijbehorende NVIDIA-module bestaat voor de actieve kernel.
De vooraf gecompileerde NVIDIA-pakketten van Ubuntu zijn gekoppeld aan een kernel-ABI. Vervang dit DRIVER_BRANCHdoor de tak die wordt weergegeven door ubuntu-drivers list:
Als het pakket is geïnstalleerd voor de huidige kernel, ga dan verder met de onderstaande controles van Secure Boot, Nouveau en logboeken. Als het ontbreekt, installeer dan het exact overeenkomende modulepakket:
Canonical ondersteunt ook de installatie van het flavor-metapakket, bijvoorbeeld linux-modules-nvidia-${DRIVER_BRANCH}-generic, wat ervoor zorgt dat toekomstige kernel-upgrades de bijbehorende NVIDIA-modules automatisch downloaden. De exacte pakketnaam is afhankelijk van je Ubuntu-release, kernel-flavor, driverbranch en of je een servervariant gebruikt. Controleer daarom de door APT getoonde kandidaat voordat je de installatie bevestigt.
Het controleren van het pakketbeleid helpt onderscheid te maken tussen een ontbrekende kernelspecifieke NVIDIA-module en een probleem met een gebruikersstuurprogramma.
5. Als u DKMS gebruikt, zorg er dan voor dat de huidige kernelheaders aanwezig zijn.
DKMS bouwt een module voor de specifieke kernel die u gebruikt. Het heeft daarom overeenkomende kernelheaders nodig. Canonical raadt DKMS vooral aan wanneer er geen voorgecompileerde modules beschikbaar zijn, zoals bij sommige aangepaste kernels.
sudo apt install linux-headers-$(uname -r)
dkms status
Als de NVIDIA DKMS-vermelding geen succesvolle build voor de huidige kernel weergeeft, controleer dan het buildlogboek /var/lib/dkms/voordat u willekeurige pakketten verwijdert. Typische fouten zijn onder andere ontbrekende headers, niet-ondersteunde compiler-/kernelcombinaties of een probleem met de moduleondertekening. Nadat u de vereiste hebt gecorrigeerd, installeert u het betreffende DKMS-pakket opnieuw of gebruikt u het automatische pad van Ubuntu:
sudo ubuntu-drivers install --include-dkms
Gebruik die opdracht alleen wanneer DKMS daadwerkelijk nodig is. Volgens de huidige desktopdocumentatie van Canonical hebben voorgecompileerde modules de voorkeur van de meeste gebruikers, met name in combinatie met Secure Boot.
Overeenkomende kernelheaders zijn vereist wanneer DKMS een NVIDIA-module moet compileren voor de huidige kernel.
6. Installeer de ontbrekende voorgecompileerde module zodra deze beschikbaar is.
Als uit stap 4 blijkt dat de huidige kernel de vooraf gecompileerde NVIDIA-module mist, installeer deze dan expliciet en laat APT de initramfs opnieuw opbouwen:
Controleer vervolgens of APT de installatie zonder afhankelijkheidsfouten heeft voltooid. Vermijd het forceren van pakketinstallaties met dpkg --force-*`;`, omdat dit kan leiden tot incompatibele versies van de kernelmodule, gebruikersruimtebibliotheken en metapakketten.
Als u niet zeker weet welke tak u moet gebruiken, is de veiligere algemene reparatiemethode:
sudo ubuntu-drivers install
Canonical geeft aan dat ubuntu-drivershet dezelfde logica gebruikt als de toepassing 'Extra stuurprogramma's' en standaard vooraf gecompileerde, ondertekende stuurprogramma's selecteert waarvan bekend is dat ze werken met Secure Boot.
Het installeren van het kernelspecifieke modulepakket verhelpt het veelvoorkomende probleem waarbij de drivertak wel aanwezig is, maar de nieuwe kernel de bijbehorende NVIDIA-module mist.
7. Herstart na pakketwijzigingen.
Een herstart is hier niet zomaar een formaliteit. De draaiende kernel kan een oudere NVIDIA-module in het geheugen bewaren, terwijl APT de gebruikersruimtebibliotheken op de schijf al heeft bijgewerkt. Canonical beschrijft dit specifiek als de oorzaak van een versieconflict tussen NVML-stuurprogramma's en -bibliotheken na updates.
sudo reboot
Na het opnieuw opstarten, moet u niet meteen opnieuw installeren. Controleer eerst het resultaat met de commando's in het volgende gedeelte.
Na wijzigingen aan stuurprogramma's of kernelmodules, start de computer opnieuw op zodat de kernel de nieuw geïnstalleerde NVIDIA-module laadt en de gebruikersruimtecomponenten terugkeren naar dezelfde versie.
Een succesvolle reparatie heeft drie nuttige indicaties: nvidia-smieen lijst van de GPU, lsmodeen weergave van de NVIDIA-modules en /proc/driver/nvidia/versioneen rapport van de actieve moduleversie. Voor CUDA-workloads is het ook raadzaam om de applicatie of het framework dat eerder de fout veroorzaakte opnieuw uit te voeren; nvidia-smidit bewijst op zichzelf al de stuurprogrammacommunicatie, niet dat elke CUDA-bibliotheek in uw omgeving compatibel is.
Een gezonde eindtoestand: nvidia-smi kan communiceren met de GPU en de NVIDIA-kernelmodules zijn geladen. De getoonde waarden zijn een voorbeeld, geen vereiste versie.
Als het nog steeds niet lukt: gebruik het symptoom om de volgende actie te kiezen.
"Versie van stuurprogramma/bibliotheek komt niet overeen"
Start de computer eerst opnieuw op. Vergelijk vervolgens de actieve kernelmoduleversie met de geïnstalleerde pakketten. Canonical merkt op dat bijgewerkte gebruikersruimtecomponenten tijdelijk kunnen conflicteren met een oudere module die nog in het geheugen is geladen. Als de discrepantie na het opnieuw opstarten aanhoudt, controleer dan op gemengde pakketbronnen en meerdere driverbranches.
“Geen apparaten gevonden” en Nouveau wordt geladen.
Rekening:
lsmod | grep nouveau
Volgens de serverdocumentatie van Ubuntu kan Nouveau in deze situatie conflicteren met het propriëtaire NVIDIA-stuurprogramma. Als Nouveau is geladen en u van plan bent het propriëtaire stuurprogramma te gebruiken, adviseert Canonical om het op de blokkeerlijst te zetten en de initramfs opnieuw op te bouwen.
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
Blokkeer Nouveau niet zomaar omdat het op de schijf staat; controleer eerst of het daadwerkelijk is geladen en of het de oorzaak van de fout is.
modprobe nvidiazegt dat de sleutel is afgewezen
Ga terug naar het pad voor beveiligd opstarten. Gebruik waar mogelijk ondertekende Ubuntu-modules of voltooi de MOK-registratie voor een DKMS-module. Het herhaaldelijk opnieuw installeren van dezelfde niet-ondertekende module zal de vertrouwensbeslissing niet veranderen.
De nieuwe kernel heeft geen compatibel modulepakket.
Start tijdelijk een oudere, werkende kernel op, houd het systeem up-to-date en controleer of Ubuntu een overeenkomende, vooraf gecompileerde module voor de nieuwere kernel levert. Als u bewust een aangepaste kernel gebruikt, is DKMS mogelijk geschikt, maar lees het buildlogboek en controleer of Secure Boot is ondertekend. Vermijd het permanent vastzetten van een oude kernel, tenzij u een onderhoudsplan voor beveiligingsupdates hebt.
Verzamel eerst de benodigde opdrachten voordat je om hulp vraagt.
Deze commando's bieden een compact diagnostisch pakket zonder het systeem te hoeven wijzigen:
Vermeld de Ubuntu-release van lsb_release -aof /etc/os-release, de exacte kernel van uname -ren of het stuurprogramma oorspronkelijk is geïnstalleerd via Ubuntu-pakketten, de NVIDIA-repository, een PPA of het zelfstandige installatieprogramma. Deze details zijn meestal belangrijker dan de algemene verklaring dat "het stuurprogramma na een update niet meer werkte".
Praktische preventie
Gebruik bij voorkeur de Ubuntu-workflow ubuntu-driversof de workflow voor extra stuurprogramma's voor normale desktopsystemen.
Zorg ervoor dat het kernel-flavor-metapakket geïnstalleerd blijft, zodat toekomstige kernelupdates de bijbehorende NVIDIA-modules kunnen bevatten.
Start de computer opnieuw op na kernel- of NVIDIA-stuurprogramma-updates in plaats van door te gaan met een gemengde opslagstructuur (geheugen/schijf).
Zorg dat je ten minste één werkende kernel beschikbaar hebt totdat je hebt bevestigd dat de nieuwe kernel opstart met het GPU-stuurprogramma.
Vermijd het combineren van Ubuntu-pakketten, PPA's, de zelfstandige installer van NVIDIA en meerdere repositories, tenzij je de gevolgen bewust wilt beheersen.
De exacte driverbranch, kernel-ABI en pakketnamen zijn afhankelijk van de release. Vervang altijd de waarden die door uw systeem en APT worden gerapporteerd in plaats van de voorbeeldversies als universeel te beschouwen.