[RISOLTO] Debian Buster: avvio sistema grafico bloccato

Questioni legate al Kernel Linux: configurazione, installazione, ottimizzazione, patch

[RISOLTO] Debian Buster: avvio sistema grafico bloccato

Messaggioda Aki » 14/07/2018, 10:12

Un saluto a tutti.

A seguito del dist-upgrade eseguito ieri su una Debian Buster (testing) per architettura X86_64 (Linux debian 4.16.0-2-amd64 #1 SMP Debian 4.16.16-2 (2018-06-22) x86_64 GNU/Linux , Package: linux-image-4.16.0-2-amd64 (4.16.16-2)), la macchina al successivo avvio è risultata inutilizzabile poiché non è più riuscita a riavviare le sezione grafica (server X), rimanendo bloccata alla inizializzazione del modulo (nvidia proprietario, versione 340.106) del kernel relativo alla scheda grafica (Nvidia GeForce 9600m GT). Poiché il malfunzionamento si presentava prima che comparisse lo "splash screen" del modulo "nvidia", ho ipotizzato fosse causato da un malfunzionamento (primario o secondario) del modulo invidia del kernel. Rientrando nel sistema in modalità "single user" e riconfigurandolo per l'utilizzo del modulo del kernel "nouveau" sono riuscito a riavviare la macchina e ad analizzare più in dettaglio i log.

In particolare, dal log del kernel risulta:
Codice: Seleziona tutto
Jul 13 20:33:07 debian kernel: [   51.485657] usercopy: Kernel memory exposure attempt detected from SLUB object 'nvidia_stack_t' (offset 11864, size 3)

A tale messaggio del kernel segue il kernel dump (in allegato) che è ricondotto in origine ad una chiamata del server Xorg al kernel e, successivamente, alla gestione di tale chiamata da parte del modulo proprietario nvidia.

Tra i bug report di Debian ve ne è uno abbastanza recente (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=902891) che si ricollega ad latre sette analoghe segnalazione di bugreport e tratta l'argomento, ma per una diversa e più recente versione del modulo proprietario nvidia. Tale bug report rimanda ad una discussione del forum nvidia all'indirizzo https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=902891.

Al momento non sono ancora riuscito a risolvere, perché nelle segnalazioni dei bugreport si fa riferimento a versioni più recenti del modulo del kernel nel quale nvidia dovrebbe aver risolto il malfunzionamento, ma per la versione "legacy" 340.106 e 340.107 (la più recente, rilasciata a giungo 2018) sembra persistere.

Lo segnalo a chi dovesse incorrere in analogo malfunzionamento e al fine di ricevere indicazioni a chi lo ha magari già risolto e può darmi suggerimenti in tal senso. Credo, però, di poter affermare che tale malfunzionamento potrebbe essersi presentato a seguito dell'aggiornamento del kernel usato da Debian Buster (testing) nella seconda metà di giugno 2018.

edit: in attesa di ulteriori verifiche, anticipo che probabilmente la soluzione è in questo ulteriore bug report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=899998 che riconduce a questa patch:
Codice: Seleziona tutto
Author: Andreas Beckmann <anbe@debian.org>
Description: use kmem_cache_create_usercopy on 4.16+
 fixes "Bad or missing usercopy whitelist? Kernel memory exposure attempt
 detected from SLUB object 'nvidia_stack_cache'" on linux-image-4.16.0-2-*
 or newer that have disabled CONFIG_HARDENED_USERCOPY_FALLBACK
Bug-Debian: #901919, #899998
Bug: https://devtalk.nvidia.com/default/topic/1031067

--- a/nv-linux.h
+++ b/nv-linux.h
@@ -757,11 +757,18 @@ extern nv_spinlock_t km_lock;
                         0, 0, NULL, NULL);                      \
     }
 #elif (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 5)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)
+#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type)            \
+    {                                                           \
+        kmem_cache = kmem_cache_create_usercopy(name, sizeof(type), 0, 0, 0, sizeof(type), NULL); \
+    }
+#else
 #define NV_KMEM_CACHE_CREATE(kmem_cache, name, type)            \
     {                                                           \
         kmem_cache = kmem_cache_create(name, sizeof(type),      \
                         0, 0, NULL);                            \
     }
+#endif
 #else
 #error "NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT value unrecognized!"
 #endif
Allegati
kernel-dump.log.zip
(2.46 KiB) Scaricato 4 volte
Aki
Global Moderator
Global Moderator
 
Messaggi: 7875
Iscritto il: 27/12/2007, 16:59

Re: Debian Buster(testing): avvio sistema grafico bloccato

Messaggioda Aki » 15/07/2018, 15:04

Facendo seguito al bug report https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=899998 ho risolto installando l'ultima versione del pacchetto nvidia-legacy-340xx-kernel-dkms che contiene la versione 340.107-2 (versione 340.107 con seconda revisione Debian) del driver nvidia con una patch di cui è stato effettuato il backporting dal manutentore del pacchetto debian non-free nvidia-legacy-340xx e che non è ancora inclusa nell'ultima release della versione 304.107 rilasciata da nvidia lo scorso 8 giugno 2018. Il pacchetto interessato è:
Codice: Seleziona tutto
Package: nvidia-legacy-340xx-kernel-dkms
Status: install ok installed
Priority: optional
Section: non-free/kernel
Installed-Size: 15355
Maintainer: Debian NVIDIA Maintainers <pkg-nvidia-devel@lists.alioth.debian.org>
Architecture: amd64
Multi-Arch: foreign
Source: nvidia-graphics-drivers-legacy-340xx
Version: 340.107-2
Aki
Global Moderator
Global Moderator
 
Messaggi: 7875
Iscritto il: 27/12/2007, 16:59

Re: [RISOLTO] Debian Buster: avvio sistema grafico bloccato

Messaggioda Underpass » 18/07/2018, 9:44

Ciao Aki, da pochi giorni (dopo 10 anni...) ho cambiato il PC e sto riconfigurando tutto. Per adesso avevo tenuto i driver Nouveau senza installare ancora i driver NVidia e diciamo che mi è andata bene perché ho una vecchia scheda (con chipset NVIDIA GeForce 8400 GS) che funzionerebbe proprio col driver legacy.
C'è un motivo per cui stai usando il driver proprietario in luogo di quello libero?
Materia: contrasta i tentativi di mutazione operati dal Tempo, resiste agli attacchi dell'Energia, costringe il Pensiero a divenire pratico.
Avatar utente
Underpass
Hero Member
Hero Member
 
Messaggi: 722
Iscritto il: 09/08/2006, 2:09


Torna a Kernel

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti