Nouveau
# Nouveau

Nouveau è un progetto creato da X.Org Foundation e Freedesktop.org che mira allo sviluppo un driver open source per schede video NVIDIA, grazie al lavoro di reverse engineering sugli attuali driver proprietari di NVIDIA per Linux. Il nome del progetto "nouveau" deriva dalla traduzione francese di "nuovo".

## Descrizione

Il progetto si propone di supportare tutte le schede NVIDIA dalla NV04 fino alla NVE0 (dalla TNT fino alle recenti GeForce 600). Per quanto riguarda la parte 2D, la base di partenza è stata il driver minimale "nv" di X Window offuscato dalla stessa NVIDIA per renderne difficoltosa la lettura.

Come molti altri driver X.Org, nouveau è implementato come modulo sotto Licenza MIT. Inizialmente veniva usata la Direct Rendering Infrastructure di Mesa 3D per effettuare il rendering della grafica 3D con l'accelerazione 3D fornita dalla GPU direttamente dall'applicazione, successivamente questo compito è stato demandato alla nuova infrastruttura Gallium3D sviluppata da VMware. Attualmente il driver nouveau supporta l'accelerazione 2D EXA e l'accelerazione video Xv per tutti i chipset mentre XRender solo dal chipset NV10. L'accelerazione 3D è invece ancora sperimentale pertanto non viene ancora supportata dagli sviluppatori. Le altre caratteristiche come il Kernel Mode Setting (KMS) e il supporto multi-monitor sono pienamente funzionanti su tutte le GPU.

L'interesse per il progetto è tale che molti sviluppatori hanno iniziato a collaborare con il progetto ed è stata anche raccolta la somma di 10.000 dollari con una colletta online. Come dimostrazione della bontà del progetto, Fedora 11 ha integrato nouveau nel proprio sistema come driver predefinito per le schede NVIDIA e anche Ubuntu 10.04 LTS ha fatto lo stesso (nouveau resta comunque installabile a partire dalla versione 9.04).

Il 20 dicembre 2009 il modulo DRM di nouveau fu accettato nella versione 2.6.33 del kernel Linux come driver in staging e il 20 maggio 2012, ormai ritenuto stabile, ne è uscito divenendo uno dei driver standard del kernel Linux 3.4. Il 18 giugno 2012 è stata distribuita la versione 1.0 del driver di X.Org.

## Strumenti

Nell'operazione di reverse engineering vengono utilizzati due software prodotti dagli stessi sviluppatori di Nouveau.

Il primo è stato chiamato REnouveau (Reverse Engineering for nouveau) e funziona in spazio utente mentre l'altro, MMIO Trace, lavora all'interno del kernel. Tramite REnouveau, un utente può raccogliere informazioni sul funzionamento della sua scheda NVIDIA con i driver proprietari, e inviando queste informazioni contribuisce allo sviluppo di Nouveau.

