> ## Documentation Index
> Fetch the complete documentation index at: https://docs.siderolabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Radxa ROCK PI 4

> Installing Talos on Radxa ROCK PI 4a/4b SBC using raw disk image.

## Prerequisites

You will need

* `talosctl`
* an SD card or an eMMC or USB drive or an nVME drive

Download the latest `talosctl`.


&#x20; curl -Lo /usr/local/bin/talosctl https\://github.com/siderolabs/talos/releases/download/v1.15.0-beta.0/talosctl-\$(uname -s | tr "\[:upper:]" "\[:lower:]")-amd64
&#x20; chmod +x /usr/local/bin/talosctl
&#x20;&#x20;

## Download the image

The default schematic id for "vanilla" RockPi 4 is `25d2690bb48685de5939edd6dee83a0e09591311e64ad03c550de00f8a521f51`.
Refer to the [Image Factory](https://docs.siderolabs.com/talos/v1.15/learn-more/image-factory.md) documentation for more information.

Download the image and decompress it:


&#x20; curl -LO https\://factory.talos.dev/image/25d2690bb48685de5939edd6dee83a0e09591311e64ad03c550de00f8a521f51/v1.15.0-beta.0/metal-arm64.raw\.xz
&#x20; xz -d metal-arm64.raw\.xz
&#x20;&#x20;

## Writing the image

The path to your SD card/eMMC/USB/nVME can be found using `fdisk` on Linux or `diskutil` on macOS.
In this example, we will assume `/dev/mmcblk0`.

Now `dd` the image to your SD card:

```bash theme={null}
sudo dd if=metal-arm64.raw of=/dev/mmcblk0 conv=fsync bs=4M
```

The user has two options to proceed:

* booting from a SD card or eMMC
* booting from a USB or nVME (requires the RockPi board to have the SPI flash)

### Booting from SD card or eMMC

Insert the SD card into the board, turn it on and proceed to [bootstrapping the node](#bootstrapping-the-node).

### Booting from USB or nVME

This requires the user to flash the RockPi SPI flash with u-boot.

Follow the Radxa docs on [Install on M.2 NVME SSD](https://wiki.radxa.com/Rockpi4/install/NVME)

After these above steps, Talos will boot from the nVME/USB and enter maintenance mode.
Proceed to [bootstrapping the node](#bootstrapping-the-node).

## Bootstrapping the node

Wait for the console to show you the instructions for bootstrapping the node.
Generate the machine configuration for the cluster (see [Getting Started](https://docs.siderolabs.com/talos/v1.15/getting-started/getting-started.md)
for the full flow), and apply it to the node:

```bash theme={null}
talosctl gen config <cluster-name> https://<endpoint>:6443
talosctl apply-config --insecure --nodes <node IP or DNS name> --file <controlplane|worker>.yaml
```

Once the configuration is applied, the cluster will form and you can then use `kubectl`.

## Retrieve the `kubeconfig`

Retrieve the admin `kubeconfig` by running:

```bash theme={null}
talosctl kubeconfig
```

## Upgrading

For example, to upgrade to the latest version of Talos, you can run:


&#x20; talosctl -n \<node IP or DNS name> upgrade --image=factory.talos.dev/metal-installer/25d2690bb48685de5939edd6dee83a0e09591311e64ad03c550de00f8a521f51:v1.15.0-beta.0
&#x20;&#x20;


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.