6.3.2.1. menuconfig配置
6.3.2.1.1. 使能显示模块驱动
参考:快速入门 - 编译概述 - Kernel配置,进入 kernel 的功能配置,使能显示模块驱动:
Linux
Device Drivers
Graphics support
ZX Graphics --->
<*> ZX Framebuffer support
6.3.2.1.2. 编译显示接口
使能显示模块的驱动后,需要将显示接口编译进内核。
<*> ZX Framebuffer support
[*] ZX display rgb support
[*] ZX display lvds support
[*] ZX display mipi-dsi support
可以将三个显示接口都编译进内核,但系统运行时,只有 panel 驱动所对应的显示接口能生效。
6.3.2.1.3. 选择panel
Openwrt sdk 不仅为 RGB/LVDS 等显示接口提供了通用的 panel 驱动,也为部分屏驱 IC 提供专用 panel 驱动。
选择特定的 panel 驱动,要先使能 panel 对应的显示接口和 pwm-backlight,否则 panel 在 menuconfig 中不可见。
<*> ZX Framebuffer support
<*> ZX Panel Drivers (ZX general RGB panel) --->
6.3.2.1.4. 使能背光
显示模块驱动使用 pwm-backlight 框架进行背光控制
使能 PWM
Device Drivers
[*] Pulse-Width Modulation (PWM) Support --->
<*> ZX PWM support
使能 pwm-backlight
Device Drivers
Graphics support
Backlight & LCD device support
<*> Lowlevel Backlight controls
<*> Generic PWM based Backlight Driver
6.3.2.1.5. 驱动依赖项
显示模块驱动依赖 CMA 和 DMA-BUF 功能。
6.3.2.1.5.1. 配置CMA
参考快速入门 - 编译概述 - Kernel配置,使能 CMA:
Linux
Memory Management options
[*] Contiguous Memory Allocator
配置 CMA 内存区域的大小,在内核配置的另一个地方,以下配置为 12MB:
Linux
Library routines
[*] DMA Contiguous Memory Allocator
(12) Size in Mega Bytes
小技巧
CMA 内存区域无法随意设置大小, Size 需要 4M 对齐。
Linux 启动时会对 CMA size 进行 4M 对齐,对齐操作与 CONFIG_FORCE_MAX_ZONEORDER 设置相关。 ZX 平台上,该配置为 11,意思为一次最大分配内存为 2^10 pages,即 4M。
6.3.2.1.5.2. 使能 DMA-BUF
参考快速入门 - 编译概述 - Kernel配置,进入 kernel 的功能配置,按如下选择:
Linux
Device Drivers
DMABUF options
[*] Explicit Synchronization Framework
[*] Sync File Validation Framework
[*] userspace dmabuf misc driver
[*] DMA-BUF Userland Memory Heaps
[*] DMA-BUF CMA Heap