项目>小智AI>小智 AI 源码编译与 ESP-IDF 版本边界

小智 AI 源码编译与 ESP-IDF 版本边界

摘要:确认需改代码再搭环境:按 2026-11-12 官方 main 分支,IDF 最低 v6.0.1、推荐 release/v6.1、不再支持 5.x。

小智 AI 源码编译与 ESP-IDF 版本边界

官方 README 的第一句忠告:新手第一次操作建议先不要搭建开发环境,直接使用免开发环境烧录的固件。官方 Q&A 也写明「普通用户不需要安装配置IDF开发环境,开发者或者学习编程用户才需要配置」。所以动手前先确认自己确实要改代码——改板级配置、加功能、做自定义板——不满足这些场景的用户用现成固件即可。

版本边界按 2026-11-12 抓取的官方 main 分支口径,当前要求与旧版口径对照如下:

项 当前口径 旧版口径
ESP-IDF 最低版本 项目要求 ESP-IDF 最低 v6.0.1 —
推荐分支 推荐使用 release/v6.1 分支 —
ESP-IDF 5.x 不再支持 ESP-IDF 5.x 官方早期 Q&A 写的「小智AI开源项目是基于 ESP-IDF 5.3 版本使用C/C++语言开发的AI应用」属于旧版口径,不得当作当前要求
v6.1 发布标签 避免使用,该标签在 ESP32-C3 上存在 Wi-Fi 初始化失败的报告(issue #2344) —

官方还说明 Linux 比 Windows 更好,编译速度快,也免去驱动问题的困扰,条件允许优先在 Linux 下编译。本项目使用 Google C++ 代码风格,提交代码时请确保符合规范。另外官方板指南开头写「小智AI支持70多种ESP32系列开发板」,这也是文档旧口径,仅代表该文档写就时点的板数,不代表当前数量。

  1. 确认必要性:只想让设备跑起来的用户直接用现成固件,本页到此为止。预期结果:能写出要修改的代码位置或功能点;写不出来就说明还不需要搭环境。
  2. 安装编辑器与插件:使用 Cursor 或 VSCode,安装 ESP-IDF 插件,SDK 检出 release/v6.1 分支(满足最低 v6.0.1;不用 5.x;不用 v6.1 发布标签)。预期结果:编辑器内能打开 ESP-IDF 终端并加载本项目,SDK 分支与上述口径一致。
  3. 切换 SDK 版本后的固定动作:在 ESP-IDF 目录执行 git submodule update --init --recursive,重新加载其 export.sh,再回到本项目执行 idf.py fullclean 后重新编译。预期结果:子模块拉取完成且无报错,fullclean 清空旧构建产物,随后一次编译从头进行。
  4. 选择目标芯片(首次配置或更换芯片时):按板型执行 idf.py set-target esp32s3、idf.py set-target esp32c3 或 idf.py set-target esp32。预期结果:命令执行完毕,项目按所选芯片重新生成配置。
  5. 选择板卡:执行 idf.py menuconfig,在菜单中导航到 Xiaozhi Assistant -> Board Type,选中你的开发板并保存退出。预期结果:配置保存成功,后续编译按该板型进行。
  6. 编译:执行 idf.py build。预期结果:编译完成,产出可烧录的固件文件。
  7. 烧录并观察日志:执行 idf.py flash monitor。预期结果:固件写入开发板,串口监视器持续输出启动日志,可据此判断板卡初始化是否正常,确认后退出监视器。

官方板指南的四条补充边界:

  1. 若开发板目录下有 config.json,可用 python scripts/build.py my-custom-board 自动完成配置和编译;脚本读取 config.json 中的 target,仅当已有 build 目录的目标芯片不同时才执行清理,因此切换目标芯片重建后,不要假设 build/ 目录里还是上一个目标的产物。语言与唤醒词可用 python scripts/build.py --list-languages 与 python scripts/build.py --list-wake-words 查询(均支持 --json 输出)。
  2. 若编译的是自定义板型,当 IO 配置与原有开发板不同时,切勿直接覆盖原有开发板的配置编译固件,必须新建板类型或通过 config.json 的 builds 配置不同的 name 与 sdkconfig 宏,否则 OTA 升级时自定义固件会被原有板的标准固件覆盖,设备无法正常工作。
  3. managed_components/ 变更时先执行 idf.py reconfigure 再编译;唤醒词列表从当前已解析的 ESP-SR 组件读取,尚未生成 managed_components/ 时同样要先运行一次 reconfigure。
  4. Windows 编译若因编译器命令超过 32,767 字符上限出现 Ninja CreateProcess 错误,在同一个工程目录、同一个 ESP-IDF 终端中执行 idf.py -D CMAKE_NINJA_FORCE_RESPONSE_FILE=ON reconfigure,再执行 idf.py build;执行 idf.py fullclean 或清空 CMake 缓存后,需要重新执行上述 reconfigure 命令。

资料来源

  • 78/xiaozhi-esp32 官方 README
  • 78/xiaozhi-esp32 官方开发者文档

相关内容

FireBeetle 2 ESP32-P4小智AI桌面伴侣实践DFR1221圆屏适配小智AI:触摸修复与动态角色实践行空板K10变身AI PassPort:语音问答与猜谜互动实践行空板K10小智AI聊天机器人:固件烧录与配置实践语音指挥农夫自动寻路!行空板K10+MCP打造AI 3D农场实践AI健身助手 · 行空板K10+姿势识别实践