SDB:Nomodeset: aggirare gli ostacoli di aggiornamento della grafica e d'installazione


  • Si è provato ad installare Tumbleweed o Leap, ma, non appena è stato premuto il tasto Invio per procedere dalla schermata di installazione di openSUSE (o poco dopo), lo schermo è diventato nero ed è comparsa la scritta "Nessun segnale, modalità di risparmio energetico" o simile, oppure è semplicemente diventato nero.
  • Si è provato diverse volte l'ultima istantanea, ma il risultato è stato sempre lo stesso.
  • La "scheda" video è sia Intel che AMD, oppure è NVidia? Su un adesivo o sul manuale compare la parola Optimus?
  • Si è appena cambiato o aggiunto una scheda gfx, e quindi lo schermo nero è diventato o è comparso un messaggio "out of range" dopo aver eseguito una selezione nel menu di Grub?

Se una qualsiasi di queste combinazioni è vera, per portare a termine con successo l'installazione potrebbero essere necessari alcuni passi aggiuntivi, oltre a delle azioni supplementari al primo avvio della nuova installazione.

La prima cosa da fare è assicurarsi che il supporto di installazione non sia corrotto: è sufficiente provarlo in un altro computer per assicurarsi che sia veramente avviabile. I dettagli su come farlo vanno però oltre lo scopo di questa pagina.

Una volta fatto questo si può provare l'opzione speciale di avvio nomodeset, che è la ragione principale per cui si è qui. nomodeset è inteso principalmente come uno strumento per la risoluzione dei problemi, una sorta di cerotto che consente ad uno schermo di funzionare, pur se in modalità rattoppata: funziona tutto, ma lentamente. Ciò è però sufficientemente per fare delle prove, per raccogliere dei dati e per fare le regolazioni della configurazione necessarie.

Ecco qui come provare con nomodeset:

Non appena compare il primo menu di installazione bisogna spostare l'evidenziazione su "Installazione", e premere il tasto "e". Si deve spostare poi il cursore alla fine della riga (che può anche terminare a capo) che inizia con "linux" e che termina con "splash=silent" o con "quiet". Aggiungere quindi uno spazio e, senza digitare le virgolette, scrivere "nomodeset", poi premere F10 o Ctrl-X, che serve per cercare di evitare che lo schermo diventi nero o nessun segnale. Se nella parte bassa dello schermo compare una barra verde che si muove, questo è un buon segno. Premere successivamente il tasto ESC per visualizzare ulteriori informazioni sull'avanzamento del processo di avvio.

Una volta che l'installazione e il primo avvio si sono completati è possibile esaminare /etc/default/grub: probabilmente nomodeset verrà incluso nella riga GRUB_CMDLINE_LINUX_DEFAULT=. Però, poiché nomodeset è inteso solo come parametro per la risoluzione dei problemi, esso ostacolerà gravemente le prestazioni di qualsiasi sistema: la sua applicazione blocca infatti l'uso di tutti i competenti DDX appropriati dei driver FOSS per AMD, Intel e i chip gfx di NVidia disabilitando il kernel modesetting (KMS).

D'altro canto nomodeset è un parametro richiesto da alcuni driver DDX non FOSS (cioè proprietari), storicamente quelli di NVidia. Se si sa già con certezza che verrà installato un driver DDX non FOSS si deve considerare quanto segue solo come informazione, poiché ci si dovrà attenere a tutte le istruzioni fornite per il particolare driver della scheda gfx. Lo stesso vale se si dispone di Optimus o di un altro hardware a doppia scheda grafica: è necessario seguire delle istruzioni di installazione alternative in caso di scheda grafica doppia.

Il driver DDX FOSS generico predefinito si chiama "modesetting", ed è fornito dal pacchetto xorg-x11-server. I driver DDX specifici per l'hardware delle principali aziende sono:

  • "amdgpu", fornito dal pacchetto xf86-video-amdgpu per le schede AMD recenti,
  • "radeon", fornito dal pacchetto xf86-video-ati per le schede AMD/ATI non recenti,
  • "intel", fornito dal pacchetto xf86-video-intel principalmente per le schede Intel non recenti, e
  • "nouveau", fornito dal pacchetto xf86-video-nouveau per le schede NVidia, da non confondere col driver fornito dal kernel avente lo stesso nome.

Non esiste un driver specifico fornito principalmente per le Intel gfx recenti: l'azienda paga infatti i suoi sviluppatori di driver Linux affinché indirizzino i loro sforzi verso il driver DDX FOSS modesetting. Il DDX xf86-video-intel è in modalità di manutenzione, non avendo avuto alcun rilascio ufficiale dal 2015.

