给MangoPi-MQ(麻雀)编译Tina系统,我踩过的那些坑(附补丁修复屏幕变暗问题)
给MangoPi-MQ麻雀编译Tina系统从环境搭建到屏幕修复的实战指南第一次拿到MangoPi-MQ这块小巧的开发板时我完全没想到会在系统编译上花费整整三天时间。作为全志D1s/F133平台的入门级开发板它本应是个友好的起点但官方文档的缺失和社区资料的碎片化让整个编译过程变成了一场踩坑马拉松。本文将分享我在环境配置、补丁应用、编译烧录过程中遇到的各种问题及解决方案特别是那个令人抓狂的屏幕变暗问题——通过分析设备树配置最终找到了完美的修复方法。1. 环境准备那些容易被忽略的依赖项在Ubuntu 20.04上搭建Tina系统的编译环境时官方文档列出的基础依赖往往不够全面。经过多次尝试我发现还需要以下关键组件# 基础编译工具链 sudo apt-get install build-essential bison flex python3-dev # 特定版本库要求 sudo apt-get install libncurses5-dev libssl-dev libxml-parser-perl # 32位兼容库关键 sudo apt-get install lib32z1 lib32stdc6常见问题排查表错误现象可能原因解决方案mkimage: not foundu-boot工具缺失安装u-boot-tools包编译中途卡在quilt补丁quilt工具版本不兼容使用quilt-0.65而非新版riscv64-unknown-linux-gnu-gcc: not found交叉编译器路径错误检查prebuilt目录权限特别提醒SDK解压后需要手动设置文件权限chmod -R 755 prebuilt/gcc/linux-x86/riscv/toolchain-thead-glibc/riscv64-glibc-gcc-thead_20200702/bin/*2. 补丁应用不仅仅是复制文件那么简单MangoPi-MQ社区提供的补丁包如mangopi_mq_20211216.tgz需要特别注意应用顺序先解压到SDK根目录检查关键配置文件是否覆盖正确diff -urN original/device/config/chips/d1/ patched/device/config/chips/d1/验证板级配置是否生效grep -r mangopi_mq device/config/chips/d1/configs/补丁修改的核心内容显示驱动配置lichee/brandy-2.0/u-boot-2018/.configCONFIG_LCD_SUPPORT_LQ101R1SX03y # 800x480屏 CONFIG_LCD_SUPPORT_WILLIAMLCDy # 480x272屏新增开发板定义文件device/config/chips/d1/configs/ ├── mangopi_mq_rgb480x272_rtp └── mangopi_mq_rgb800x480_gt9xx3. 编译过程中的坑与解决方案执行lunch选择配置时如果遇到选项不显示的问题# 必须先执行环境初始化 source build/envsetup.sh编译优化技巧首次编译建议单线程运行以捕获错误make -j1增量编译时可使用多线程加速make -j$(nproc)常见编译错误处理Python版本冲突# 强制使用python3 export PYTHONpython3内存不足导致OOM# 限制并行任务数 make -j4固件打包失败# 清理后重新打包 make clean pack4. 屏幕变暗问题的深度分析与修复这个诡异的现象表现为系统启动初期显示正常但约10秒后屏幕突然变暗/变蓝。通过分析内核日志和设备树发现问题根源设备树冲突分析// 原始配置sun20iw1p1.dtsi rgb18_pins_a: rgb180 { pins PD0,...,PD17; // PD17被复用为LCD数据线 function lcd0; }; // 同时存在DMIC配置 dmic_pins_a: dmic0 { pins PE17,PB11,PB10,PD17; // PD17又被用作DMIC数据 function dmic; };修复步骤修改板级设备树vi device/config/chips/d1/configs/mangopi_mq_rgb800x480_gt9xx/board.dts禁用DMIC模块dmic { status disabled; };重新编译内核并打包mkernel pack验证方法上电后通过串口监控内核消息dmesg | grep -i dmic使用万用表测量PD17引脚电平变化5. 烧录与调试实战技巧使用PhoenixCard工具烧录时有几点经验值得分享镜像选择完整系统镜像tina_d1-mangopi_mq_rgb800x480_gt9xx_uart0.img最小测试镜像tina_d1-mangopi_mq_rgb800x480_gt9xx_uart0_8m.img烧录模式选择普通启动卡选择启动模式量产烧录选择卡量产模式串口调试技巧# Linux下使用minicom minicom -D /dev/ttyUSB0 -b 115200 # Windows推荐使用MobaXterm启动异常排查表现象可能原因解决方法卡在boot0TF卡接触不良重新插拔或更换卡槽无uboot输出串口线序错误检查TX/RX交叉连接内核panic设备树不匹配检查board.dts配置记得第一次成功点亮屏幕时那种成就感完全抵消了之前几十次失败的沮丧。MangoPi-MQ虽然小巧但全志Tina系统的可玩性确实令人惊喜。建议大家在修改设备树前先备份原文件毕竟——你永远不知道下一个坑会出现在哪里。