Il supporto dei driver funziona allo stesso modo di tutto l'open source:qualcuno decide di grattarsi il prurito.
A volte il driver viene fornito dalla società che fornisce l'hardware, proprio come su Windows. Intel lo fa per i propri chip di rete, 3ware lo fa per i propri controller RAID, ecc. che c'è un driver.
Nel migliore dei casi, l'azienda lavora duramente per inserire il proprio driver nella base di origine appropriata fornita con le distribuzioni Linux. Per la maggior parte dei driver, ciò significa il kernel Linux. Per i driver grafici, significa X.org. Ci sono anche CUPS per i driver della stampante, NUT per i driver UPS, SANE per i driver dello scanner, ecc. Il più grande svantaggio è che è più faticoso per l'azienda coordinarsi con il progetto open source per inserire il proprio driver, per gli stessi motivi di base è difficile per due gruppi separati coordinare qualcosa.
Poi ci sono quelle aziende che scelgono di offrire direttamente solo il codice sorgente del driver. In genere devi scaricare il codice sorgente del driver dal loro sito Web, crearlo sul tuo sistema e installarlo a mano. Tali aziende sono in genere produttori più piccoli o specializzati senza un numero sufficiente di dipendenti da poter risparmiare lo sforzo di coordinarsi con il progetto open source appropriato per inserire il loro driver nella base di origine di quel progetto.
Rare poche aziende forniscono driver solo binari invece del codice sorgente. Un esempio sono i driver 3D più avanzati di aziende come NVIDIA. In genere la ragione di ciò è che l'azienda non vuole divulgare informazioni di cui si sente proprietaria. Tali driver spesso non funzionano con tante distribuzioni Linux come nei casi precedenti, perché la società che fornisce l'hardware non si preoccupa di ricostruire il proprio driver per tenere traccia delle modifiche API e ABI. È possibile per l'utente finale o il fornitore della distribuzione Linux modificare un driver fornito come codice sorgente per tenere traccia di tali modifiche, quindi nei due casi precedenti, il driver può solitamente essere fatto funzionare con più sistemi rispetto a un driver binario.
Quando l'azienda non fornisce driver Linux, qualcuno nella comunità decide semplicemente di farlo. Ci sono alcune grandi classi di hardware in cui questo è comune, come con UPS e stampanti. Ci vuole un utente raro che a) abbia l'hardware; b) ha il tempo; c) ha l'abilità; e d) ha la propensione a dedicare il tempo allo sviluppo del conducente. Per l'hardware popolare, questo di solito non è un problema perché con milioni di utenti Linux, queste poche persone esistono. Ti metti nei guai con hardware non comune.