注意

这是最新开发分支配套的文档,可能包含已发布版本中尚未提供的功能。如果您要查看特定版本的文档,请使用左侧的下拉菜单并选择所需要的版本。

镜像编译#

预编译镜像可从 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
评论列表
条评论
登录