使用 AIShell 在华为云上编译 xiaohong 固件完整指南

发布时间:2026/7/2 8:58:46
使用 AIShell 在华为云上编译 xiaohong 固件完整指南 前言OpenHarmony 轻量系统的固件构建通常会卡在三个地方构建机架构、预编译工具链、源码和依赖下载。尤其是像 xiaohong (atomgit 开源的软硬件一体项目) 这类面向 WS63 芯片的项目工具链、Python 依赖、repo 同步、clang 路径等细节只要有一处没对齐就很容易在编译中途报错。这次我们尝试把 xiaohong 固件构建流程放到华为云上完成通过 AI Shell 创建云端 ECS、准备构建环境、下载源码、配置工具链并完成固件编译。整体体验下来AI Shell 比较适合这类“步骤多、依赖多、容易踩坑但流程可沉淀”的云端自动化任务。案例介绍xiaohong 是基于 OpenHarmony 的迷你系统专为 WS63 芯片设计。本案例介绍如何使用华为云 AI Shell 从零开始编译 xiaohong 固件包括环境准备、源码下载、工具链配置、编译过程以及常见问题解决方案。最终产物为ws63-liteos-app_all.fwpkg完整固件ws63-liteos-app_load_only.fwpkg仅加载固件为什么适合用 AI Shell这个任务并不是单条命令能解决的问题而是一个典型的云端构建流水线需要创建合适规格和架构的 ECS。需要安装大量系统依赖和 Python 依赖。需要同步较大的 OpenHarmony 相关源码和预编译工具。需要处理工具链路径、软链接和环境变量。编译完成后还要下载固件并清理云资源。如果每次都手工操作容易遗漏步骤。使用 AI Shell 的价值在于可以用自然语言描述目标再把重复流程沉淀为 skill 或脚本后续复用时只需要发起任务即可。核心要点架构选择必须使用 x86_64 架构的 ECS预编译工具链不兼容 aarch64。源码下载使用 repo 工具并在repo init时添加--git-lfs。工具链配置需要配置 RISC-V 编译器 PATH并创建 clang 软链接。Python 依赖需要安装kconfiglib、pycparser、markupsafe等模块。构建命令使用./build.sh --product-name xiaohong --gn-args is_debugfalse。资源清理构建完成后及时保存固件并释放 ECS避免资源持续计费。适用对象企业个人开发者高校学生案例时间本案例总时长预计60分钟。资源总览创建华为云资源需要收费请按需充值。本案例中编译环境所创建的云资源预计花费10元。资源名称规格单价元AI Shell体验版免费华为云资源按需10整体流程流程可以理解为用户在开发者空间向 AI Shell 下达编译 xiaohong 固件任务。AI Shell 调用 xiaohong build skill 或自动化脚本。AI Shell 创建 x86_64 ECS 并准备构建环境。ECS 完成源码同步、工具链配置、固件编译。用户下载固件产物并按需销毁 ECS。案例步骤0. 进入 AIShell参考教程探索智能 Shell 交互新范式 详解 AI Shell 完整用法或者产品文档AI Shell云上开发运维效率升级 进入到 AI Shell 界面进入到 AIShell 我们应该能看如下界面和我们常用的 OpenCode、AtomCode 等产品类似可以输入1. 使用 xiaohong-build-skill此处我们不再介绍 AIShell 的详细功能和能力留给大家自行探索。首先我们输入/确认一下所有功能是否都已经开启默认是开启了所有的功能如下图虽然我们一句话就能实现 xiaohong 编译环境搭建、编译运行但是为了了解背后的细节我们先让 AIShell 帮我熟悉熟悉帮我看看这是什么 https://atomgit.com/huqi/xiaohong-build-skill如何使用此处我们理解权限安全规则这里按需选择Allow once或者Allow always我选择的是Allow always可以左右键切换选择并回车确认接着我们就让 AIShell 执行这个 skill,如果遇到帮我实际运行这个 skill 来编译 xiaohong 固件从右侧任务列表我们可以看到类似的检查前置条件检查华为云凭证创建 ESC 实例构建配置环境下载源码编译固件下载固件到本地清理资源如果我们的华为云账号有幸绑定了短信在 ECS 创建完我们也能收到短信当然也能去控制台查看类似接下来只需静静等待 Task 被一一执行完。理想情况下我们会看到 AI Shell 会继续自动执行下去比如进入到 ECS 中安装依赖比如下载源码最终能看到编译完成2. 下载固件下载固件的方式有很多种比如让 AIShell 上传到 OBS 当然我们也可以去 ESC 实例里手动下载3. 后续后续可以让 AIShell 指导我们烧录固件题外话让 AIShell 帮我修改源码重新编译固件写入我专属的引导语释放资源最后记得让 AIShell 释放资源帮我释放这次创建的所有资源QA⚠️ The maximum number of model requests in a single turn is exceeded原因是触发了 MaaS 的限流只需回复 “继续” 就行如果我开发的不是 xiaohong 而是其他平台如 小智 等那怎么办在我们看来底层逻辑都是相通的我们的目的是搭建编译环境–编译–获取产物理论上只需要把相关的指导文档发给 AIShell 就行类似的我想搭建环境编译 https://github.com/78/xiaozhi-esp32 应该怎么做