K3 平台 Yocto BSP 现已上线 —— 进展同步与上手指南
各位 K3 社区的开发者好,
我们基于上游 meta-riscv(commit 41a010a)扩展出了一套 K3 平台完整支持的 Yocto BSP,目前已合入并随 spacemit-yocto 仓库的 k3 分支发布。本贴同步当前进展、构建方式与镜像下载,方便大家快速上手。
一、项目简介
本层是面向 RISC-V 架构的 Yocto/OpenEmbedded BSP overlay,在上游 meta-riscv 基础上新增了对 SpacemiT K3 平台的完整适配。
核心特性:
-
完整支持 K3 SoC 及多款板型(COM260、Pico-ITX 等)
-
单一
MACHINE=k3目标即可构建,多个板型共用同一镜像,对应设备树自动打包进 bootfs(详见conf/machine/k3.conf) -
提供两类开箱即用的镜像 target:
-
core-image-minimal:最小化 Linux 系统,适合快速启动、串口调试与基础网络测试 -
core-image-weston:Weston (Wayland) 图形环境,支持简单 GUI 应用,K3 GPU 加速可用 -
每次构建同时输出两种烧录格式:
-
WIC 镜像(
.wic):可直接dd烧录到 SD 卡启动 -
Titan 分区镜像(
.ext4+ 固件二进制):配合 SpacemiT Titan 工具通过 USB 烧录
Yocto 兼容性说明:
当前基于 openembedded-core 与 bitbake 的 master 分支开发(Scarthgap 5.0 之后,朝 Styhead 5.1 方向),暂未在 stable release 分支上做兼容性测试。
二、支持的硬件
- K3-Pico-ITX
- K3-Com260
三、预编译固件下载
如果不想自行构建,可直接下载我们发布的预编译镜像:
四、构建环境要求
-
推荐系统:Ubuntu 22.04 / 24.04,或 WSL2 等等价 Linux 环境
-
基础工具:
git、bash、python3,以及 Yocto 官方主机依赖 -
我们内部基于 Ubuntu 24.04 LTS(x86_64) Docker 容器构建
容器内额外安装的依赖包:
sudo apt update
sudo apt install gawk wget git git-lfs diffstat unzip texinfo gcc g++ build-essential \
chrpath cpio python3 python3-pip python3-pexpect python3-git python3-jinja2 \
python3-subunit xz-utils zstd liblz4-tool lz4 lzop file locales curl make \
binutils cpp dosfstools iproute2 iputils-ping mesa-common-dev rpcsvc-proto \
subversion ssh sudo vim p7zip-full netcat-openbsd
sudo locale-gen en_US.UTF-8
五、快速上手(K3 平台)
1. 初始化工作区
使用 repo 工具拉取源码:
mkdir riscv-yocto && cd riscv-yocto
repo init -u https://github.com/yingjie-liu-spacemit/spacemit-yocto.git -b k3 -m tools/manifests/riscv-yocto.xml
repo sync
repo start work --all
2. 配置构建环境
. layers/meta-riscv/tools/envsetup.sh
3. 构建镜像
两种 target 均会同时产出 .wic(SD 卡镜像)与 .ext4 + Titan 分区镜像。
最小化 Linux —— 适合快速启动、串口调试与基础网络测试:
MACHINE=k3 bitbake core-image-minimal
Weston 图形环境 —— 基于 Wayland,可运行简单 GUI 应用,K3 GPU 加速可用:
MACHINE=k3 bitbake core-image-weston
4. 默认登录信息
用户名: root
密码 : bianbu
5. 镜像烧录与使用
构建产物位于 build/tmp/deploy/images/k3/。
方式一:SD 卡烧录
将 /dev/sdX 替换为你的实际设备节点:
sudo dd if=core-image-minimal-k3.rootfs.wic of=/dev/sdX bs=4M conv=fsync status=progress
sudo sync
如果构建的是 core-image-weston,将文件名替换为对应镜像即可。
方式二:Titan 工具烧录
Titan 是 SpacemiT 自研的 USB 烧录工具,构建过程会同时产出兼容 Titan 的分区镜像(bootfs.ext4、rootfs.ext4 及固件二进制)。
六、依赖项目
七、参与贡献 & 反馈
-
代码贡献:通过 GitHub Pull Request 提交补丁
-
问题反馈:欢迎在 GitHub Issues 提交 Bug 或建议,也可以直接在本贴下回复交流
八、维护者
- liuyingjie
<yingjie.liu@spacemit.com>
后续我们会持续跟进 Yocto 上游分支演进,以及 K3 板型扩展、内核版本更新等工作,欢迎大家试用并反馈使用中遇到的问题。

