# 从零构建创龙T113开发板的Buildroot系统镜像全流程指南
在嵌入式开发领域,快速构建一个轻量级、高度定制的Linux系统镜像对于产品开发至关重要。创龙科技的T113系列开发板凭借其出色的性价比和丰富的接口资源,成为众多嵌入式项目的首选平台。本文将带你从零开始,一步步完成Buildroot系统镜像的完整构建过程,涵盖环境准备、SDK配置、常见问题解决到最终镜像烧录的全流程。
1. 环境准备与SDK获取
在开始编译之前,我们需要确保主机环境满足基本要求。推荐使用Ubuntu 20.04 LTS作为开发环境,这是大多数嵌入式SDK验证过的稳定版本。
1.1 系统依赖安装
首先安装必要的构建工具链和依赖库:
sudo apt update sudo apt install -y build-essential git python2.7 python3 bison flex gettext texinfo zlib1g-dev g++-multilib libncurses5-dev libssl-dev unzip gawk wget cpio
注意:虽然Ubuntu 20.04默认使用Python 3,但部分SDK仍依赖Python 2.7。可以通过以下命令创建符号链接:
sudo ln -s /usr/bin/python2.7 /usr/bin/python
1.2 获取创龙T113 SDK
创龙官方提供了完整的Linux SDK包,通常以压缩包形式分发:
- 从创龙官网下载
LinuxSDK-v1.2.tar.gz - 解压到工作目录:
tar -xzvf LinuxSDK-v1.2.tar.gz -C ~/t113_sdk cd ~/t113_sdk/T113-i_v1.0
1.3 解压Buildroot dl包
Buildroot在编译过程中会下载大量第三方软件包,为加速首次编译,创龙提供了预下载的dl包:
tar -xzvf buildroot_dl.tar.gz -C dl
2. SDK配置与初始化
2.1 清理编译环境
在开始新编译前,建议先清理可能存在的中间文件:
./build.sh distclean
2.2 开发板配置
T113 SDK支持多种硬件配置,针对TLT113-MiniEVM_V1.2开发板,执行:
./build.sh config
配置过程中需要选择:
- 处理器型号:Allwinner T113
- 开发板型号:tlt113-minievm-nand
- 文件系统类型:Buildroot
- 显示输出接口(根据实际外设选择)
常见问题:如果遇到Python版本错误,请确认/usr/bin/python指向Python 2.7
2.3 初始化编译环境
加载环境变量和工具链路径:
source ./build/envsetup.sh
3. 构建系统镜像
3.1 开始编译
执行完整构建命令:
./build.sh
编译过程可能需要1-3小时,取决于主机性能。构建过程分为几个主要阶段:
- 工具链编译(交叉编译器、binutils等)
- Linux内核编译
- Buildroot根文件系统构建
- 最终镜像打包
3.2 常见编译错误解决
在实际编译中可能会遇到以下典型问题:
问题1:gdbus相关编译错误
gdbusauth.c:1302:11: error: '%s' directive argument is null
解决方案:修改相应源代码,确保字符串参数有效。
问题2:awk脚本语法错误
'#' is not a known regexp operator
需要修改以下文件中的正则表达式:
- mkerrnos.awk
- mkerrcodes.awk
- mkerrcodes1.awk
- mkerrcodes2.awk
- mkstrtable.awk
将sub(/#.+/, "");改为sub(/#.+/, "");
问题3:缺失errnos-sym.h文件
从其他渠道获取合法的errnos-sym.h内容,放置到:
out/t113_i/tlt113-minievm-emmc/longan/buildroot/build/libgpg-error-1.33/src
4. 编译输出与镜像烧录
4.1 生成镜像文件
成功编译后,生成的系统镜像位于:
out/t113_i/tlt113-minievm-nand/longan/tina_tlt113-minievm-nand_uart0.img
主要输出文件包括:
- 内核镜像:
boot.img - 根文件系统:
rootfs.img - 完整系统镜像:
tina_*.img
4.2 镜像烧录方法
创龙提供了多种烧录方式,推荐使用PhoenixSuit工具:
- 安装PhoenixSuit驱动
- 开发板进入FEL模式(按住FEL键上电)
- 运行PhoenixSuit选择镜像文件
- 开始烧录,等待完成
4.3 首次启动配置
首次启动系统时,建议进行以下操作:
- 扩展文件系统分区:
resize2fs /dev/mmcblk0p2 - 设置root密码:
passwd root - 配置网络接口
5. Buildroot定制与优化
5.1 软件包管理
Buildroot提供了丰富的软件包选择,可以通过menuconfig界面进行配置:
make menuconfig
主要配置项包括:
- Target packages:添加/删除应用程序
- Toolchain:调整编译器选项
- System configuration:设置系统参数
5.2 添加自定义软件包
对于项目特定的软件,可以创建自定义包:
- 在
package/目录下新建包目录 - 创建
Config.in和文件.mk - 更新顶层
Config.in包含新包
5.3 系统优化技巧
- 减小镜像尺寸:在
make menuconfig中启用BR2_TARGET_ROOTFS_SQUASHFS - 加速编译:配置
BR2_JLEVEL启用多核编译 - 离线编译:完整编译一次后备份
dl/目录
6. 开发调试技巧
6.1 串口调试配置
T113开发板通常通过UART0提供控制台输出,建议配置:
screen /dev/ttyUSB0
常用调试命令:
dmesg:查看内核日志logread:查看系统日志top:监控系统资源
6.2 网络文件系统(NFS)挂载
为加速开发测试,可配置NFS根文件系统:
- 主机端导出目录:
echo "/nfsroot *(rw,sync,no_subtree_check)" >> /etc/exports exportfs -a - 修改内核启动参数:
root=/dev/nfs nfsroot=:/nfsroot ip=dhcp
6.3 内核调试技巧
- 启用kgdb:
echo g > /proc/sysrq-trigger - 使用ftrace:
echo function > /sys/kernel/debug/tracing/current_tracer cat /sys/kernel/debug/tracing/trace_pipe
在实际项目中,我发现最耗时的往往是解决依赖问题和交叉编译错误。建议在开始前完整阅读SDK文档,并准备好相应的开发环境。遇到编译错误时,仔细阅读错误信息,大部分问题都能通过搜索引擎找到解决方案。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/270723.html