我对这些硬件的实际工作原理了解甚少,但现在我需要学习如何为Android设备编写Linux帧缓冲驱动程序。
我对Linux图形堆栈感到困惑。据我所知,在桌面计算机上,合成窗口管理器与DRM进行交互,然后将数据发送到特定的视频卡驱动程序。另一方面,有一些控制器通过DMA从GPU的内存中检索数据并将其发送到显示器,正如这里回答所建议的那样。 此外,在这本书的第29页的图表中,我发现帧缓冲驱动程序位于实际图形设备之上,因此它必须需要与特定的视频卡驱动程序进行交互,例如,一个nVidia驱动程序。
但是当我谷歌搜索嵌入式设备的帧缓冲驱动程序编写时,结果显示好像该驱动程序直接负责与LCD联系,因此它看起来甚至低于视频卡驱动程序。
所以说,帧缓冲驱动程序实际上是视频卡驱动程序吗?
nouveau
驱动程序适用于NVIDIA显卡,它提供了KMS+fb功能,但在有限且常常不稳定的方式下也支持3D加速。正如之前提到的,只有少数常见接口可用,其中最突出的是VESA接口。在嵌入式设备上,可能没有专用的GPU,可以参考https://github.com/notro/fbtft/wiki中直接与LCD控制器通信的驱动程序示例。 - ypnos