当前位置: 首页 > news >正文

保姆级教程:在Ubuntu 18.04上为爱芯元智AX630A编译并烧录Linux系统到eMMC

从零构建:AX630A开发板Linux系统编译与eMMC烧录全指南

第一次拿到爱芯元智AX630A开发板时,那种兴奋与忐忑交织的感觉至今记忆犹新。作为一款面向边缘计算的高性能AIoT芯片平台,AX630A的强大算力与丰富接口为开发者提供了广阔的创新空间。然而,当真正开始着手构建开发环境时,复杂的交叉编译工具链、繁琐的依赖项配置以及烧录过程中的各种"坑",往往会浇灭初学者的热情。本文将带你一步步走过这段旅程,从Ubuntu环境准备到最终系统烧录,每个环节都配有详细的操作说明和问题排查指南。

1. 开发环境搭建:Ubuntu 18.04基础配置

1.1 系统准备与依赖安装

Ubuntu 18.04作为长期支持版本,其稳定性和兼容性使其成为嵌入式开发的理想选择。在开始前,请确保:

  • 系统已更新至最新补丁:sudo apt update && sudo apt upgrade -y
  • 拥有稳定的网络连接(某些依赖包体积较大)
  • 磁盘空间充足(建议预留至少50GB)

依赖安装是第一个容易出错的环节。原始文档中列出的23个依赖项看似繁琐,实则各有其用:

# 基础编译工具链 sudo apt install -y build-essential make gcc g++ gdb # 32位兼容库(部分工具链需要) sudo apt install -y libc6:i386 lib32stdc++6 lib32z1 # 内核编译相关 sudo apt install -y libncurses5-dev ncurses-term libncursesw5-dev # 其他必要工具 sudo apt install -y u-boot-tools texinfo texlive gawk zlib1g-dev \ libssl-dev openssl bc bison flex device-tree-compiler

提示:执行dpkg-reconfigure dash时选择"No",确保系统使用bash而非dash作为默认shell,避免脚本兼容性问题。

1.2 交叉编译工具链配置

AX630A采用ARM Cortex-A53架构,需要专用的交叉编译工具。Linaro提供的GCC 7.5版本经过验证与AX630A SDK兼容良好:

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.xz

环境变量配置是关键步骤,错误的PATH设置会导致后续编译失败:

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)

2. SDK获取与解压:避开源码管理的坑

2.1 SDK包处理

AX630A SDK通常以.tgz压缩包形式提供,解压前需注意:

  • 使用root权限操作(sudo su切换)
  • 确保磁盘空间足够(完整解压后约15-20GB)
  • 网络稳定(部分组件需要在线下载)
tar -xvf AX630A_SDK_V1.50.0_20220328180857_NO1097.tgz cd AX630A_SDK_V1.50.0_xxxxx ./sdk_unpack.sh

常见问题及解决方案:

问题现象可能原因解决方法
解压失败文件损坏重新下载并校验MD5
sdk_unpack.sh权限不足文件属性错误chmod +x sdk_unpack.sh
内核下载超时网络问题手动下载后指定路径

2.2 内核源码的两种获取方式

方法一:自动下载(推荐新手)

./sdk_unpack.sh

脚本会自动获取Linux 4.19.125内核并打补丁

方法二:手动指定路径(适合有本地副本时)

./sdk_unpack.sh ~/path/to/linux-4.19.125.tar.gz

注意:部分企业内网环境可能屏蔽官方内核仓库,此时方法二更为可靠。内核源码可从kernel.org或国内镜像站获取。

3. 系统编译:从配置到生成axp包

3.1 编译前检查

进入build目录前,建议确认:

  • 环境变量$PATH包含交叉编译工具链
  • 当前用户对SDK目录有读写权限
  • 系统时间准确(影响文件时间戳)
cd AX630A_SDK_V1.50.0_xxxxx/build make p=AX630A_demo clean

3.2 完整编译流程

