Note

This is the documentation for the latest development branch and may refer to features that are not available in released versions. If you are looking for the documentation for a specific release, use the drop-down menu on the left and select the desired version.

Image Compilation#

Pre-built images can be downloaded from the K230 Linux SDK Image Center.

Overview#

The K230 Linux SDK is a Buildroot-based Linux image build kit. This document provides two build methods:

  • Direct Native Compilation: Manually set up the environment on Ubuntu

  • Build with Docker: No need to install any build dependencies, one command completes the build

Direct Native Compilation#

This SDK compilation has only been verified on ubuntu 20.04, 22.04, 24.04, other versions may have issues

Get the Code#

git clone git@github.com:kendryte/k230_linux_sdk.git  #If github is unstable, replace with git clone git@gitee.com:kendryte/k230_linux_sdk.git
# git clone git@gitee.com:kendryte/k230_linux_sdk.git
cd k230_linux_sdk

Install Cross Toolchain#

sudo make toolchain_and_depend

This command installs GCC and the dependency packages required by the SDK. For details, see tools/install_toolchain_and_depend.sh.

Install ILP32 Toolchain (Optional)#

Only required for the k230d_canmv_ilp32_defconfig configuration:

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/

Build#

make CONF=k230d_canmv_defconfig       # k230d canmv image (both kernel and root filesystem are 64-bit)
# make CONF=k230_canmv_01studio_defconfig  # 01Studio board
# make CONF=k230_canmv_defconfig           # k230 canmv image
# make CONF=k230d_canmv_ilp32_defconfig    # k230d canmv 32-bit root filesystem

Build Output#

output/<conf>/images/sysimage-sdcard.img.gz

Need to decompress before flashing.

Building with Docker#

Use the preconfigured k230-builder image, which includes all toolchains and build dependencies. The only prerequisite is installing Docker.

Prerequisites#

  • Install Docker

    # Ubuntu/Debian
    sudo apt install docker.io
    sudo usermod -aG docker $USER && newgrp docker
    

    For other systems, refer to the official Docker documentation.

  • Configure Git user information

    git config --global user.email "you@example.com"
    git config --global user.name "Your Name"
    
  • Configure SSH keys (if cloning via SSH, optional)

Install the k230 command#

curl -fsSL https://www.kendryte.com/misc/install.sh | bash
source ~/.bashrc

After installation, run k230 pull to pull the Docker image (first time depends on network, approximately 1GB+).

Quick Start#

# 1) Clone the code
git clone git@gitee.com:kendryte/k230_linux_sdk.git
# Or clone from GitHub
# git clone git@github.com:kendryte/k230_linux_sdk.git
cd k230_linux_sdk

# 2) Pull the Docker image
k230 pull

# 3) Download toolchains (only needed the first time)
k230 download-toolchains TC2

# 4) Build (the CONF parameter specifies the configuration name)
k230 make CONF=k230_canmv_defconfig

After the build completes, the image output is in the output/<conf>/images/ directory.

Building ILP32 (32-bit Root Filesystem)#

The ILP32 configuration requires downloading the TC4 toolchain additionally:

k230 download-toolchains TC4
k230 make CONF=k230d_canmv_ilp32_defconfig

Common Commands#

k230 list-toolchains                      # List available toolchains
k230 download-toolchains TC4              # Download the ILP32 toolchain (optional)
k230 make CONF=k230_canmv_defconfig       # Build with the specified configuration
k230 bash                                 # Enter the container terminal
k230 pull                                 # Update the k230-builder image

For available configuration names, see the buildroot-overlay/configs/ directory in the source code.

Git and SSH#

k230 automatically mounts the host’s ~/.ssh and ~/.gitconfig into the container, so git clone works directly without additional configuration.

Frequently Asked Questions#

k230 command not found#

Run source ~/.bashrc or re-login to the terminal. Make sure ~/.local/bin is in $PATH.

Toolchain download failure#

The toolchains are stored in the Docker Volume k230_toolchains. The initial download is large. If the network is unstable, you can download in batches:

k230 download-toolchains TC2     # Download TC2 first
k230 download-toolchains TC4     # Then download TC4

Docker permission denied#

sudo usermod -aG docker $USER
newgrp docker
Comments list
Comments
Log in