RK3588 kernel-6.1:drivers/video 作用、解决的问题与结构说明

RK3588 kernel-6.1:drivers/video 作用、解决的问题与结构说明

源码基准:/home/cp/work2/SeagullYpcEncode/rk3588/kernel-6.1/drivers/video/
说明:现代桌面 GPU 的主路径多在 drivers/gpu/drm/drivers/video 仍以 帧缓冲(fbdev)、背光、文本控制台(fbcon)、显示模式辅助 以及 本树中体量很大的 Rockchip 多媒体/2D 加速子树 为主。

内核图形菜单在 drivers/video/Kconfig 中汇总:APERTURE、引用 drivers/gpu/drm 等;本文聚焦 drivers/video 目录本体


1. 代码的作用(总体)

子目录/模块 作用
fbdev/ 帧缓冲设备(/dev/fb0:为应用程序提供 统一像素缓冲接口(ioctl mmap);内含 fbmem.c 核心 与各 SoC/PCI/VGA 简易驱动
backlight/ 背光/LCD 类设备backlight sysfs、PWM/GPIO/WLED 等调节亮度
console/CONFIG_VT 帧缓冲控制台(fbcon) 等:内核 printk / 文本 VT 输出到 framebuffer
logo/CONFIG_LOGO 启动 企鹅等 logo 写入 fb
videomode.cdisplay_timing.cof_*.cCONFIG_VIDEOMODE_HELPERS DT display-timings 解析、videomode 换算,供 fb/simpledrm/部分 DRM 面板驱动复用
aperture.chdmi.cvgastate.c 显存窗口(aperture)移交HDMI 通用 EDID 等辅助(按配置)、VGA 状态
rockchip/(本 RK SDK 树 obj-y Rockchip 专用RGA/RGA2/RGA3(2D 合成与缩放)RVEIEPMPP(视频编解码服务入口)车载 camera/display(vehicle)vtunneldvbm

2. 解决了什么问题

2.1 通用部分(fbdev / backlight / console)

问题 解决办法
应用如何在不绑定特定 GPU 驱动的情况下画屏 /dev/fb* + mmap,尤其在 无 DRM/KMS 的老嵌入式 上几乎是唯一简单路径
内核早期与救援 shell 需要图形或帧缓冲文本输出 fbconVTfb 绑定
LCD 亮度与电源序列 backlight/lcd class drivers:PWM、PMIC、GPIO
面板时序从设备树统一描述 videomode/display_timing helpers,减少各驱动重复解析 DT

2.2 与 DRM 的关系(避免混淆)

  • 新平台上桌面/Wayland/Android HWComposer 主流使用 DRM/KMSdrivers/gpu/drm)。
  • fbdev 仍常见于:boot splash、简单 Qt/EGLFS fb、遗留驱动;部分系统 DRM fbdev emulation(CONFIG_DRM_FBDEV_EMULATION 提供 /dev/fb0 兼容层,并非必须由 drivers/video/fbdev 提供物理 fb。

2.3 Rockchip 子树(RK3588 相关)

模块 典型用途
MPP 视频硬件编解码调度(与 /dev/mpp_service 类接口配合用户态堆栈)
RGA / RGA2 / RGA3 2D 图像缩放、格式转换、合成,减轻 CPU
IEP 图像增强处理(Image Enhancement Processor)
RVE Rockchip vendor 图像/矢量加速模块,能力以硬件配置表和配套 UAPI 为准
vehicle 车载多路视频输入/显示链路(serializer、ISP、flinger 等)
vtunnel 虚拟显示隧道(源码注释与 Kconfig 为准)

这些是 芯片多媒体/display pipeline 的内核侧支撑,与单纯「帧缓冲」不同,但历史上落在 drivers/video/rockchip 目录下维护。


3. Makefile 链接关系(节选)

1
2
3
4
5
6
obj-$(CONFIG_VT)          += console/
obj-$(CONFIG_LOGO) += logo/
obj-y += backlight/
obj-y += rockchip/
obj-y += fbdev/
obj-$(CONFIG_VIDEOMODE_HELPERS) += display_timing.o videomode.o ...

rockchip/backlight/fbdev/ 在本 Makefile 中为 obj-y:是否最终进内核映像仍取决于 各子目录内 obj-$(CONFIG_*)(未选中的驱动不会链接)。


4. RK3588 集成要点

  • 显示输出:RK3588 产品常见 DRM(如 rockchipdrmdrivers/gpu/drmdrivers/video 侧可能仍编 fbdev 兼容背光RGA/MPP
  • 多媒体:编解码除 staging rkvdec 外,MPP 路径 常与 drivers/video/rockchip/mpp 协同(具体节点名与 ABI 以 SDK 文档为准)。
  • 裁剪内核时:勿误以为删掉整个 drivers/video 即可,需确认 fbcon/logo/backlight/MPP 是否仍被根文件系统或引导依赖。

5. 小结表

维度 内容
作用 fbdev 框架与驱动背光fbcon/logo显示时序辅助RK SDK 加 Rockchip 多媒体与车载大块代码
解决的问题 统一像素缓冲访问内核控制台显示背光抽象DT 时序复用RK 侧 2D/编解码/车载 pipeline
与 DRM 现代显示优先看 DRMvideo 侧重 fbdev 生态与 RK 扩展

6. 延伸阅读

  • Documentation/fb/framebuffer.rst
  • Documentation/gpu/index.rst(DRM 体系)

文章互动

阅读 --

留言

0 条留言

正在加载留言…