fw-toolchain
Installation
SKILL.md
固件交叉工具链(托管优先与版本锚定)
核心立场:优先让平台构建系统托管工具链,禁止手工拼 sysroot。 工具链版本漂移 = 头文件/libc/链接器与目标环境不匹配,产物在设备上行为不可解释且不可复现。三大工具链族各有一位"托管者",先问"谁托管",再谈怎么用。
Determine Task Type
- OpenWrt 用户态交叉编译(如给 aarch64 设备编 Rust/静态小工具)→ Workflow A。
- ESP32 工具链(xtensa-esp-elf / riscv32-esp-elf)→ Workflow B:不手动装,IDF 自带工具链管理托管;工程问题移交
esp32-idf。 - OpenWrt 内核/镜像构建工具链 → buildroot/IB 托管;构建需求整体移交
openwrt-image-build。 - 版本不一致排障 / 可复现构建 → Workflow C + version-pinning。
Prerequisites / Preflight
uname -m # 宿主架构(IB 与交叉工具链官方形态多为 Linux x86_64)
command -v aarch64-linux-gnu-gcc || true # 宿主交叉链接器在不在
rustup target list --installed 2>/dev/null | grep aarch64 || true
idf.py --version 2>/dev/null || echo "IDF not in PATH" # ESP 链路:IDF 托管是否就绪