Driver nVidia 390 su kernel 6.0 in Arch Linux
Oggi è successo che, al passaggio al kernel 6.0, il driver nvidia-390xx-dkms
non venisse compilato correttamente. Poiché questo driver è un legacy driver,
può capitare che con un cambio del kernel qualcosa vada storto,
finché non venga applicata una patch dal manutentore.
Questo l’output durante l’aggiornamento:
==> dkms install --no-depmod vboxhost/6.1.38_OSE -k 6.0.1-arch2-1
==> dkms install --no-depmod nvidia/390.154 -k 6.0.1-arch2-1
Error! Bad return status for module build on kernel: 6.0.1-arch2-1 (x86_64)
Consult /var/lib/dkms/nvidia/390.154/build/make.log for more information.
==> WARNING: `dkms install --no-depmod nvidia/390.154 -k 6.0.1-arch2-1' exited 10
Su Google ho notato che già altri avevano affrontato il problema e in questo thread sul forum si diceva di leggere la pagina AUR. Vado sulla pagina AUR del pacchetto e tra i commenti leggo di gente con lo stesso problema. C’è un commento che dice:
patch for linux 6.0.
BlackIkeEagle commented on 2022-10-03 13:06 (UTC)
Decido quindi, prima di riavviare e trovarmi con un sistema non funzionante, di applicare la patch consigliata.
Come ho risolto
Dal repo su GitLab
ho scaricato il pacchetto intero (non solo il file .patch
).
L’ho decompresso e da terminale sono entrato nella directory e ho dato il comando
makepkg
In pratica, questo comando ha scaricato il driver dal sito nVidia e l’ha compilato applicando la patch per il kernel 6.0. Ecco l’output intero del comando:
$ makepkg
==> Creazione del pacchetto: nvidia-390xx-dkms 390.154-2 (sab 15 ott 2022, 06:35:49)
==> Controllo delle dipendenze durante l'avvio in corso...
==> Controllo delle dipendenze durante la compilazione in corso...
==> Download dei sorgenti in corso...
-> Download di NVIDIA-Linux-x86_64-390.154-no-compat32.run in corso...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 46.6M 100 46.6M 0 0 8198k 0 0:00:05 0:00:05 --:--:-- 8623k
-> È stato trovato kernel-4.16.patch
-> È stato trovato kernel-6.0.patch
==> Validazione di source file con sha512sums...
NVIDIA-Linux-x86_64-390.154-no-compat32.run ... Verificato
kernel-4.16.patch ... Verificato
kernel-6.0.patch ... Verificato
==> Estrazione dei sorgenti in corso...
==> Avvio di prepare() in corso...
Creating directory NVIDIA-Linux-x86_64-390.154-no-compat32
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 390.154........
patching file kernel/common/inc/nv-linux.h
patching file kernel/conftest.sh
Hunk #1 succeeded at 2073 (offset 17 lines).
patching file nvidia-drm/nvidia-drm-helper.c
Hunk #1 succeeded at 39 (offset -2 lines).
patching file nvidia/nv-acpi.c
Hunk #1 succeeded at 15 with fuzz 2 (offset -1 lines).
==> Entro nell'ambiente fakeroot...
==> Avvio di package() in corso...
==> Rimozione dei dati superflui in corso...
-> Rimozione dei file libtool in corso...
-> Eliminazione dei file indesiderati in corso...
-> Rimozione dei file dalle librerie statiche...
-> Compressione delle pagine man ed info in corso...
==> Controllo per il rilascio dei pacchetti in corso...
==> Creazione del pacchetto "nvidia-390xx-dkms" in corso...
-> Generazione del file .PKGINFO in corso...
-> Generazione del file .BUILDINFO in corso...
-> Creazione del file .MTREE in corso...
-> Compressione del pacchetto in corso...
==> Uscita dall'ambiente di fakeroot.
==> Compilazione terminata: nvidia-390xx-dkms 390.154-2 (sab 15 ott 2022, 06:36:01)
A seguire ho installato il nuovo pacchetto con:
sudo pacman -U nvidia-390xx-dkms-390.154-2-x86_64.pkg.tar.zst
che non ha dato alcun errore:
$ sudo pacman -U nvidia-390xx-dkms-390.154-2-x86_64.pkg.tar.zst
[sudo] password di aldo:
caricamento dei pacchetti in corso...
risoluzione delle dipendenze in corso...
ricerca dei pacchetti in conflitto in corso...
Pacchetti (1) nvidia-390xx-dkms-390.154-2
Dimensione totale dei pacchetti da installare: 27,17 MiB
Dimensione netta dell'aggiornamento: 0,05 MiB
:: Vuoi procedere con l'installazione? [S/n]
(1/1) verifica delle chiavi presenti nel portachiavi [###############] 100%
(1/1) verifica dell'integrità dei pacchetti [###############] 100%
(1/1) caricamento dei file dei pacchetti [###############] 100%
(1/1) controllo dei conflitti in corso [###############] 100%
(1/1) controllo dello spazio disponibile sul disco [###############] 100%
:: Esecuzione degli hook di pre-transazione...
(1/1) Remove upgraded DKMS modules
==> dkms remove nvidia/390.154
:: Elaborazione delle modifiche al pacchetto...
(1/1) aggiornamento in corso di nvidia-390xx-dkms [###############] 100%
:: Esecuzione degli hook di post-transazione...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Install DKMS modules
==> dkms install --no-depmod nvidia/390.154 -k 6.0.1-arch2-1
==> depmod 6.0.1-arch2-1
Al riavvio il sistema ha funzionato correttamente.