talos
talos copied to clipboard
Community managed SBCs
Rationale
Sidero Labs maintainers don't have access to all SBCs that ship with Talos, so testing is painful.
Talos Linux users want to get support for some SBCs which require out-of-tree u-boot, kernel patches, etc., which is hard to manage in main Talos Linux tree.
Solution
Drop SBC support in the main Talos Linux tree:
- drop
u-boot
, SBC firmware - drop boards in the Talos tree
Create a new community-managed repository for Talos Linux SBC support.
Talos Linux still provides base arm64 kernel and modules for each SBC, but the final packaging/installation/bootloader step comes from the SBC repository.
Talos installer will provide a hook for the SBC-specific installer to write down SBC-specific firmware/bootloader bits, use custom kernel args.
Talos Linux might declare some SBCs to be officially supported, and ship official Talos images for them, add support to generate images via Image Factory, etc.
Some SBCs might not be declared as official, but there will be a way to generate an image still using the imager
container.
Kernel
We might want to split SBC-specific kernel modules out of the main arm64 kernel, and include them into a system extension specific to the SBC (reducing arm64 kernel size).
### Tasks
- [ ] https://github.com/siderolabs/talos/issues/8349
- [ ] https://github.com/siderolabs/talos/issues/8353
- [ ] https://github.com/siderolabs/talos/issues/8356
- [ ] https://github.com/siderolabs/talos/issues/8354
- [ ] https://github.com/siderolabs/talos/issues/8355
- [ ] https://github.com/siderolabs/talos/issues/8350
Hi 👋
I'm in the process of porting Talos for the Orange PI 5, and this separation strategy seems very appropriate to me.
How can I help move this issue forward?
Hi there 👋
I'm still working on the port for the Orange Pi 5 (not functional at the moment...)
However, I'm taking advantage of my progress to start writing a few comments/advice on how it might be a good idea to set up this community-supported repo for SBCs.
Clearly, to make it easier to add SBCs, it might be simpler to allow dependencies that are not stable releases but release candidates, for example:
- kernel v6.8-rc offers quite a few fixes for the rk3588 chip (the one in the Orange Pi 5), which means fewer patches need to be applied.
- The same goes for u-boot with version v2024.04-rc.
- For arm-trusted-firmware, there aren't really any release candidates, but patches may be necessary.
I think that allowing several versions of the packages to live with the possibility of using an specific version with related patches for each SBC would be a good option. Perhaps a common instance of the packages for each version could be proposed (with the patches shared) but I think that would increase the difficulty of maintenance as well as the size of the builds.
There are also dependencies on private/closed sources such as rkbin, which are not officially tagged (it's difficult to guarantee reproducibility during the build) but are necessary for some SBCs. Maybe Siderolabs will offer to maintain a forked and tagged version and agree to integrate it into a community repo for builds (I haven't looked into contaminant licences).
On the Talos side:
- The kernel version is hardcoded in Talos, so we need to see how this can be made dynamic at compile time.
- For the definition of boards in Go, we'll also have to find a way to make it more dynamic, it might be nice to be able to build Talos without depending on SBCs.
I've tried a minimalist approach where I've reimplemented the minimum for the Orange Pi 5 here if you'd like to take a look at it: https://github.com/si0ls/talos-orangepi5
I'm curious to discuss all this with you
Louis
Would love to assist and help bring Talos Linux to RK3588 based Rock 5B
Would love to assist and help bring Talos Linux to RK3588 based Rock 5B
Please take a look at https://github.com/siderolabs/sbc-rockchip/
Would love to assist and help bring Talos Linux to RK3588 based Rock 5B
I started a repo for the Orange Pi 5 : https://github.com/si0ls/talos-orangepi5/
For the moment it's still not working as I need to apply some patches to the kernel I've decided not to implement the Siderolabs SBC template perfectly because there are currently no plans to allow a modified kernel.
@piersdd If you'd like to help me move forward on this port for the RK3588 and transform the repo into a multi-board support, I'd love to ;)
FYI @pl4nty and @nberlee already started a Turing RK1 repo on their side
@si0ls @piersdd I recommend you take a look at https://github.com/edk2-porting/edk2-rk3588
With the UEFI firmware port, you should be able to run Talos generic arm64 images on the RK3588 chip.
Fully available now with 1.7.0-beta.0.