镜像编译#
预编译镜像可从 K230 Linux SDK 镜像中心 下载。
概述#
K230 Linux SDK 是基于 Buildroot 的 Linux 镜像构建套件。本文档提供两种构建方式:
使用 Docker 编译(推荐):无需安装任何编译依赖,一条命令即可完成编译
直接本机编译:在 Ubuntu 上手动搭建环境
使用 Docker 编译(推荐)#
使用预配置的 k230-builder 镜像,内置全部工具链、编译依赖。前提条件仅需安装 Docker。
前提条件#
安装 Docker
# Ubuntu/Debian sudo apt install docker.io sudo usermod -aG docker $USER && newgrp docker
其他系统参考 Docker 官方文档。
配置 Git 用户信息
git config --global user.email "you@example.com" git config --global user.name "Your Name"
配置 SSH 密钥(如使用 SSH 方式 clone,可选)
安装 k230 命令#
curl -fsSL https://www.kendryte.com/misc/install.sh | bash
source ~/.bashrc
安装后执行 k230 pull 拉取 Docker 镜像(首次耗时取决于网络,约 1GB+)。
快速开始#
# 1) 克隆代码
git clone git@gitee.com:kendryte/k230_linux_sdk.git
# 或从 GitHub 克隆
# git clone git@github.com:kendryte/k230_linux_sdk.git
cd k230_linux_sdk
# 2) 拉取 docker 镜像
k230 pull
# 3) 下载工具链(仅需首次执行一次)
k230 download-toolchains TC2
# 4) 编译(CONF 参数指定配置名)
k230 make CONF=k230_canmv_defconfig
编译完成后,镜像输出在 output/<conf>/images/ 目录下。
编译 ILP32(32 位根文件系统)#
ILP32 构型需要额外下载 TC4 工具链:
k230 download-toolchains TC4
k230 make CONF=k230d_canmv_ilp32_defconfig
常用命令#
k230 list-toolchains # 查看可用工具链列表
k230 download-toolchains TC4 # 下载 ILP32 工具链(可选)
k230 make CONF=k230_canmv_defconfig # 编译指定配置
k230 bash # 进入容器终端
k230 pull # 更新 k230-builder 镜像
可用的配置名见源码 buildroot-overlay/configs/ 目录。
Git 与 SSH#
k230 自动挂载宿主 ~/.ssh 和 ~/.gitconfig 到容器,git clone 直接可用,无需额外配置。
直接本机编译#
推荐使用 Docker 编译。仅在无法使用 Docker 时,参考以下手动搭建流程。
获取代码#
git clone git@github.com:kendryte/k230_linux_sdk.git
# git clone git@gitee.com:kendryte/k230_linux_sdk.git
cd k230_linux_sdk
安装交叉工具链#
sudo make toolchain_and_depend
此命令会安装 GCC 及 SDK 所需依赖包,详见 tools/install_toolchain_and_depend.sh。
安装 ILP32 工具链(可选)#
仅 k230d_canmv_ilp32_defconfig 配置需要:
wget -c https://github.com/ruyisdk/riscv-gnu-toolchain-rv64ilp32/releases/download/2024.06.25/riscv64ilp32-elf-ubuntu-22.04-gcc-nightly-2024.06.25-nightly.tar.gz
mkdir -p /opt/toolchain/riscv64ilp32-elf-ubuntu-22.04-gcc-nightly-2024.06.25/
tar -xvf riscv64ilp32-elf-ubuntu-22.04-gcc-nightly-2024.06.25-nightly.tar.gz \
-C /opt/toolchain/riscv64ilp32-elf-ubuntu-22.04-gcc-nightly-2024.06.25/
编译#
make CONF=k230d_canmv_defconfig # k230d canmv 镜像(内核和根文件系统均为 64 位)
# make CONF=k230_canmv_01studio_defconfig # 01Studio 板子
# make CONF=k230_canmv_defconfig # k230 canmv 镜像
# make CONF=k230d_canmv_ilp32_defconfig # k230d canmv 32 位根文件系统
编译输出#
output/<conf>/images/sysimage-sdcard.img.gz
烧录前需解压缩。
常见问题#
k230 命令未找到#
执行 source ~/.bashrc 或重新登录终端。确认 ~/.local/bin 在 $PATH 中。
工具链下载失败#
工具链存储在 Docker Volume k230_toolchains 中,首次下载量较大,网络不稳定时可分批下载:
k230 download-toolchains TC2 # 先下载 TC2
k230 download-toolchains TC4 # 再下载 TC4
Docker 无权限#
sudo usermod -aG docker $USER
newgrp docker
