保姆级教程:在Ubuntu 18.04上为爱芯元智AX630A编译Linux系统镜像(含完整依赖包清单)
从零构建AX630A嵌入式Linux系统的全流程实战指南
当第一次拿到爱芯元智AX630A开发板时,许多开发者都会面临一个共同挑战:如何快速搭建起完整的Linux开发环境?不同于常见的树莓派或Jetson系列,这款国产AI芯片的开发环境配置有着自己独特的工具链和依赖要求。本文将带你从一台干净的Ubuntu 18.04主机开始,逐步完成从环境配置到镜像烧录的全过程,特别针对那些容易导致编译失败的依赖项进行重点说明。
1. 开发环境的基础配置
在开始AX630A的SDK编译之前,我们需要确保Ubuntu系统具备所有必要的编译工具和库文件。Ubuntu 18.04作为长期支持版本,其软件仓库中的包版本与AX630A SDK有着最佳的兼容性。以下是分步骤的环境准备指南:
1.1 系统级依赖安装
执行以下命令安装基础编译工具链和32位兼容库:
sudo apt-get update && sudo apt-get install -y \ build-essential \ make \ gcc \ g++ \ gdb \ libgcc1 \ u-boot-tools \ device-tree-compiler对于嵌入式开发特别关键的32位兼容库,需要单独安装:
sudo apt-get install -y \ libc6:i386 \ lib32stdc++6 \ lib32z1提示:如果在安装过程中遇到"无法定位软件包"错误,请先执行
sudo dpkg --add-architecture i386启用32位架构支持
1.2 内核编译专用工具
Linux内核编译需要一组特定的工具链,这些工具往往容易被忽略:
| 工具名称 | 作用 | 安装命令 |
|---|---|---|
| bison | 语法分析器生成器 | sudo apt-get install bison |
| flex | 词法分析器生成器 | sudo apt-get install flex |
| ncurses | 终端界面库 | sudo apt-get install libncurses5-dev ncurses-term libncursesw5-dev |
| openssl | 加密支持 | sudo apt-get install libssl-dev openssl |
1.3 Shell环境配置
AX630A的编译脚本对shell环境有特殊要求,需要将默认的dash切换为bash:
sudo dpkg-reconfigure dash在出现的对话框中选择"No",保持系统使用bash作为默认shell。
2. 交叉编译工具链部署
AX630A采用ARM Cortex-A53架构,需要在x86主机上安装对应的交叉编译工具链。Linaro提供的GCC 7.5版本与AX630A SDK兼容性最佳。
2.1 工具链下载与安装
创建专用目录并下载工具链:
sudo mkdir -p /usr/local/ARM-toolchain cd /usr/local/ARM-toolchain sudo wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz sudo tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz2.2 环境变量配置
将工具链路径添加到系统环境变量中:
echo 'export PATH="/usr/local/ARM-toolchain/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/:$PATH"' | sudo tee -a /etc/profile source /etc/profile验证安装是否成功:
aarch64-linux-gnu-gcc -v正常情况应显示类似以下版本信息:
gcc version 7.5.0 (Linaro GCC 7.5-2019.12)3. SDK解压与内核准备
爱芯元智提供的SDK包包含了uboot、内核以及各种外设驱动,是整个开发环境的核心。
3.1 SDK解压流程
将获取到的SDK压缩包传输到Ubuntu系统后,执行解压操作:
tar -xvf AX630A_SDK_V1.50.0_20220328180857_NO1097.tgz cd AX630A_SDK_V1.50.0_xxxxx ./sdk_unpack.sh注意:执行此脚本需要保持网络连接,因为它会自动下载Linux内核源码并打补丁
3.2 手动内核配置(可选)
如果网络环境受限,可以预先下载好内核源码:
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.125.tar.gz ./sdk_unpack.sh ~/linux-4.19.125.tar.gz4. 系统镜像编译与生成
进入SDK的build目录,开始正式的编译过程:
cd AX630A_SDK_V1.50.0_xxxxx/build make p=AX630A_demo clean all install axp编译过程可能会持续20-60分钟,取决于主机性能。成功编译后会在build目录下生成out文件夹,其中包含以下关键文件:
AX630A_demo/:包含所有生成的镜像文件fdl1.bin:第一阶段引导加载程序fdl2.bin:第二阶段引导加载程序u-boot.bin:U-Boot引导程序boot.img:内核和initramfsrootfs.img:根文件系统
AX630A_demo_vX.X.X_xxxxxxxxxx.axp:打包好的完整系统镜像
5. 镜像烧录到eMMC存储
AX630A开发板支持从eMMC启动,我们需要将编译好的系统镜像烧录到板载存储中。
5.1 Windows端工具准备
从SDK的
tools/pc_tools/目录获取:Driver_V1.20.46.1.7z:USB驱动AXDL.exe:烧录工具
解压驱动包并安装驱动程序
将AXDL工具解压到方便访问的目录
5.2 开发板进入烧录模式
- 找到开发板上的拨码开关S1,将第5位拨到右侧
- 按住SW2按键不松开
- 按下SW1按键一次
- 通过USB线连接开发板与电脑
5.3 使用AXDL工具烧录
- 运行AXDL.exe
- 点击工具栏的"axp加载"按钮,选择生成的.axp文件
- 点击"设置"按钮,确认各项参数
- 在Options页面勾选"Uart Download"和"Upgrade Frequency"
- 点击"开始"按钮后给开发板上电
烧录过程通常需要3-5分钟,进度条会显示当前状态。完成后开发板会自动重启进入新系统。
6. 常见问题排查指南
在实际操作过程中,可能会遇到以下典型问题:
问题1:编译时提示缺少头文件
- 原因:某些开发库未安装完整
- 解决:根据错误信息安装对应的-dev包,例如:
sudo apt-get install zlib1g-dev
问题2:工具链命令未找到
- 原因:环境变量未正确加载
- 解决:重新执行
source /etc/profile或重启终端
问题3:烧录工具无法识别设备
- 检查步骤:
- 确认驱动程序已正确安装
- 确保开发板进入了正确的下载模式
- 尝试更换USB端口或数据线
问题4:内核编译卡死
- 可能原因:主机内存不足
- 解决方案:增加swap空间或使用
make -jN中的N调小并行编译任务数
对于更复杂的问题,建议查看SDK目录下的doc/文件夹中的技术文档,或联系爱芯元智的技术支持团队。
