如何编译固件#

概述#

K230 RTOS SDK 是基于 repo 管理的多仓库集成开发套件,包含 U-Boot、OpenSBI、RT-Smart、MPP 等核心组件。本文档提供完整的开发环境搭建、代码下载与编译流程说明。

开发环境要求#

推荐使用虚拟机或者 Docker, 并随时备份修改,防止资料丢失。

系统要求#

  • 操作系统:Ubuntu 20.04 LTS (x86_64) 其他 Linux 发行版未经充分测试,可能存在兼容性问题。

硬件要求#

  • 内存:建议 ≥ 2GB

  • 磁盘空间:建议预留 ≥ 10GB

开发环境搭建#

配置 APT 源(可选,推荐国内用户)#

sudo cp /etc/apt/sources.list /etc/apt/sources_bak.list
sudo sed -i "s/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g" /etc/apt/sources.list
sudo sed -i "s/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g" /etc/apt/sources.list
sudo apt update

安装系统依赖#

# 添加 i386 架构支持
sudo dpkg --add-architecture i386
sudo apt update

# 安装编译工具链及依赖库
sudo apt install -y --no-install-recommends \
    sudo vim wget curl git git-lfs openssh-client net-tools sed tzdata expect \
    make cmake binutils build-essential gcc g++ bash patch perl tar cpio unzip \
    file bc bison flex autoconf automake python3 python3-pip python3-dev \
    lib32z1 libncurses5-dev fakeroot pigz tree doxygen gawk pkg-config \
    libssl-dev libc6-dev-i386 libncurses5:i386 libconfuse-dev python-is-python3 scons libyaml-dev mtools

# 清理缓存
sudo apt clean

配置 Python 环境#

# 配置 PIP 国内镜像源(推荐)
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

# 安装 Python 依赖库
pip3 install -U pyyaml pycryptodome gmssl jsonschema jinja2

安装 repo 工具#

mkdir -p ~/.bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
chmod a+rx ~/.bin/repo
echo 'export PATH="$HOME/.bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

代码获取与编译#

分钟首次成功路径(推荐)#

如果你是第一次接触 K230 RTOS SDK,建议先按下面这条最短路径完成一次成功编译:

# 1) 下载代码, gitee需要注册账号并配置私钥。
mkdir -p ~/rtos_k230 && cd ~/rtos_k230
repo init -u git@gitee.com:canmv-k230/manifest.git --repo-url=git@gitee.com:canmv-k230/git-repo.git
repo sync -j $(nproc)

# 2) 下载工具链(首次一次)
make dl_toolchain

# 3) 选择板级配置(示例:01Studio)
make k230_rtos_01studio_defconfig

# 4) 编译
time make log

# 5) 查看输出镜像
ls -lh output/k230_rtos_01studio_defconfig/images/

如果你的板子不是 01Studio,请先执行 make list-def,再选择对应的 k230_rtos_*_defconfig

初始化git配置#

#根据申请的git账号配置你的用户名和密码
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

下载 SDK 源码#

# 创建工作目录
mkdir -p ~/rtos_k230 && cd ~/rtos_k230

# 从 Gitee 下载代码(推荐国内用户,需配置 SSH 密钥)
repo init -u git@gitee.com:canmv-k230/manifest.git --repo-url=git@gitee.com:canmv-k230/git-repo.git

# 从 GitHub 下载代码(国际用户)
# repo init -u https://github.com/canmv-k230/manifest --repo-url=https://github.com/canmv-k230/git-repo.git

# 同步代码仓库
repo sync -j $(nproc)

初始化工具链#

# 首次编译需下载工具链(仅需执行一次)
make dl_toolchain

选择目标硬件配置#

# 查看所有支持的硬件配置
make list-def

# 示例:01Studio 开发板
make k230_rtos_01studio_defconfig

# 示例:立创开发板
make k230_rtos_lckfb_defconfig

仅有 CanMV defconfig 时,如何构建 RTOS 镜像#

部分板卡可能只有 k230_canmv_*_defconfig,没有对应的 k230_rtos_*_defconfig。这种情况下,也可以基于 CanMV defconfig 构建 RTOS 镜像:

# 1) 先选择一个可用的 canmv defconfig
make k230_canmv_xxx_defconfig

# 2) 进入 menuconfig 调整功能开关
make menuconfig

menuconfig 中建议至少调整以下项:

  1. 关闭 CanMV 组件:

CanMV Components Configuration

把该选项关闭(对应 CONFIG_SDK_ENABLE_CANMV 不使能)。

  1. 按需编译示例:

RT-Smart UserSpace Examples Configuration > Enable xxxx examples
  1. 如果需要编译自定义应用,开启应用开关:

Applications Configuration > (选择你的应用开关)

例如内置示例:Enable Application HelloWorld

保存配置后执行编译:

time make log

如果你希望把当前调整固化成新的 defconfig,可执行:

make savedefconfig

然后将生成的配置保存到 configs/ 下,便于团队复用。

执行编译#

# 开始完整编译(耗时较长,建议使用 `time` 记录时间)
time make log

编译输出 生成的固件镜像位于: ./output/<defconfig>/images/

常见文件包括:

  • *.img:用于 SD 卡烧录或部分命令行烧录场景

  • *.kdimg:用于 K230BurningTool USB 烧录,或者 OTA 升级使用

常见问题#

代码同步失败#

  • 现象repo sync 报错或卡顿

  • 解决方案

    1. 检查网络连接,国内用户优先使用 Gitee 仓库。

    2. 重试命令:repo sync -j4 --fail-fast

编译工具链缺失#

  • 现象make 报错提示工具链未找到

  • 解决方案: 确保已执行 make dl_toolchain,并检查 ~/.kendryte/k230_toolchains 目录下是否包含工具链文件。

依赖冲突#

  • 现象:编译过程中提示库版本不兼容

  • 解决方案

    1. 使用 apt list --installed 检查依赖版本。

    2. 通过 sudo apt install <package>=<version> 安装指定版本。

打包镜像失败#

  • 现象:最后打包提示分区太小

  • 解决方案:减少使能的 example ,或者修改对应板子的镜像配置文件,增大对应分区的文件大小

下一步#

通过本指南,您已完成 K230 RTOS SDK 的开发环境搭建与固件编译。如有其他问题,请参考官方文档或提交 Issue 至代码仓库。

评论列表
条评论
登录