DRM实例教程
DRM是一个显示驱动框架,也就是把功能封装成 open/close/ioctl 等标准接口,应用程序调用这些接口来驱动设备,显示数据。我们这里将从使用的角度来看看,怎么验证和使用DRM驱动。
DRM设备节点
DRM驱动会在/dev/dri下创建3个设备节点:
libdrm库
DRM驱动,对用户空间,提供了专门的的调用库libdrm.so,用户空间通过该库可以间接的调用和使用驱动。
打开设备
打开设备有专门的接口:drmOpen
检查DRM的能力
DRM的能力通过drmGetCap接口获取,用drm_get_cap结构描述:
使用示例:
检索Resource
Resource的获取需要两次,第一次,获取数量大小,第二次才真正获取具体的Resource。具体看这个函数:
Resource结构封装:
实例
获取Connector
_drmModeConnector描述结构:
示例:
Encoder
Encoder的结构描述:
示例:
crtc
CRTC结构描述:
FrameBuffer
创建DUMB Buffer
添加FB
准备map
做map操作:
CRTC的准备
drmModeGetCrtc
drmModeSetCrtc
绘制
具体的代码,可以参考how-to实例:
how-to代码实例