From 0cde08d8be1ad62c49fed148fd331ea5a212df4c Mon Sep 17 00:00:00 2001 From: Nico Berlee Date: Mon, 2 Dec 2024 16:41:25 +0100 Subject: [PATCH] docs: add Turing RK1 docs to Single Board Computer section This add documentation on how to setup the Turing RK1 with Talos the first time. Booting can be done with eMMC or NVMe (using a U-Boot SPI image on eMMC) This commit also add Turing RK1 to the SBC support matrix. Signed-off-by: Nico Berlee Signed-off-by: Noel Georgi --- .../v1.9/introduction/support-matrix.md | 2 +- .../single-board-computers/turing_rk1.md | 136 ++++++++++++++++++ 2 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 website/content/v1.9/talos-guides/install/single-board-computers/turing_rk1.md diff --git a/website/content/v1.9/introduction/support-matrix.md b/website/content/v1.9/introduction/support-matrix.md index 7f143aea0c..1af2b2c836 100644 --- a/website/content/v1.9/introduction/support-matrix.md +++ b/website/content/v1.9/introduction/support-matrix.md @@ -16,7 +16,7 @@ description: "Table of supported Talos Linux versions and respective platforms." | - cloud | Akamai, AWS, GCP, Azure, CloudStack, Digital Ocean, Exoscale, Hetzner, OpenNebula, OpenStack, Oracle Cloud, Scaleway, Vultr, Upcloud | Akamai, AWS, GCP, Azure, CloudStack, Digital Ocean, Exoscale, Hetzner, OpenNebula, OpenStack, Oracle Cloud, Scaleway, Vultr, Upcloud | | - bare metal | x86: BIOS, UEFI, SecureBoot; arm64: UEFI, SecureBoot; boot: ISO, PXE, disk image | x86: BIOS, UEFI; arm64: UEFI; boot: ISO, PXE, disk image | | - virtualized | VMware, Hyper-V, KVM, Proxmox, Xen | VMware, Hyper-V, KVM, Proxmox, Xen | -| - SBCs | Banana Pi M64, Jetson Nano, Libre Computer Board ALL-H3-CC, Nano Pi R4S, Pine64, Pine64 Rock64, Radxa ROCK Pi 4c, Radxa Rock4c+, Raspberry Pi 4B, Raspberry Pi Compute Module 4 | Banana Pi M64, Jetson Nano, Libre Computer Board ALL-H3-CC, Nano Pi R4S, Orange Pi R1 Plus LTS, Pine64, Pine64 Rock64, Radxa ROCK Pi 4c, Raspberry Pi 4B, Raspberry Pi Compute Module 4 | +| - SBCs | Banana Pi M64, Jetson Nano, Libre Computer Board ALL-H3-CC, Nano Pi R4S, Pine64, Pine64 Rock64, Radxa ROCK Pi 4c, Radxa Rock4c+, Raspberry Pi 4B, Raspberry Pi Compute Module 4 | Banana Pi M64, Jetson Nano, Libre Computer Board ALL-H3-CC, Nano Pi R4S, Orange Pi R1 Plus LTS, Pine64, Pine64 Rock64, Radxa ROCK Pi 4c, Raspberry Pi 4B, Raspberry Pi Compute Module 4, Turing RK1 | | - local | Docker, QEMU | Docker, QEMU | | **Cluster API** | | | | [CAPI Bootstrap Provider Talos](https://github.com/siderolabs/cluster-api-bootstrap-provider-talos) | >= 0.6.6 | >= 0.6.6 | diff --git a/website/content/v1.9/talos-guides/install/single-board-computers/turing_rk1.md b/website/content/v1.9/talos-guides/install/single-board-computers/turing_rk1.md new file mode 100644 index 0000000000..b1336f3ee6 --- /dev/null +++ b/website/content/v1.9/talos-guides/install/single-board-computers/turing_rk1.md @@ -0,0 +1,136 @@ +--- +title: "Turing RK1" +description: "Installing Talos on Turing RK1 SOM using raw disk image." +aliases: + - ../../../single-board-computers/turing_rk1 +--- + +## Prerequisites + +Before you start, ensure you have: + +- `talosctl` +- `tpi` from [github](https://github.com/turing-machines/tpi/releases) +- [crane CLI](https://github.com/google/go-containerregistry/releases) + +Download the latest `talosctl`. + +```bash +curl -Lo /usr/local/bin/talosctl https://github.com/siderolabs/talos/releases/download/{{< release >}}/talosctl-$(uname -s | tr "[:upper:]" "[:lower:]")-amd64 +chmod +x /usr/local/bin/talosctl +``` + +## Download the Image + +Go to `https://factory.talos.dev` select `Single Board Computers`, select the version and select `Turing RK1` from the options. +Choose your desired extensions and fill in the kernel command line arguments if needed. + +Download the disk image and decompress it: + +```bash +curl -LO https://factory.talos.dev/image/[uuid]/v1.9.0/metal-arm64.raw.xz +xz -d metal-arm64.raw.xz +``` + +## Boot options + +You can boot Talos from: + +1. booting from eMMC +2. booting from a USB or NVMe (requires a spi image on the eMMC) + +### Booting from eMMC + +Flash the image to the eMMC and power on the node: (or use the WebUI of the Turing Pi 2) + +```bash +tpi flash -n -i metal-arm64.raw +tpi power on -n +``` + +Proceed to [bootstrapping the node](#bootstrapping-the-node). + +### Booting from USB or NVMe + +#### Requirements + +To boot from USB or NVMe, flash a u-boot SPI image (part of the SBC overlay) to the eMMC. + +#### Steps + +Skip step 1 if you already installed your NVMe drive. + +1. If you have a USB to NVMe adapter, write Talos image to the USB drive: + + ```bash + sudo dd if=metal-arm64.raw of=/dev/sda + ``` + +2. Install the NVMe drive in the Turing Pi 2 board. + + If the NVMe drive is/was already installed: + + - Flash the Turing RK1 variant of [Ubuntu](https://docs.turingpi.com/docs/turing-rk1-flashing-os) to the eMMC. + - Boot into the Ubuntu image and write the Talos image directly to the NVMe drive: + + ```bash + sudo dd if=metal-arm64.raw of=/dev/nvme0n1 + ``` + +3. Find the latest `sbc-rockchip` overlay, download and extract the SBC overlay image: + + - Find the latest release tag of the [sbc-rockchip repo](https://github.com/siderolabs/sbc-rockchip/releases). + - Download the sbc overlay image and extract the SPI image: + + ```bash + crane --platform=linux/arm64 export ghcr.io/siderolabs/sbc-rockchip: | tar x --strip-components=4 artifacts/arm64/u-boot/turingrk1/u-boot-rockchip-spi.bin + ``` + +4. Flash the eMMC with the Talos raw image (even if Talos was previously installed): (or use the WebUI of the Turing Pi 2) + + ```bash + tpi flash -n -i metal-turing_rk1-arm64.raw + ``` + +5. Flash the SPI image to set the boot order and remove unnecessary partitions: (or use the WebUI of the Turing Pi 2) + + ```bash + tpi flash -n -i u-boot-rockchip-spi.bin + tpi power on -n + ``` + +Talos will now boot from the NVMe/USB and enter maintenance mode. + +## Bootstrapping the Node + +To monitor boot messages, run: (repeat) + +```sh +tpi uart -n get +``` + +Wait until instructions for bootstrapping appear. +Follow the UART instructions to connect to the interactive installer: + +```bash +talosctl apply-config --insecure --mode=interactive --nodes +``` + +Alternatively, generate and apply a configuration: + +```bash +talosctl gen config +talosctl apply-config --insecure --nodes -f .yaml +``` + +Copy your `talosconfig` to `~/.talos/config` and fill in the `node` field with the IP address of the node and endpoints. + +Once applied, the cluster will form, and you can use `kubectl`. + +## Retrieve the `kubeconfig` + +Retrieve the admin `kubeconfig` by running: + +```bash +talosctl kubeconfig +```