Ich habe wenig Hintergrund auf, wie diese Hardware tatsächlich funktioniert, aber jetzt bin ich verpflichtet, zu lernen, wie ein Linux-Framebuffer-Treiber für Android-Geräte zu schreiben.Ist ein Linux-Framebuffer-Treiber ein Grafikkartentreiber?
Ich bin verwirrt von Linux-Grafik-Stack. Von dem, was ich verstehe, interagiert der Compositing-Fenstermanager auf einem Desktop-Computer mit DRM
, die dann Daten an bestimmte Grafikkartentreiber sendet. Auf der anderen Seite gibt es eine Art von Controller-Daten von GPU's
Speichern durch DMA
abgerufen und an den Monitor senden, wie sie in der Antwort here vorgeschlagen. Auch durch Diagramm bei page 29
von this Buch, ich dachte, dass ein Frame-Buffer-Treiber auf tatsächlichen Grafikgeräten ist, so muss es interagieren mit bestimmten Grafikkartentreiber, zum Beispiel, ein nVidia
Treiber.
Aber wenn ich google schreibe einen Frame-Buffer-Treiber für ein Embedded-Gerät, zeigen die Ergebnisse, als ob der Fahrer direkt verantwortlich für die Kontaktierung mit der LCD
, so dass es aussieht, ist es sogar unter einem Grafikkartentreiber.
Also ist ein Frame-Buffer-Treiber eigentlich ein Grafikkartentreiber?
Große, danke für die Antwort. Ein Framebuffer-Treiber ist also ein kleinerer GPU-Treiber, und selbst eine nVidia-Karte muss einige allgemeine Schnittstellen für diese Art von Treiber haben, obwohl das 3D-Beschleunigungsmaterial auf solchen Karten dunkel geheim ist. Und trifft dies auch auf ein eingebettetes Gerät mit einem LCD zu, d. H. Der Bildpuffertreiber steuert nicht den IC auf einem LCD, sondern eine GPU in SoC? –
Es ist die Reverse Engineering 'nouveau' Treiber für nVidia-Karten, die KMS + fb, sondern auch 3D-Beschleunigung in einer begrenzten und oft instabilen Art und Weise zur Verfügung stellt.Wie erwähnt, gibt es nur wenige gemeinsame Schnittstellen, von denen VESA am bekanntesten ist. Auf einem Embedded-Gerät ist es möglich, keine dedizierte GPU zu haben, siehe https://github.com/notro/fbtft/wiki für ein Beispiel eines Treibers, der direkt mit dem LCD-Controller kommuniziert. – ypnos