Home
» PC-tips
»
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 kernelupdate kan ervoor zorgen dat Ubuntu vastloopt op een inlogscherm met grafische instellingen van lage resolutie, een zwart scherm of een bureaublad dat niet werkt zonder NVIDIA-acceleratie. Dat betekent niet automatisch dat de grafische kaart defect is. Een kernelupdate wijzigt de kernel waartegen een externe NVIDIA-module moet worden gecompileerd, en Secure Boot kan weigeren een module te laden waarvan de ondertekeningssleutel niet wordt vertrouwd.
Begin met het vaststellen van de oorzaak van het probleem. Als de vorige kernel opstartte en NVIDIA werkte, ligt het probleem waarschijnlijk bij de nieuwe kernel of de bijbehorende module. Als de module geïnstalleerd lijkt, maar de kernel een afwijzing van de sleutel of handtekening meldt, controleer dan Secure Boot en de registratie van de Machine Owner Key (MOK). Deze handleiding maakt gebruik van de workflow voor stuurprogrammapakketten van Ubuntu; de menu-opties en stuurprogrammabranches kunnen variëren afhankelijk van de Ubuntu-release en de hardware.
Illustratieve GRUB-weergave: het selecteren van een eerder geïnstalleerde kernel kan helpen om een werkend bureaublad te herstellen terwijl u de bijgewerkte kernel onderzoekt.
Kun je veilig eerst de vorige kernel opstarten?
Ja, als het nog steeds geïnstalleerd is. Herstart de computer en open het GRUB-menu; op veel systemen verschijnt het menu door Shift ingedrukt te houden in een legacy BIOS of door op Esc te drukken in een UEFI tijdens het opstarten. Kies ' Geavanceerde opties' voor Ubuntu en selecteer vervolgens de oudere kernel zonder 'herstelmodus'. De exacte timing van de toetsen en de menulabels zijn afhankelijk van de firmware en de GRUB-configuratie. Als het menu verborgen is, raadpleeg dan het opstartgedrag van de computer in plaats van willekeurig firmware-instellingen te wijzigen.
Zodra het systeem is opgestart, controleer dan de actieve kernel met ` uname -r. Een werkende oudere kernel biedt een herstelmogelijkheid en geeft je de tijd om pakketten te controleren. Dit is geen permanente oplossing: beveiligingsupdates blijven belangrijk, dus ga terug naar de nieuwe kernel nadat je het stuurprogramma hebt hersteld. Als geen van beide kernels normaal opstart, gebruik dan de hersteloptie van Ubuntu of een live-USB om belangrijke gegevens te back-uppen voordat je pakketwijzigingen aanbrengt.
Wat moet je controleren voordat je iets opnieuw installeert?
Open een terminal (of een tekstconsole met Ctrl+Alt+F3 als de grafische login niet beschikbaar is) en verzamel een korte basislijn:
uname -rIdentificeert de actieve kernel. mokutil --sb-stateRapporteert of Secure Boot is ingeschakeld. dkms statusToont of er een Dynamic Kernel Module Support-build is geregistreerd voor die kernel. nvidia-smiTest de communicatie met het geladen NVIDIA-stuurprogramma; dit is een diagnostisch, geen reparatiecommando. Het kernel-logboek kan een ontbrekende module, een mislukte build of een afwijzing van een handtekening aan het licht brengen. Geen overeenkomende logregel bewijst niet dat het stuurprogramma in orde is.
Gebruik de actieve kernel, DKMS-status en het NVIDIA-hulpprogramma samen om onderscheid te maken tussen een ontbrekende build en een probleem met geladen stuurprogramma's; de voorbeeldoutput kan per release verschillen.
Is het compileren van de NVIDIA-module voor de nieuwe kernel mislukt?
Als DKMS NVIDIA alleen voor een oudere kernel vermeldt, of als er geen NVIDIA-module beschikbaar is uname -r, installeer dan de bijbehorende kernelheaders en laat Ubuntu het meegeleverde stuurprogramma repareren. Headers bevatten de bestanden die nodig zijn om een externe module voor de actieve kernel te bouwen. Zorg er eerst voor dat u netwerktoegang en voldoende schijfruimte hebt en voer vervolgens het volgende commando uit:
De door Ubuntu aanbevolen ubuntu-driverstool selecteert een beschikbare driver die geschikt is voor de machine. Controleer de door APT voorgestelde pakketten voordat u ze accepteert. Als de driver al is geïnstalleerd en de DKMS-build onvolledig lijkt, identificeer dan het geïnstalleerde pakket in plaats van een willekeurige branch te raden:
dpkg -l 'nvidia-dkms-*' 'nvidia-driver-*'
ubuntu-drivers list
Installeer vervolgens het bijbehorende DKMS-pakket opnieuw dat op uw systeem wordt weergegeven (vervang de exacte pakketnaam): sudo apt install --reinstall nvidia-dkms-<branch>. Vermijd het kopiëren van een drivernummer van een andere Ubuntu-release of het combineren van Ubuntu-pakketten met het zelfstandige installatieprogramma van NVIDIA; concurrerende installatiemethoden kunnen bestanden overschrijven of Secure Boot bemoeilijken. Als APT melding maakt van niet-vervulde afhankelijkheden, vastgehouden pakketten of een mislukte DKMS-build, lees dan de volledige foutmelding voordat u verdere opdrachten uitvoert. Het relevante buildlogboek bevindt zich meestal onder /var/lib/dkms/; gebruik het pad dat in de foutmelding wordt genoemd in plaats van DKMS-mappen te verwijderen.
Installeer de headers voor de actieve kernel en repareer vervolgens het specifieke Ubuntu DKMS-pakket dat al voor het systeem is geselecteerd. De pakketnaam en de APT-uitvoer kunnen variëren.
Blokkeert Secure Boot een geïnstalleerde module?
Dat zou kunnen. Met Secure Boot ingeschakeld controleert de Ubuntu-kernel de handtekeningen van kernelmodules van derden. Ubuntu kan tijdens de installatie een MOK-ondertekeningssleutel aanmaken en u vragen deze te registreren. Als er tijdens de installatie een prompt verscheen om een eenmalig wachtwoord in te stellen, maar Ubuntu na de volgende herstart direct opstartte, is de sleutel mogelijk niet geregistreerd. Controleer mokutil --sb-statehet kernel-logboek op verificatie- of afwijzingsberichten over de sleutel.
Als de Ubuntu-pakketinstallatie een MOK-registratie in de wachtrij heeft geplaatst, herstart dan de computer en volg de instructies op het blauwe MOK Manager-scherm: kies ' MOK registreren' , ga verder, bevestig de sleutel, voer het eenmalige wachtwoord in dat u tijdens de pakketinstallatie hebt aangemaakt en herstart de computer. Dit wachtwoord is niet per se uw Ubuntu-aanmeldingswachtwoord. Lees het scherm zorgvuldig; de menu-opties kunnen variëren. Als er geen registratie in de wachtrij stond, kan het opnieuw installeren van een ondersteund Ubuntu-stuurprogrammapakket om een sleutelconfiguratie vragen. Registreer geen onbekend sleutelbestand en deel het eenmalige wachtwoord niet.
Het MOK Manager-registratiescherm verschijnt tijdens het opnieuw opstarten wanneer een sleutelregistratie in behandeling is; selecteer 'MOK registreren' alleen voor de sleutel die u wilt vertrouwen.
Wat als de build mislukt, zelfs als de headers geïnstalleerd zijn?
Controleer of de nieuwe kernel volledig is geïnstalleerd en of de headers exact overeenkomen: uname -rze moeten overeenkomen met het geïnstalleerde headerpakket. Controleer vervolgens de DKMS-foutmelding van APT en het buildlogboek. Een nieuwe kernel kan incompatibiliteit met een oudere NVIDIA-stuurprogrammatak aan het licht brengen; opnieuw compileren kan geen broncode herstellen die die kernelinterface niet ondersteunt. Gebruik de stuurprogrammaselector van Ubuntu om een ondersteunde tak voor uw release te installeren en herstart vervolgens. Als u het stuurprogramma hebt geïnstalleerd met het .run-installatieprogramma van NVIDIA, volg dan de verwijderingsinstructies van NVIDIA voordat u terugschakelt naar Ubuntu-pakketten; gebruik geen pakketbeheerders over elkaar heen.
Voor tijdelijke toegang kunt u de oudere kernel via GRUB opstarten en deze geïnstalleerd laten totdat het stuurprogramma van de nieuwe kernel correct is geladen. Als u een aangepaste kernel, een niet-standaard variant of een grafische computer-/serverconfiguratie gebruikt, komt de automatische desktopaanbeveling van Ubuntu mogelijk niet overeen met uw beoogde configuratie. Raadpleeg de documentatie voor die kernel of workload in plaats van een generiek pakket te forceren.
Hoe controleer je of de oplossing werkt?
Na het repareren van pakketten of het registreren van de sleutel, herstart u de computer en start u de nieuwe kernel op. Voer vervolgens de commando's uname -r, dkms status, en nvidia-smiopnieuw uit. Een succesvol resultaat is een DKMS-vermelding voor de actieve kernel, geen afwijzing van modulesignaturen in het kernellogboek van de huidige opstart en nvidia-smide weergave van de GPU- en driverinformatie. Controleer ook of de normale desktopsessie start en of een applicatie die GPU-acceleratie nodig heeft, de NVIDIA GPU kan gebruiken. Hybride laptops gebruiken mogelijk opzettelijk geïntegreerde grafische kaarten voor het bureaublad, dus een stille GPU is op zich geen bewijs van een defect.
Als dezelfde fout blijft optreden, sla dan de volledige DKMS-buildoutput, de actieve kernelversie, de Ubuntu-release ( cat /etc/os-release), de Secure Boot-status en relevante kernel-logregels op. Deze details geven aan of de volgende stap een ondersteunde driverbranch, een ondertekeningsprobleem of een kernelcompatibiliteitsprobleem betreft. Ubuntu's officiële richtlijnen bevelen hun ubuntu-driversaanpak aan voor de meeste systemen, met name wanneer Secure Boot is ingeschakeld; zie Ubuntu Desktop: NVIDIA-stuurprogramma's installeren , Ubuntu Server: NVIDIA-stuurprogramma-installatie en Ubuntu Security: UEFI Secure Boot . Raadpleeg de Linux-documentatie van NVIDIA voor details over drivercompatibiliteit op laag niveau . De beschikbare driverversies en exacte instructies variëren per Ubuntu-release en GPU-ondersteuningsstatus.