milas / rock5-talos

[**DEPRECATED** - see link for replacement!] Friendly fork of Talos Linux for the Radxa Rock 5 SBCs
https://github.com/milas/talos-sbc-rk3588
Mozilla Public License 2.0
17 stars 3 forks source link

[!CAUTION]
This repository is no longer maintained. Use milas/talos-sbc-rk3588 instead.


🍴 Fork of siderolabs/talos to support Radxa Rock 5 🍴


Why does this exist?

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!

Device Support

Stable

In Progress

Install

💾 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.

Machine Configuration

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

Building

Kernel

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

Talos Installer (OCI Container Image)

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.

Flashable Talos Image (.img.xz)

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

Resources

License

GitHub

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.