系列文章请扫关注公众号!

本文主要包括部分:
- 显示虚拟化场景
- DRM架构
2.1 DRM简介(Direct Rendering Manager)
2.2 高通SDM驱动
- Multiple-drm-cards方案
3.1 介绍
3.2 Qcom驱动框架解析
3.3 高通及MTK平台支持情况
3.4 方案的实现
- 显示虚拟化场景
对于Linux和Android来说,只要是多屏(>=2)显示的场景都可以显示虚拟化。只是大部分场景对显示稳定性没有要求,系统异常了就都不显示了。但对于容器相关方案,或要求显示隔离的场景,是需要进行显示虚拟化的。
比如目前比较火的新能源智能座舱系统,使用轻量级容器方案时,仪表和中控是共用一个kernel内核的。IVI中控系统一般是高度定制化的Android,Cluster仪表系统一般是Linux库环境或 Android Native环境。此时就要求IVI系统和Cluster系统的显示部分不能互相影响,需要对显示部分进行虚拟化。
一般的Android系统或Linux系统自带的SDK包是不支持虚拟化的,需要跟芯片厂商共同调试,实现kernel层的/dev/dri/card的虚拟化。
对于使用高通8155等重量级虚拟化Hypervisor的方案,底层也是对同一个显卡硬件进行了虚拟化,只是芯片厂做好了。
- DRM框架
2.1 DRM简介(Direct Rendering Manager)
传统linux显示设备驱动开发时,通常使用FB驱动架构,随着显卡性能升级:显示覆盖(菜单层级)、GPU加速、硬件光标,传统FB架构无法很好支持,此外,对于多应用的访问冲突也无法很好控制。在这样的背景下,DRM应用而生。
DRM(Direct Rendering Manager)即直接渲染管理器,是linux内核中负责与显卡交互的管理架构,用户空间很方便的利用DRM提供的API,实现3D渲染、视频解码和GPU计算等工作。
DRM为了解决多个程序对 显卡资源的协同使用问题而产生的。

图2.1 DRM图形显示框架总览
libdrm


1597

被折叠的 条评论
为什么被折叠?