完整编译命令看似简单,但背后涉及uboot、内核、根文件系统等多个组件的协同:

make p=AX630A_demo all install axp

关键阶段解析:

  1. uboot编译:生成引导加载程序
  2. 内核编译:构建定制化Linux内核
  3. 文件系统打包:集成基础环境
  4. axp生成:将所有组件打包为烧录镜像

编译成功标志:

Build completed successfully! Generated AX630A_demo_vX.X.X_xxxxxxxxxx.axp in out directory

常见编译错误处理:

  • 头文件缺失:检查依赖是否安装完整
  • 权限不足:确保使用root或sudo执行
  • 内存不足:添加交换空间或关闭其他程序

4. 烧录实战:从Windows到eMMC

4.1 驱动安装与硬件准备

AX630A支持USB和UART两种烧录方式,硬件连接要点:

  1. 使用Type-C线连接开发板与PC
  2. 设置启动模式拨码开关:
    • S1第5位拨到右侧
    • 按住SW2不放
    • 按下SW1一次后松开
  3. 观察电源灯状态确认进入下载模式

驱动安装路径:

SDK包/tools/pc_tools/Driver_V1.20.46.1.7z

重要:Windows 10/11可能需要禁用驱动程序强制签名

4.2 AXDL工具使用详解

烧录工具位于:

SDK包/tools/pc_tools/AXDL.exe

操作流程:

  1. 启动AXDL,点击"加载"选择.axp文件

  2. 设置页面检查自动解析的文件:

    • fdl1.bin:底层引导
    • fdl2.bin:二级引导
    • u-boot.bin:引导加载程序
    • boot.img:内核与initramfs
    • system.img:根文件系统
  3. 根据连接方式选择:

    • USB模式:确保strip pin下拉
    • UART模式:勾选对应选项
  4. 点击"开始"后给开发板上电

烧录进度解读:

阶段正常表现异常处理
握手显示"Connected"检查线缆和驱动
fdl1快速通过重新下载axp
u-boot约1-2分钟检查电源稳定性
system时间最长确保USB3.0接口

4.3 首次启动验证

成功烧录后:

  1. 将S1第5位拨回左侧
  2. 断开USB重新上电
  3. 通过串口查看启动日志(波特率115200)

预期输出:

U-Boot 2017.11 ... Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0

5. 进阶技巧与问题排查

5.1 自定义内核配置

如需修改内核选项:

cd AX630A_SDK_V1.50.0_xxxxx/kernel/linux-4.19.125 make ARCH=arm64 menuconfig

保存后重新编译:

cd ../../build make p=AX630A_demo kernel

5.2 文件系统扩容

默认system.img可能空间不足,修改方法:

  1. 编辑build/scripts/axera/mkfs.sh
  2. 调整make_ext4fs-l参数
  3. 重新生成axp包

5.3 常见故障灯语解析

开发板LED状态指示:

LED状态含义应对措施
电源灯常亮供电正常-
红灯闪烁启动失败检查烧录完整性
绿灯呼吸系统运行中-
全灭电源问题检查供电电压

5.4 性能优化建议

  1. 编译加速

    make -j$(nproc) p=AX630A_demo all

    使用所有CPU核心并行编译

  2. ccache配置

    sudo apt install ccache export CCACHE_DIR="/tmp/ccache" export CC="ccache aarch64-linux-gnu-gcc"
  3. 选择性编译

    • make kernel:仅编译内核
    • make uboot:仅编译uboot
    • make axp:重新打包镜像

6. 开发环境维护

6.1 清理策略

完全清理(慎用):

make distclean

保留下载的源码:

make clean

6.2 版本控制建议

推荐.gitignore内容:

