Nvidia rilascia driver GPU Linux open source, con un problema

232

Michael Vi/Shutterstock.com

Il gioco su Linux è sempre stato un po’ più complicato che su Windows (o console di gioco), e uno dei motivi è lo scarso supporto dei driver di Nvidia su Linux. Ora sta cambiando, anche se non è chiaro quanto migliorerà la situazione.

Nvidia ha annunciato mercoledì di aver pubblicato i suoi moduli del kernel grafico Linux come software open source, con una doppia licenza GPL/MIT. In altre parole, chiunque può ora esaminare il codice di Nvidia e gli sviluppatori possono inviare correzioni e nuove funzionalità per migliorare i driver. Canonical (sviluppatori di Ubuntu Linux), SUSE e Red Hat (sviluppatori di Fedora Linux) hanno applaudito alla decisione di Nvidia di rendere finalmente open source i suoi driver grafici Linux.

Nvidia ha dichiarato nel suo post sul blog: “In questa versione open source, il supporto per le GPU GeForce e Workstation è di qualità alfa. Gli utenti di GeForce e Workstation possono utilizzare questo driver su GPU NVIDIA Turing e NVIDIA Ampere Architecture per eseguire desktop Linux e utilizzare funzionalità come display multipli, G-SYNC e ray tracing NVIDIA RTX in Vulkan e NVIDIA OptiX”.

Perché l’open source è importante

Allora, perché questo è un grosso problema? Bene, le schede grafiche Nvidia non hanno mai funzionato bene con i PC Linux. Intel e AMD mantengono entrambi driver grafici open source per i loro prodotti, che possono quindi essere inclusi nel kernel Linux standard. Il risultato finale è che se hai un PC da gioco con una GPU Radeon o un laptop con grafica Intel Xe, tutto funziona semplicemente su Linux. Poiché il codice è disponibile per chiunque lo guardi e lo modifichi, la grafica Intel e AMD funziona meglio con le modifiche più recenti nell’ecosistema Linux, come il server di visualizzazione Wayland emergente.

A differenza di AMD e Intel, Nvidia non ha open source i suoi driver (prima d’ora). Il pacchetto di driver proprietario a volte deve essere installato separatamente e poiché Nvidia è l’unico con accesso al codice, i driver non supportano Wayland e altre funzionalità Linux più recenti. Gli sviluppatori Linux hanno creato il driver open source Nouveau come alternativa, ma di solito offre prestazioni peggiori rispetto al software Nvidia, poiché è essenzialmente un progetto di reverse engineering.

In parole povere, i PC Linux con schede grafiche Nvidia hanno dovuto scegliere tra due pessime opzioni per anni: un driver closed-source con bug e funzionalità mancanti, o un driver open-source con prestazioni peggiori. In teoria, i driver open source di Nvidia dovrebbero essere i migliori di entrambi i mondi.

Le catture

Sono tutte ottime notizie, ma ci sono alcuni motivi per moderare la tua eccitazione. Hector Martin, il principale sviluppatore di Asahi Linux, ha condiviso in una serie di tweet che gran parte dell’importante codice grafico non è in realtà open-source. Nvidia sembra aver spostato gran parte del suo codice proprietario nel firmware delle sue schede grafiche, con cui interagisce il codice open source, un po’ come l’Intel Management Engine sulle CPU Intel.

Per riferimento, il firmware della GPU di Apple è di circa 400 kB. Il controller del display di Apple, che è un pasticcio RPC altrettanto folle, è ~ 7 MB, ma la maggior parte sono tabelle di dati (~ 1,5 MB è il codice).

Non fraintendetemi, meno blob nel kernel è fantastico… ma open source il loro “driver” non l’hanno fatto.

— Hector Martin (@marcan42) 12 maggio 2022

Martin ha teorizzato che parte del codice di Nvidia non può essere open source a causa di brevetti e accordi di licenza, quindi questa mezza misura era l’unico modo per realizzare driver open source. I driver grafici di AMD utilizzano anche alcuni componenti firmware proprietari, ma non tanto quanto Nvidia.

Ci sono anche altri problemi. Il driver open source supporta solo schede grafiche che utilizzano le architetture Ampere e Turing di Nvidia, che include le GPU GeForce serie 16, RTX 20 e più recenti. Chiunque abbia una scheda della serie GTX 10 o altro hardware precedente non ha affatto accesso al nuovo driver.

Infine, Nvidia non sta effettivamente gestendo gli aggiornamenti del codice come la maggior parte dei progetti open source. La sezione delle domande frequenti sull’annuncio afferma che ogni versione del codice sarà “un’istantanea generata da una base di codice condivisa, quindi i contributi potrebbero non riflettersi come commit Git separati nel repository GitHub”. In altre parole, sarà difficile per gli sviluppatori al di fuori di Nvidia tenere traccia delle modifiche e diagnosticare i problemi.

Una lunga strada da percorrere

Il rilascio del driver open source potrebbe essere deludente per alcuni, specialmente per chi usa ancora vecchie schede grafiche Nvidia che non sono supportate (è stato un po’ difficile acquistare una nuova scheda grafica ultimamente). Tuttavia, questo è un passo importante nella giusta direzione, se non altro perché aziende come Canonical e Red Hat hanno l’opportunità di aiutare a migliorare il codice di Nvidia per la prima volta in assoluto.

Nvidia spera che il driver open source possa essere eventualmente trasferito nel kernel Linux, il che potrebbe finalmente dare ai PC con hardware GeForce la stessa esperienza plug-and-play che i PC basati su AMD e Intel hanno goduto per anni sotto Linux.

Fonte: Nvidia, GitHub