Pagina 1 di 1

Driver nvidia con kernel 5.10 [RISOLTO]

Inviato: lun 21 dic 2020, 21:03
da gian_d
Qualche ora fa ho aggiornato il kernel, ma a seguito dell'aggiornamento non si avvia più il server grafico. Poi ho scoperto che il mancato avvio era dovuto al mancato caricamento dei moduli kernel del driver. All'inizio non me ne ero accorto perché l'aggiornamento del kernel lo faccio attraverso uno script che aggiorna in sequenza anche i moduli del driver nvidia e di virtualbox.

Fatto sta che la compilazione dei moduli nvidia produce un errore con il kernel 5.10 perciò si arresta tutto. Per ora ho reinstallato il kernel 5.4.83. Ho visto che c'è una patch ma prima di usarla voglio verificare dove va a parare perché non sono sicuro se va applicata solo nello slackbuild nvidia-kernel o anche nello slackbuild nvidia-driver.

Per ora sconsiglio pertanto l'aggiornamento del kernel per chi usa il driver proprietario di nvidia

Re: Driver nvidia con kernel 5.10 [RISOLTO]

Inviato: lun 21 dic 2020, 22:46
da gian_d
Ok, ora sono collegato dopo aver aggiornato il kernel e risolto i problemi con i driver.
Ho ricostruito la patch per includerla nello slackbuild. Così com'era non andava bene perché erano sballati i percorsi. La patch va applicata nello slackbuild di nvidia-kernel, sembra non sia necessaria invece per la compilazione del driver (l'ho ricompilato così come è rilasciato nel repository di Ponce).

Questo è il testo della patch:

Codice: Seleziona tutto

--- kernel/common/inc/nv-linux.h	2020-09-23 03:10:38.000000000 +0200
+++ kernel/common/inc/nv-linux.h	2020-12-21 21:28:44.402720929 +0100
@@ -11,6 +11,7 @@
 #ifndef _NV_LINUX_H_
 #define _NV_LINUX_H_
 
+#include <linux/version.h>
 #include "nvstatus.h"
 #include "nv-misc.h"
 #include "nv.h"
@@ -166,6 +167,11 @@
 
 #include <linux/pagemap.h>
 #include <linux/dma-mapping.h>
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0))
+// dma-mapping.h has been split on commit 0a0f0d8be76dcd4390ff538e7060fda34db79717,,
+// so this needs to be incldued now for the build to work
+#include <linux/dma-map-ops.h>
+#endif
 
 #if defined(CONFIG_SWIOTLB) && defined(NVCPU_AARCH64)
 #include <linux/swiotlb.h>

--- kernel/nvidia-drm/nvidia-drm-gem-user-memory.c	2020-09-23 03:10:38.000000000 +0200
+++ kernel/nvidia-drm/nvidia-drm-gem-user-memory.c	2020-12-21 21:40:12.109633670 +0100
@@ -20,6 +20,7 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
+#include <linux/version.h>
 #include "nvidia-drm-conftest.h"
 
 #if defined(NV_DRM_AVAILABLE)
@@ -60,8 +61,14 @@
 {
     struct nv_drm_gem_user_memory *nv_user_memory = to_nv_user_memory(nv_gem);
 
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0))
+    // New parameter to drm_prime_pages_to_sg (commit 707d561f77b5e2a6f90c9786bee44ee7a8dedc7e)
+    return drm_prime_pages_to_sg(nv_gem->nv_dev->dev, nv_user_memory->pages,
+                                 nv_user_memory->pages_count);
+#else
     return drm_prime_pages_to_sg(nv_user_memory->pages,
                                  nv_user_memory->pages_count);
+#endif
 }
 
 static void *__nv_drm_gem_user_memory_prime_vmap(

Ho comunque scritto al mantainer dello slackbuild

Re: Driver nvidia con kernel 5.10 [RISOLTO]

Inviato: mar 22 dic 2020, 7:15
da gian_d
gian_d ha scritto:
lun 21 dic 2020, 22:46
Ho comunque scritto al mantainer dello slackbuild
Mi ha segnalato che il bug è stato risolto nella nuova versione del driver, di cui sarà disponibile lo slackbuild a giorni