/*.axp /out/ /tmp/ *.o *.a *.ko

6.3 备份关键组件

应定期备份:

  • 配置好的工具链(/usr/local/ARM-toolchain)
  • 已验证的SDK压缩包
  • 个人修改的内核配置(.config)

7. 从理论到实践:一个真实案例

去年在为智能摄像头项目移植AX630A时,遇到烧录后无法启动的问题。通过串口调试发现是uboot环境变量丢失,解决方法:

  1. 进入uboot命令行:

    setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait' saveenv
  2. 修改SDK中的uboot配置:

    vi AX630A_SDK_V1.50.0_xxxxx/u-boot/include/configs/axera.h

    添加默认环境变量设置

  3. 重新编译烧录后问题解决

这个案例展示了完整的问题定位流程:从现象观察(不启动)→ 数据收集(串口日志)→ 假设验证(环境变量)→ 方案实施(修改配置)→ 结果确认。这种思维方式在嵌入式开发中至关重要。

http://www.jsqmd.com/news/688369/

相关文章:

  • 为机器人 Agent 设计 Harness 实时控制循环
  • Blender贝塞尔曲线终极工具:5个技巧让你的3D建模效率提升300%
  • 手把手教你用UniApp的live-pusher+plus.zip.compressImage打造安卓人脸登录功能
  • 虚拟机磁盘 IOPS 不够用 / 占用过高?ESXi 两种调整限制的实用教程
  • C++26反射元编程生产就绪评估报告(基于Linux x86_64/ARM64双平台+glibc 2.38+内核5.15实测,含编译时间增幅阈值警戒线)
  • 第五篇:《WebDriver等待机制详解:隐式等待、显式等待与流畅等待》
  • 2026年,如何从TOP10软件开发源头厂家选出你的最佳合作伙伴?
  • 室内扫地机器人行业分析报告
  • 内存不够用?手把手教你理解CXL Type 3内存扩展卡如何给服务器“加内存条”
  • 别再为工业CCD黑屏发愁!手把手教你用Keyence视觉软件搞定新相机调试(附参数详解)
  • 北京金发钹祥金属材料贸易:北京不锈钢焊接哪家好 - LYL仔仔
  • PDF转MOBI排版乱?手把手教你用Calibre+代码实现智能分段与标题识别
  • 别再手动P图了!用DCGAN+TensorFlow 2.x自动修复人脸老照片(附CelebA数据集处理技巧)
  • 2026款乐道L90上市:30万级集齐顶尖智能科技,八大板块超70项升级刷新出行标杆
  • 用C语言给TM1651数码管驱动写个“温度计”:从硬件接线到闪烁报警的完整实战
  • 如何使用 GPT-Image-2 一键生成顶刊级科研图表
  • 避开B题大坑!华中杯数学建模中‘文本转数据’的3个实用技巧与相似度计算实战
  • LA MENTE美燕美活饮建议买吗?2026抗衰科技新选择 - 品牌排行榜
  • STM32G4 HAL库下IIC通信避坑指南:模拟IIC驱动AT24C02和MCP4017的常见时序问题
  • 第六篇:《Page Object设计模式:让UI测试代码可维护、可复用》
  • 3分钟掌握星穹铁道抽卡数据分析,告别盲目氪金!
  • 链游革命2.0:源码开放与智能合约驱动的下一代游戏经济体
  • 如何快速提取Godot游戏资源:专业解包工具使用指南
  • 2026年乌鲁木齐房屋防水修缮服务商深度横评:从漏水诊断到质保承诺 - 优质企业观察收录
  • 3步快速恢复加密压缩包密码:ArchivePasswordTestTool实战指南
  • FlexASIO配置终极指南:从零开始掌握专业音频驱动调优
  • 大模型服务化落地卡点突破:基于CUDA 13 Stream Ordered Memory Allocator的动态batching算子框架(含GitHub Star≥1.2k的开源实现)
  • 2026年乌鲁木齐房屋防水修缮完全指南:从漏水诊断到官方服务商直达 - 优质企业观察收录
  • 2026年乌鲁木齐房屋防水修缮与阳台漏水维修完全指南 - 优质企业观察收录
  • 2026 年国内金丝楠木培育基地实力厂商汇总 适配工程与庭院种植实用参考 - 深度智识库