Nonostante modesetting sia il driver predefinito, la maggior parte delle installazioni include tutti i pacchetti xf86-video-*, scavalcando così quello tecnico predefinito. Ciò accade principalmente perché non esistono delle regole abbastanza semplici in base alle quali il DDX funzioni meglio con un particolare hardware, e i programmi di installazione sarebbero enormi se si provasse ad includere del codice e un database solo per tentare una scelta ideale. Quindi il prossimo passo è quello di valutare le prestazioni: se si è soddisfatti così, non c'è bisogno di fare altro. Andate e divertitevi!

Se invece le prestazioni sembrano scadenti, oppure se quella che dovrebbe essere una schermata di accesso è semplicemente un qualcosa di nero con un puntatore del mouse (se non peggio), allora il passo successivo è quello di provare ad avviare rimuovendo l'opzione di avvio nomodeset. Ciò può essere fatto premendo sempre il tasto "e" nel menu del bootloader (come è stato fatto durante l'installazione), ma questa volta è necessario rimuovere nomodeset prima di procedere. Se l'avvio procede normalmente, ottimo. Dopo aver effettuato l'accesso bisogna aprire il bootloader di YaST, rimuovere nomodeset, quindi salvare: in questo modo la modifica rimarrà valida anche per gli avvii successivi.

Se invece non si verificano miglioramenti, o se questi non sembrano essere all'altezza delle aspettative, o, semplicemente, se si desidera sapere come si comporta l'altro driver DDX, bisogna cambiarlo. Di solito il modo più semplice per passare al driver modesetting è quello di rimuovere dall'uso corrente il pacchetto xf86-video-*, quindi riavviare il server grafico o il computer. Se il DDX modeetting è "già" in uso perché il pacchetto xf86-video-* che si adatta all'hardware non è installato, allora è necessario installarlo e riavviare. La semplice installazione del pacchetto xf86-video-* non è sempre sufficiente, perché in /etc/X11/xorg_pci_ids/modesetting.ids potrebbe esistere un ID PCI che corrisponde alla propria scheda gfx. Quella riga può essere rimossa per disattivare la preferenza DDX modesetting, oppure, se non è già presente, la si può aggiungere per attivarla. L'implementazione di un cambio di DDX è possibile anche aggiungendo una riga Driver nella 'Sezione "Dispositivo"' in /etc/X11/xorg.conf oppure in /etc/X11/xorg.conf.d/50 -device.conf.

Per determinare quale DDX sia, o quale è stato utilizzato per ultimo, è possibile esaminare l'output di inxi -G, oppure il file /var/log/Xorg.0.log. Nell'output di inxi il driver in uso (o il più recente) è il primo nominato dopo la versione del server sulla riga che inizia con "Display:" ed è seguito da "unloaded". Nel registro, il nome del driver xf86-video in uso verrà ripetuto innumerevoli volte in successione, con uno "(0):" aggiunto ad esso.

inxi potrebbe non essere già installato: si trova nei repository OSS ed è pronto per essere installato con zypper o con YaST. L'output di inxi -GxxSM è un buon punto di partenza per fornire delle informazioni sul proprio computer in una qualsiasi richiesta di aiuto in caso di problemi video.

Se si continua a non riscontrare alcun miglioramento, o se il miglioramento sembra ancora non essere all'altezza delle aspettative, si può provare a cambiare il processo di avvio grafico con uno testuale in vari gradi. Per provare è sufficiente premere nuovamente il tasto "e" nel menu del bootloader, come nella rimozione di nomodeset , ma questa volta bisogna apportare una (o più) delle seguenti modifiche:

  • rimuovere quiet, e/o
  • rimuovere splash=silent, e/o
  • aggiungere plymouth.enable=0

Se qualcuna di queste modifiche produce dei risultati soddisfacenti si può tornare nel bootloader di YaST per rendere le eliminazioni permanenti, come con nomodeset. Invece di rendere permanente nel bootloader plymouth.enable=0, lo spazio su disco e la larghezza di banda degli aggiornamenti possono essere risparmiati rimuovendo il software plymouth con YaST o con Zypper, se non è più necessario, ad es. dalla crittografia del disco.

Se nonostante tutto il problema persiste si può fare una domanda nel forum o nella mailing list opensuse-support. A chi risponde dovranno essere fornite delle informazioni per aiutarli a capire che cosa si può fare.