本教程系列针对正点原子 i.MX6ULL 开发板,讲解如何从 NXP BSP 内核(6.12.x)迁移到 Linux 主线内核(7.0-rc4)。
| 文件 | 标题 | 说明 |
|---|---|---|
| 01_why_mainline.md | 为什么要折腾主线内核 | NXP BSP vs 主线内核的根本差异 |
| 02_env_setup.md | 从零开始搭建编译环境 | 依赖安装、工具链配置 |
| 03_source_fetch.md | 获取主线内核源码 | kernel.org 克隆、补丁应用 |
| 04_bsp_vs_mainline.md | BSP vs 主线深度对比 | DRM 显示子系统、设备树 binding 变化 |
| 05_defconfig.md | 主线内核配置 | defconfig 配置、关键选项说明 |
| 06_dts_migration.md | 设备树迁移 | OF graph 连接、sim2 节点补充 |
| 07_display_drm.md | DRM 显示系统移植 | LCD 驱动完整迁移指南 |
| 08_touch_gt9xx.md | 触摸屏移植 | GT9147/Goodix 驱动配置 |
| 09_network_dual_phy.md | 双网口移植 | FEC + KSZ8081 以太网配置 |
| 10_debug_tricks.md | 调试技巧 | dmesg 分析、设备树验证、DRM 调试 |
| 11_common_issues.md | 常见问题 | 报错速查表、GPIO 冲突解决 |
- 阅读 01_why_mainline.md 了解主线内核的优势和代价
- 跟随 02_env_setup.md 搭建编译环境
- 参考 03_source_fetch.md 获取主线源码并应用补丁
- 学习 04_bsp_vs_mainline.md 理解架构差异
- 按 05_defconfig.md 和 06_dts_migration.md 配置内核和设备树
- 参考 07_display_drm.md、08_touch_gt9xx.md、09_network_dual_phy.md 移植具体外设
- 使用 10_debug_tricks.md 调试问题
- 查阅 11_common_issues.md 解决常见报错
主线内核的 eLCDIF 驱动已迁移到 DRM 子系统,设备树写法从旧式的 display = <&display0> 变为 OF graph 的 port/endpoint 方式。
- 旧 BSP:
&lcdif { display = <&display0>; display0: display@0 { ... }; } - 主线:
panel: panel-dpi { ... port { panel_in: endpoint { ... }; }; }; &lcdif { port { lcdif_out: endpoint { ... }; }; }
主线内核的 imx6ul.dtsi 缺失 sim2 节点定义,移植时需要手动添加。
| 文件 | 说明 |
|---|---|
scripts/build_helper/build-mainline-linux.sh |
主线内核构建脚本 |
patches/linux_mainline/linux_mainline-feat-imx6ull_patches-20260322.patch |
完整移植补丁 |
driver/device_tree/alpha-board/linux/imx6ull_mainline_defconfig.template |
defconfig 模板 |
document/tutorial/kernel/mainline/mainline_imgrate.md |
LCD 驱动排查指南(原始参考) |
- 芯片:NXP i.MX6ULL (ARM Cortex-A7, 528MHz)
- 开发板:正点原子 i.MX6ULL
- 显示:7 寸 LCD (1024×600)
- 触摸:Goodix GT9147
- 网络:双 KSZ8081 PHY (RMII)
本教程系列遵循项目的整体许可协议。