Caution
This repository is no longer maintained. Use milas/talos-sbc-rk3588 instead.
🍴 Fork of siderolabs/talos to support Radxa Rock 5 🍴
Currently, the Radxa Rock 5B, like all other Rockchip RK3588-based boards, requires a BSP kernel. Additionally, there's no mature EFI bootloader support.
Due to this situation, until/if mainline Linux RK3588 support improves, it's not practical to support the board in its current state in the main Talos codebase. As a result, this is a "friendly fork": it exists to serve a specific niche and will cease to exist as soon as upstream support is practical. (I have no affiliation with Sidero Labs! But this is way too extensive & hacky to be reasonable to open a PR for.)
Please be respectful of upstream if you run into any problems. If there's any doubt about whether an issue is caused by this fork, err on the side of making an issue here first!
Stable
In Progress
- Rock 5A - UNTESTED (board is not released)
💾 I've only tested this using eMMC, but it should work for an SD card as well
Flashable images are available from the releases.
You can write this to your eMMC/SD card using dd
, Balena Etcher, etc.
Use the docker.io/milas/rock5-talos
images instead of the upstream Talos Linux images.
These include a modified version of Talos to support the Rock 5B in addition to the vendor U-Boot & kernel.
machine:
install:
# for eMMC, use /dev/mmcblk0
# for SD card, use /dev/mmcblk1
disk: /dev/mmcblk0
image: docker.io/milas/rock5-talos:v1.3.5-rock5-rock-5b
bootloader: true
wipe: false
The kernel is built using the config at ./hack/boards/defconfig/rockchip_linux_defconfig
.
Builds are done using milas/rock5-toolchain which provides a Dockerized build system to build the BSP kernel.
To build & push:
IMAGE="docker.io/milas/rock5-kernel-talos" docker buildx bake \
--push \
--set "kernel.tags=$IMAGE" \
kernel
The Makefile
has been modified slightly to add some Rock 5 specific options, which
will be kept behind the ROCK5_
prefix to distinguish from the Talos ones. Review
the Makefile
to find the full set.
It's possible to pass a custom context for U-Boot. For example, this would build an image with the Collabora build of U-Boot for the 5B:
ROCK5_UBOOT='docker-image://milas/rock5-u-boot:latest-rock-5b-collabora'
To build & push:
make installer \
PUSH=1 \
IMAGE_NAME="rock5-talos" \
ROCK5_BOARD="rock-5b" \
PLATFORM="linux/arm64"
See Makefile
for more variables, e.g. IMAGE_REGISTRY
and USERNAME
.
New installer container images are published on every commit and on tag for releases.
You can create a flashable image as well after building & pushing the installer.
See Makefile
for more variables, e.g. IMAGE_REGISTRY
and USERNAME
.
To create in ./_out/
:
mkdir -p ./_out/
make sbc-rock_5b IMAGE_NAME="rock5-talos" IMAGE_TAG="latest" ROCK5_BOARD="rock-5b"
New flashable images are published for each Rock 5 Talos release.
Differences from siderolabs/talos
- Support radxa/u-boot (#1):
- Adjust partition offset logic
- Remove BIOS/EFI partitions entirely
- Change Talos root partition to ext4 from xfs
- Add
rk3588-rock-5b.dtb
(&rk3588-uart7-m2.dtbo
) directly to Talos root partition (these would normally be in the EFI partition) - Add (hardcoded)
/extlinux/extlinux.conf
directly to Talos root partition⚠️ As U-Boot directly boots the kernel (no GRUB),extlinux.conf
contains the kernel args, meaning there's no way to customize them right now since it's not templated/generated by the installer! (#3)
- Support radxa/kernel:
Some software we distribute is under the General Public License family of licenses or other licenses that require we provide you with the source code. If you would like a copy of the source code for this software, please contact us via email: info at SideroLabs.com.