Non sono sicuro che tu sappia veramente cosa stai chiedendo, altrimenti l'avresti espresso in un modo che fosse responsabile. ... Ma per fare del mio meglio, per rispondere alla tua domanda.
Vuoi impostare una modalità e buttare via un po 'di "memoria video"? come la vecchia modalità dos X giorni ?? Se questo è ciò che desideri, devi programmare con Framebuffer. Detto questo, sarebbe molto meglio lavorare con DirectFB. DirectFB è come uno strato molto sottile, con accelerazione, sul Framebuffer. È di livello basso e, in verità, è il più basso che si possa ragionevolmente desiderare di scrivere applicazioni. Saresti in grado di impostare le modalità e avere il controllo in uno stile di livello più basso. Se vuoi il controllo diretto diretto dello stile devi scrivere Framebuffer crudo, fondamentalmente mmap fuori qualche ram video. Se ritieni che Framebuffer funzioni male, non posso stressarmi abbastanza, dai un'occhiata a DirectFB. Se qualcuno ha un driver KMS caricato, il suo Framebuffer viene impostato tramite KMS / libdrm.
Ora come per libdrm, è una lib spazio utente per lavorare con il kernel DRM. Non è un Framebuffer, non è un'API dell'applicazione, è una libreria di dispositivi di sistema. Se vuoi creare un nuovo driver di dispositivo, libdrm è la strada da percorrere in assoluto. Ad esempio, libdrm-radeon. Linux non è DOS, l'unico modo per comunicare direttamente con l'hardware è attraverso il kernel. Tutte le normali applicazioni non inviano mai il codice direttamente all'hardware, deve essere escluso in qualche lib / API / call. Ci sono progetti che hanno adottato l'approccio integrato nel kernel, per scopi accademici / sperimentali, come FBUI.
Spero di averti almeno indirizzato nella giusta direzione, altrimenti dovresti commentare e anche aggiornare la tua domanda. Ho seguito questa domanda sin dalla sua concezione, che è stata almeno due migrazioni fa e non più vicina alla risposta. Senza ulteriori informazioni, non c'è davvero altro che si possa dire.