国内开发板行业痛点
| 类别 | 痛点 | 具体表现 | 对应影响 |
|---|---|---|---|
| 客户端痛点 | Demo 与量产鸿沟 | 开发板能跑 Demo,但换芯片/屏/外设就无法量产 | 工程师项目推进受阻,开发周期长 |
| 客户端痛点 | BSP 质量参差不齐 | Kernel、DTS、驱动魔改严重,升级难 | Debug 难,换人维护成本高 |
| 客户端痛点 | 资料不落地 | 原理图、文档只支持 Demo,缺少注释 | 量产和定制化难以直接操作 |
| 板厂痛点 | 利润低、服务高 | 板子毛利低,但客户要求技术支持和定制 | 工程师被迫承担大量售后 |
| 板厂痛点 | 芯片 SDK 不稳定 | SDK bug 多,版本差异大 | 板厂很多问题也源于芯片层面 |
| 板厂痛点 | 客户分化严重 | 大客户要求高,小客户量少但需求多 | 管理成本高,项目难标准化 |
| 行业结构性 | 缺乏标准化 | 客户经常改硬件和软件 | 板子复用率低,研发效率差 |
| 行业结构性 | 软件依赖个人经验 | 时序、电源、内核驱动靠工程师经验 | 知识复用率低,新人上手慢 |
| 行业结构性 | 生态碎片化 | 多芯片、多平台、多系统 | 开发成本高,维护难度大 |
硬件设计无显示接口
硬件没有设计显示接口和设计了显示接口没有接屏幕有区别吗
| 场景 | 内核视角 | DRM 视角 | Android 视角 |
|---|---|---|---|
| ❌ 硬件根本没设计显示接口 | 没有 encoder / connector | 没有任何 connected connector | SurfaceFlinger 起不来 |
| ⚠️ 设计了接口但没接屏 | 接口节点存在 | connector = disconnected | 有时能起,但极不稳定 |
| ✅ 设计接口 + 接屏 | 正常 | connected | 正常 |
| ✅ Dummy Display | 虚拟 connector | connected | 最稳定方案 |
在显示子系统里,硬件状态指的是物理电路和接口的存在情况,主要包括以下几个部分:
- PHY 电路(物理层):负责将视频信号输出,比如 HDMI PHY、MIPI DSI PHY。
- 驱动时钟和电源:显示控制器、PHY 都需要时钟和电源。
- 走线和接口芯片:HDMI / eDP / DSI 的电气线路和接口芯片。
- 检测信号:HPD(Hot Plug Detect)或 DSI / LVDS handshake 用于告知操作系统屏幕是否存在
三种方案硬件状态对比
| 硬件元素 | 有接口没接屏 | 没接口强开 | Dummy Display |
|---|---|---|---|
| PHY 电路 | ✅ 存在 | ❌ 不存在 | ❌ 不存在 |
| 控制器 / VOP | ✅ 存在 | ✅ 存在 | ✅ 存在 |
| 接口线路 | ✅ 布线在 PCB 上 | ❌ 不存在 | ❌ 不存在 |
| HPD / 信号检测 | ⚠️ 低(没屏) | ❌ 无 | 虚拟存在(内核/DRM 模拟) |
| Panel / LCD | ❌ 没接屏 | ❌ 没有 | ✅ Dummy panel |
| 驱动电源 / 时钟 | ✅ 可开 | ❌ 不完整或不存在 | ✅ Dummy 使用 VOP 时钟即可 |
| I/O 连通性 | ❌ 局部通 | ❌ 无法连通 | 虚拟通路 |
| connector probe 成功率 | ✅ 内核能识别 | ❌ Probe 失败 | ✅ Probe 成功(虚拟) |
为什么Rockchip官方不再支持虚拟屏
安全性和可靠性
- Android 13 对 SurfaceFlinger / HWComposer 更严格
- 无物理接口 + 虚拟接口容易出现:
- CRTC 创建失败
- primary plane 找不到
- rockchip-vop2 … No primary plane find for video_port0
简化维护成本
- RK3562 官方 BSP 面向有屏设备
- 去掉 Dummy Display 可以减少测试和 bug
量产产品逻辑
- 官方默认只考虑 HDMI / DSI / LVDS / eDP
- 没有屏幕的设备通常改用 Linux