libdrm全解析一 —— 总述

本文参考以下博文:

Linux libdrm代码完全解析

LIBDRM使用

最简单的DRM应用程序 (single-buffer)

Linux libdrm库入门教程

10. DRM图形显示框架

LIBDRM

特此致谢!

一、介绍

  • BLFS中给出的介绍

libdrm提供了一个用户空间库,用于访问支持ioctl接口的操作系统上的直接呈现管理器(DRM)。libdrm是一个低级级别库,通常由图形驱动(程序)使用,如Mesa DRI驱动(程序)、X驱动(程序)、libva和类似项目。

libdrm是一个用户空间库,用于在Linux、BSD以及其它支持ioctl接口的操作系统上访问DRM(Direct Rendering Manager,直接渲染管理器)。该库为ioctl提供了包装函数,以避免直接暴露内核接口,并为具有drm内存管理器的芯片集提供了跟踪重定位和缓冲区的支持。

内核DRM驱动程序中的新功能通常需要一个新的libdrm,但新的libdrm总是可以与旧的内核一起使用。

libdrm是一个低级库,通常由图形驱动(程序)使用,例如:Mesa驱动(程序)、X驱动(程序)、libva和类似项目。

libdrm在系统中所处的层次位置如下所示:

二、作用

作为DRM框架中的一份子即组成部分之一,libdrm对底层接口进行封装,主要是对各种ioctl接口进行封装,向上层提供通用的API接口。用户或应用程序在用户空间调用libdrm提供的库函数,即可访问到显示的资源,并对显示资源进行管理和使用。

这样通过libdrm对显示资源进行统一访问,libdrm将命令传递到内核最终由DRM驱动接管各应用的请求并处理, 可以有效避免访问冲突。

libdrm基于DRI协议,通过ioctl与2D图显驱动进行交互,配置图显处理器以及HDMI、MIPI、LVDS等接口。

相关推荐
jim写博客10 分钟前
Linux进程概念(四)环境地址变量
linux·运维·服务器
稚辉君.MCA_P8_Java16 分钟前
豆包 Java的23种设计模式
java·linux·jvm·设计模式·kubernetes
Nie_Xun1 小时前
ubuntu网络共享
linux·运维·ubuntu
花小璇学linux2 小时前
imx6ull-驱动开发篇22——Linux 时间管理和内核定时器
linux·运维·驱动开发
你好,赵志伟3 小时前
Socket 编程 TCP
linux·服务器·tcp/ip
Liang_GaRy4 小时前
心路历程-三个了解敲开linux的大门
linux·运维·服务器
一只栖枝8 小时前
华为 HCIE 大数据认证中 Linux 命令行的运用及价值
大数据·linux·运维·华为·华为认证·hcie·it
wuicer10 小时前
ubuntu 20.04 安装anaconda以及安装spyder
linux·运维·ubuntu
cui__OaO12 小时前
Linux软件编程--线程
linux·开发语言·线程·互斥锁·死锁·信号量·嵌入式学习
小狗爱吃黄桃罐头12 小时前
正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
linux·驱动开发·学习