Come impostare una modalità video in Linux con kms / drm?


12

Come posso impostare la modalità video in Linux al livello più basso? Per quanto ne so, il livello più basso nello spazio utente sarebbe richiedere KMS tramite DRM. È corretto? E se è così, come potrei ottenere un cambio di modalità e l'accesso alla "memoria video" associata?


Cosa sono i km? Finora non ho sentito parlare di KSM o del cambio di modalità.
BЈовић

Intendo per KMS: collegamento Kernel-Mode-Setting .

Intendi dire framebuffer / console? O per X11 / Xorg?
penguin359

@ penguin359 Entrambi. X e fb se possibile finché riesco ad usare direttamente il libdrm ... (PS: preferibilmente via C ++)

4
@litro cosa stai cercando di ottenere? e in molti km della distribuzione si attiverà se disponibile e non spento.
xenoterracide,

Risposte:


3

KMS — Kernel Mode Setting, per coloro che non ne hanno mai sentito parlare — è reso possibile dai driver video in modalità kernel. Questi driver video in modalità kernel configurano un display framebuffer che per impostazione predefinita è la risoluzione nativa dei monitor collegati. Se è collegato più di un monitor, ogni monitor otterrà la sua risoluzione nativa e la console virtuale sarà vincolata alla larghezza e all'altezza minima di entrambi i monitor.

Poiché l'uso di KMS genera un framebuffer, gli elementi di configurazione del framebuffer dovrebbero funzionare. Non riesco a verificarlo sul sistema in cui mi trovo attualmente, perché non ha un driver KMS. Ma sarò in un sistema più tardi con KMS e ti farò sapere.

Per ulteriori informazioni, consultare la documentazione del kernel sulle modalità di impostazione con il parametro video = boot up per framebuffer .


2

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.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.