如何编译固件#
概述#
K230 RTOS SDK 是基于 repo 管理的多仓库集成开发套件,包含 U-Boot、OpenSBI、RT-Smart、MPP 等核心组件。本文档提供完整的开发环境搭建、代码下载与编译流程说明。
开发环境要求#
系统要求#
操作系统: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
# 清理缓存
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
安装 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
代码获取与编译#
下载 SDK 源码#
# 创建工作目录
mkdir -p ~/rtos_k230 && cd ~/rtos_k230
# 从 Gitee 下载代码(推荐国内用户,需配置 SSH 密钥)
repo init -u git@gitee.com:canmv-k230/manifest.git -m rtsmart.xml \
--repo-url=git@gitee.com:canmv-k230/git-repo.git
# 从 GitHub 下载代码(国际用户)
# repo init -u https://github.com/canmv-k230/manifest -m rtsmart.xml \
# --repo-url=https://github.com/canmv-k230/git-repo.git
# 同步代码仓库
repo sync -j8
初始化工具链#
# 首次编译需下载工具链(仅需执行一次)
make dl_toolchain
选择目标硬件配置#
# 查看所有支持的硬件配置
make list-def
# 示例:选择 K230 默认配置
make xxx_defconfig
执行编译#
# 开始完整编译(耗时较长,建议使用 `time` 记录时间)
time make log
编译输出
生成的固件镜像位于:
~/rtos_k230/output/xxx_defconfig/k230_rtos.img
目录结构说明#
rtos_k230/
├── boards/ # 硬件板级支持文件
├── configs/ # 编译配置文件(如 xxxx_defconfig)
├── output/ # 编译输出目录(镜像、临时文件)
├── src/
│ ├── applications # 用户应用程序
│ ├── opensbi/ # OpenSBI 引导程序
│ ├── rtsmart/ # RT-Smart 实时操作系统
│ └── uboot/ # U-Boot 引导加载程序
└── tools/ # 编译工具链与脚本
常见问题#
代码同步失败#
现象:
repo sync
报错或卡顿解决方案:
检查网络连接,国内用户优先使用 Gitee 仓库。
重试命令:
repo sync -j4 --fail-fast
。
编译工具链缺失#
现象:
make
报错提示工具链未找到解决方案:
确保已执行make dl_toolchain
,并检查~/.kendryte/k230_toolchains
目录下是否包含工具链文件。
依赖冲突#
现象:编译过程中提示库版本不兼容
解决方案:
使用
apt list --installed
检查依赖版本。通过
sudo apt install <package>=<version>
安装指定版本。
打包镜像失败#
现象:最后打包提示分区太小
解决方案:减少使能的 example ,或者修改对应板子的镜像配置文件,增大对应分区的文件大小
修改了 MPP 目录下的文件,没有重新编译#
现象:修改了
src/rtsmart/mpp
目录下的源码,或者 sample,执行make
生成新镜像但是没有更新解决方案:执行一次
make rtsmart-clean
然后再执行make
,这个设计是因为 MPP 编译较慢,但是改动的较少,因此仅主动编译一次。
下一步#
通过本指南,您已完成 K230 RTOS SDK 的开发环境搭建与固件编译。如有其他问题,请参考官方文档或提交 Issue 至代码仓库。