From 8da264946cda9b4803fd9f2f4dfd0ed25445843b Mon Sep 17 00:00:00 2001 From: Louis SCHNEIDER Date: Mon, 27 Jan 2025 21:27:11 +0100 Subject: [PATCH] docs: add Orange Pi 5 to Image Factory platforms and documentation Add Orange Pi 5 to factory platforms and docs. Signed-off-by: Louis SCHNEIDER backport Orange Pi 5 to v1.9 docs and update talosctl installation instructions Signed-off-by: Noel Georgi --- pkg/machinery/platforms/sbcs.go | 11 ++ .../v1.10/introduction/support-matrix.md | 2 +- .../single-board-computers/orangepi_5.md | 109 ++++++++++++++++++ .../v1.9/introduction/support-matrix.md | 2 +- .../single-board-computers/orangepi_5.md | 109 ++++++++++++++++++ 5 files changed, 231 insertions(+), 2 deletions(-) create mode 100644 website/content/v1.10/talos-guides/install/single-board-computers/orangepi_5.md create mode 100644 website/content/v1.9/talos-guides/install/single-board-computers/orangepi_5.md diff --git a/pkg/machinery/platforms/sbcs.go b/pkg/machinery/platforms/sbcs.go index 873ff1dbb3..33dee95c9a 100644 --- a/pkg/machinery/platforms/sbcs.go +++ b/pkg/machinery/platforms/sbcs.go @@ -216,5 +216,16 @@ func SBCs() []SBC { MinVersion: semver.MustParse("1.9.0-beta.0"), }, + { + Name: "orangepi-5", + + OverlayName: "orangepi-5", + OverlayImage: "siderolabs/sbc-rockchip", + + Label: "Orange Pi 5", + Documentation: "/talos-guides/install/single-board-computers/orangepi_5/", + + MinVersion: semver.MustParse("1.9.2"), + }, } } diff --git a/website/content/v1.10/introduction/support-matrix.md b/website/content/v1.10/introduction/support-matrix.md index d2165d10c5..dc5371dd27 100644 --- a/website/content/v1.10/introduction/support-matrix.md +++ b/website/content/v1.10/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 ROCK 4C+, Radxa ROCK 5B, Raspberry Pi 4B, Raspberry Pi Compute Module 4, Turing RK1 | 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, Radxa ROCK 4C+, Radxa ROCK 5B, Raspberry Pi 4B, Raspberry Pi Compute Module 4, Turing RK1 | +| - SBCs | Banana Pi M64, Jetson Nano, Libre Computer Board ALL-H3-CC, Nano Pi R4S, Pine64, Pine64 Rock64, Radxa ROCK Pi 4C, Radxa ROCK 4C+, Radxa ROCK 5B, Raspberry Pi 4B, Raspberry Pi Compute Module 4, Turing RK1, Orange Pi 5 | 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, Radxa ROCK 4C+, Radxa ROCK 5B, Raspberry Pi 4B, Raspberry Pi Compute Module 4, Turing RK1, Orange Pi 5 | | - local | Docker, QEMU | Docker, QEMU | | **Omni** | | | | [Omni](https://github.com/siderolabs/omni) | >= 0.45.0 | >= 0.45.0 | diff --git a/website/content/v1.10/talos-guides/install/single-board-computers/orangepi_5.md b/website/content/v1.10/talos-guides/install/single-board-computers/orangepi_5.md new file mode 100644 index 0000000000..80b3774472 --- /dev/null +++ b/website/content/v1.10/talos-guides/install/single-board-computers/orangepi_5.md @@ -0,0 +1,109 @@ +--- +title: "Orange Pi 5" +description: "Installing Talos on Orange Pi 5 using raw disk image." +aliases: + - ../../../single-board-computers/orangepi_5 +--- + +## Prerequisites + +Before you start: + +- follow [Installation/talosctl]({{< relref "../talosctl">}}) to intall `talosctl` + +## Boot options + +You can boot Talos from: + +1. booting from SD card +2. booting from a USB or NVMe (requires a spi image on the SPI flash) + +### Booting from SD card + +Go to `https://factory.talos.dev` select `Single Board Computers`, select the version and select `Orange Pi 5` 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]/{{< release >}}/metal-arm64.raw.xz +xz -d metal-arm64.raw.xz +``` + +#### Flash the Image + +The image can be flashed using Etcher on Windows, macOS, or Linux or using dd on Linux: + +```bash +# Replace /dev/ with the destination device +# You can find the device with `lsblk` or `fdisk -l` +sudo dd if=metal-arm64.raw of=/dev/ bs=1M status=progress && sync +``` + +Proceed by following the [getting started guide]({{< relref "../../../introduction/getting-started/#configure-talos-linux" >}}) for further steps on how to configure Talos. + +#### Booting from USB or NVMe + +#### Requirements + +- An SD card to boot the Orange Pi 5 board from in order to flash the SPI flash. + +Go to `https://factory.talos.dev` select `Single Board Computers`, select the version and select `Orange Pi 5` from the options. +Choose your desired extensions and fill in the kernel command line arguments if needed. + +You should also add the `spi_boot: true` overlay extra option in order to remove u-boot from the final image, as the bootloader will be flashed to the SPI flash. + +Download the disk image and decompress it: + +```bash +curl -LO https://factory.talos.dev/image/[uuid]/{{< release >}}/metal-arm64.raw.xz +xz -d metal-arm64.raw.xz +``` + +#### Steps + +1. Make sure to install the NVMe or USB drive in the Orange Pi 5 board. + +2. Boot the Orange Pi 5 board from the SD card: + + - Flash the Orange Pi 5 variant of [Ubuntu](http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-pi-5.html) to an SD card. + - Insert the SD card into the Orange Pi 5 board. + - Boot into the Ubuntu image. + - Download [crane CLI](https://github.com/google/go-containerregistry/releases) on the Ubuntu image. + +3. From the Ubuntu image, find the latest `sbc-rockchip` overlay, download and extract the u-boot SPI image: + + - Find the latest release tag of the [sbc-rockchip repo](https://github.com/siderolabs/sbc-rockchip/releases). + - Download and extract the u-boot SPI image: + + ```bash + crane --platform=linux/arm64 export ghcr.io/siderolabs/sbc-rockchip: | tar x --strip-components=4 artifacts/arm64/u-boot/orangepi-5/u-boot-rockchip-spi.bin + ``` + +4. Flash the SPI flash with the u-boot SPI image: + + ```bash + devicesize=$(blockdev --getsz /dev/mtdblock0) + dd if=/dev/zero of=/dev/mtdblock0 bs=1M count=$devicesize status=progress && sync + dd if=u-boot-rockchip-spi.bin of=/dev/mtdblock0 bs=1M status=progress && sync + ``` + +5. Flash the Talos raw image to the NVMe or USB drive: + + ```bash + sudo dd if=metal-arm64.raw of=/dev/ bs=1M status=progress && sync + ``` + +6. Shutdown the Orange Pi 5 board and remove the SD card. + +On the next boot, Talos will now boot from the NVMe/USB and enter maintenance mode. + +Proceed by following the [getting started guide]({{< relref "../../../introduction/getting-started/#configure-talos-linux" >}}) for further steps on how to configure Talos. + +## Troubleshooting + +### Serial console + +If you experience any issues you can check the serial console. +Follow the [official guideline](https://drive.google.com/drive/folders/1ob_qOW2MMa7oncxIW6625NqwXHRxdeAo) (Section 2.18 — "How to use the debugging serial port") +on how to connect a serial adapter. diff --git a/website/content/v1.9/introduction/support-matrix.md b/website/content/v1.9/introduction/support-matrix.md index cee8d0f715..798fdffda0 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 ROCK 4C+, Radxa ROCK 5B, Raspberry Pi 4B, Raspberry Pi Compute Module 4, Turing RK1 | 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 ROCK 4C+, Radxa ROCK 5B, Raspberry Pi 4B, Raspberry Pi Compute Module 4, Turing RK1, Orange Pi 5 | 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 | | - local | Docker, QEMU | Docker, QEMU | | **Omni** | | | | [Omni](https://github.com/siderolabs/omni) | >= 0.45.0 | >= 0.43.0 | diff --git a/website/content/v1.9/talos-guides/install/single-board-computers/orangepi_5.md b/website/content/v1.9/talos-guides/install/single-board-computers/orangepi_5.md new file mode 100644 index 0000000000..80b3774472 --- /dev/null +++ b/website/content/v1.9/talos-guides/install/single-board-computers/orangepi_5.md @@ -0,0 +1,109 @@ +--- +title: "Orange Pi 5" +description: "Installing Talos on Orange Pi 5 using raw disk image." +aliases: + - ../../../single-board-computers/orangepi_5 +--- + +## Prerequisites + +Before you start: + +- follow [Installation/talosctl]({{< relref "../talosctl">}}) to intall `talosctl` + +## Boot options + +You can boot Talos from: + +1. booting from SD card +2. booting from a USB or NVMe (requires a spi image on the SPI flash) + +### Booting from SD card + +Go to `https://factory.talos.dev` select `Single Board Computers`, select the version and select `Orange Pi 5` 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]/{{< release >}}/metal-arm64.raw.xz +xz -d metal-arm64.raw.xz +``` + +#### Flash the Image + +The image can be flashed using Etcher on Windows, macOS, or Linux or using dd on Linux: + +```bash +# Replace /dev/ with the destination device +# You can find the device with `lsblk` or `fdisk -l` +sudo dd if=metal-arm64.raw of=/dev/ bs=1M status=progress && sync +``` + +Proceed by following the [getting started guide]({{< relref "../../../introduction/getting-started/#configure-talos-linux" >}}) for further steps on how to configure Talos. + +#### Booting from USB or NVMe + +#### Requirements + +- An SD card to boot the Orange Pi 5 board from in order to flash the SPI flash. + +Go to `https://factory.talos.dev` select `Single Board Computers`, select the version and select `Orange Pi 5` from the options. +Choose your desired extensions and fill in the kernel command line arguments if needed. + +You should also add the `spi_boot: true` overlay extra option in order to remove u-boot from the final image, as the bootloader will be flashed to the SPI flash. + +Download the disk image and decompress it: + +```bash +curl -LO https://factory.talos.dev/image/[uuid]/{{< release >}}/metal-arm64.raw.xz +xz -d metal-arm64.raw.xz +``` + +#### Steps + +1. Make sure to install the NVMe or USB drive in the Orange Pi 5 board. + +2. Boot the Orange Pi 5 board from the SD card: + + - Flash the Orange Pi 5 variant of [Ubuntu](http://www.orangepi.org/html/hardWare/computerAndMicrocontrollers/service-and-support/Orange-pi-5.html) to an SD card. + - Insert the SD card into the Orange Pi 5 board. + - Boot into the Ubuntu image. + - Download [crane CLI](https://github.com/google/go-containerregistry/releases) on the Ubuntu image. + +3. From the Ubuntu image, find the latest `sbc-rockchip` overlay, download and extract the u-boot SPI image: + + - Find the latest release tag of the [sbc-rockchip repo](https://github.com/siderolabs/sbc-rockchip/releases). + - Download and extract the u-boot SPI image: + + ```bash + crane --platform=linux/arm64 export ghcr.io/siderolabs/sbc-rockchip: | tar x --strip-components=4 artifacts/arm64/u-boot/orangepi-5/u-boot-rockchip-spi.bin + ``` + +4. Flash the SPI flash with the u-boot SPI image: + + ```bash + devicesize=$(blockdev --getsz /dev/mtdblock0) + dd if=/dev/zero of=/dev/mtdblock0 bs=1M count=$devicesize status=progress && sync + dd if=u-boot-rockchip-spi.bin of=/dev/mtdblock0 bs=1M status=progress && sync + ``` + +5. Flash the Talos raw image to the NVMe or USB drive: + + ```bash + sudo dd if=metal-arm64.raw of=/dev/ bs=1M status=progress && sync + ``` + +6. Shutdown the Orange Pi 5 board and remove the SD card. + +On the next boot, Talos will now boot from the NVMe/USB and enter maintenance mode. + +Proceed by following the [getting started guide]({{< relref "../../../introduction/getting-started/#configure-talos-linux" >}}) for further steps on how to configure Talos. + +## Troubleshooting + +### Serial console + +If you experience any issues you can check the serial console. +Follow the [official guideline](https://drive.google.com/drive/folders/1ob_qOW2MMa7oncxIW6625NqwXHRxdeAo) (Section 2.18 — "How to use the debugging serial port") +on how to connect a serial adapter.