这篇文章主要是回答一个同学的问题,当然也是一个总结。相信很多关注我账号的人也做过LCD相关的驱动或者系统开发,即使不是我专攻LCD,但是在开发过程中难免会遇到这样那样的问题。于是找了几篇关于drm的好文章分享给大家。Linux是一个非常模块化的系统,每个子系统都有自己的特点。学习的时候,最好分门别类地学习。Linux的2种显示方案包括:FBDEV:FramebufferDeviceDRM/KMS:DirectRenderingManager/KernelModeSetting它们有什么区别?FBDEV:传统展示框架;简单,但只能提供最基本的显示功能;无法满足当前上层应用和底层硬件的显示需求;DRM/KMS:目前主流的显示方案;为了适应现在日益更新的显示硬件;该软件可以支持更高级的控件和功能;简单的说,FBDEV已经不能满足时代的发展需要了,然后就有了一个东西叫DRM,DRM,英文全称是DirectRenderingManager,即直接渲染管理器。它的创建是为了解决多个程序协同使用显卡资源的问题。它为用户空间提供了一组API来访问和操作GPU。DRM是内核级设备驱动程序,可以编译到内核中或作为标准模块加载。DRM最早出现在FreeBSD中,后来被移植到Linux系统中,成为Linux系统的标准部分。DRM可以直接访问DRM客户端的硬件。DRM驱动程序处理DMA、内存管理、资源锁定和安全硬件访问。为了同时支持多个3D应用,3D显卡硬件必须作为共享资源使用,所以需要锁来提供互斥访问。DMA传输和AGP接口用于向显卡硬件发送图形操作的缓冲区,因此需要防止客户端未经授权访问显卡硬件。LinuxDRM层用于支持那些复杂的图形设备,这些设备通常包含可编程管线,非常适合3D图像加速。内核中的DRM层使得这些显卡驱动更容易进行内存管理、中断处理和DMA操作,可以为上层应用提供统一的接口。FBDEV测试程序/**版权所有(C)2011TheAndroidOpenSourceProject**根据ApacheLicense,Version2.0(“许可证”)获得许可;*您可能不使用此文件,除非不符合许可证。*您可能获取许可证的副本**http://www.apache.org/licenses/LICENSE-2.0**除非适用法律要求或书面同意,否则软件*根据许可证分发是基于“ASIS”分发的,*没有任何明示或暗示的保证或条件。*请参阅许可证以了解特定语言的管理权限和*许可证下的限制。*/#include
