mirror of
https://github.com/lukaszraczylo/talos-builder.git
synced 2026-07-11 06:03:01 +00:00
Remove Pi4 from documentatino (sbc-raspberrypi covers that board)
This commit is contained in:
@@ -60,7 +60,7 @@ jobs:
|
|||||||
# ──────────────────────────────────────────────
|
# ──────────────────────────────────────────────
|
||||||
|
|
||||||
- name: "Pi5 — Prepare (checkouts & patches)"
|
- name: "Pi5 — Prepare (checkouts & patches)"
|
||||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} checkouts patches-pi5
|
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} checkouts patches
|
||||||
|
|
||||||
- name: "Pi5 — Kernel"
|
- name: "Pi5 — Kernel"
|
||||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} REGISTRY=${{ env.REGISTRY }} REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} kernel
|
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} REGISTRY=${{ env.REGISTRY }} REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} kernel
|
||||||
@@ -84,10 +84,10 @@ jobs:
|
|||||||
REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} \
|
REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} \
|
||||||
ASSET_TYPE=installer \
|
ASSET_TYPE=installer \
|
||||||
EXTENSIONS="${{ env.EXTENSIONS }}" \
|
EXTENSIONS="${{ env.EXTENSIONS }}" \
|
||||||
installer-pi5
|
installer
|
||||||
crane push \
|
crane push \
|
||||||
./checkouts/talos/_out/installer-arm64.tar \
|
./checkouts/talos/_out/installer-arm64.tar \
|
||||||
${{ env.REGISTRY }}/${{ env.REGISTRY_USERNAME }}/installer:${{ github.ref_name }}-rpi5
|
${{ env.REGISTRY }}/${{ env.REGISTRY_USERNAME }}/installer:${{ github.ref_name }}
|
||||||
|
|
||||||
- name: "Pi5 — Build metal disk image"
|
- name: "Pi5 — Build metal disk image"
|
||||||
run: |
|
run: |
|
||||||
@@ -96,50 +96,9 @@ jobs:
|
|||||||
REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} \
|
REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} \
|
||||||
ASSET_TYPE=metal \
|
ASSET_TYPE=metal \
|
||||||
EXTENSIONS="${{ env.EXTENSIONS }}" \
|
EXTENSIONS="${{ env.EXTENSIONS }}" \
|
||||||
installer-pi5
|
installer
|
||||||
unzstd -c ./checkouts/talos/_out/metal-arm64.raw.zst | xz -T0 > ./metal-arm64-rpi5.raw.xz
|
unzstd -c ./checkouts/talos/_out/metal-arm64.raw.zst | xz -T0 > ./metal-arm64-rpi5.raw.xz
|
||||||
|
|
||||||
# ──────────────────────────────────────────────
|
|
||||||
# Raspberry Pi 4 / CM4
|
|
||||||
# ──────────────────────────────────────────────
|
|
||||||
|
|
||||||
- name: "Pi4 — Prepare (clean, re-checkout & patches)"
|
|
||||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} checkouts-clean checkouts patches-pi4
|
|
||||||
|
|
||||||
- name: "Pi4 — Kernel"
|
|
||||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} REGISTRY=${{ env.REGISTRY }} REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} kernel
|
|
||||||
|
|
||||||
- name: "Pi4 — Kernel initramfs"
|
|
||||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} REGISTRY=${{ env.REGISTRY }} REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} kern_initramfs
|
|
||||||
|
|
||||||
- name: "Pi4 — Installer base"
|
|
||||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} REGISTRY=${{ env.REGISTRY }} REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} installer-base
|
|
||||||
|
|
||||||
- name: "Pi4 — Imager"
|
|
||||||
run: make TALOS_VERSION=${{ env.TALOS_VERSION }} REGISTRY=${{ env.REGISTRY }} REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} imager
|
|
||||||
|
|
||||||
- name: "Pi4 — Build installer image (with extensions)"
|
|
||||||
run: |
|
|
||||||
make TALOS_VERSION=${{ env.TALOS_VERSION }} \
|
|
||||||
REGISTRY=${{ env.REGISTRY }} \
|
|
||||||
REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} \
|
|
||||||
ASSET_TYPE=installer \
|
|
||||||
EXTENSIONS="${{ env.EXTENSIONS }}" \
|
|
||||||
installer-pi4
|
|
||||||
crane push \
|
|
||||||
./checkouts/talos/_out/installer-arm64.tar \
|
|
||||||
${{ env.REGISTRY }}/${{ env.REGISTRY_USERNAME }}/installer:${{ github.ref_name }}-rpi4
|
|
||||||
|
|
||||||
- name: "Pi4 — Build metal disk image"
|
|
||||||
run: |
|
|
||||||
make TALOS_VERSION=${{ env.TALOS_VERSION }} \
|
|
||||||
REGISTRY=${{ env.REGISTRY }} \
|
|
||||||
REGISTRY_USERNAME=${{ env.REGISTRY_USERNAME }} \
|
|
||||||
ASSET_TYPE=metal \
|
|
||||||
EXTENSIONS="${{ env.EXTENSIONS }}" \
|
|
||||||
installer-pi4
|
|
||||||
unzstd -c ./checkouts/talos/_out/metal-arm64.raw.zst | xz -T0 > ./metal-arm64-rpi4.raw.xz
|
|
||||||
|
|
||||||
# ──────────────────────────────────────────────
|
# ──────────────────────────────────────────────
|
||||||
# Release
|
# Release
|
||||||
# ──────────────────────────────────────────────
|
# ──────────────────────────────────────────────
|
||||||
@@ -149,12 +108,11 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
run: |
|
run: |
|
||||||
INSTALLER_PI5="${{ env.REGISTRY }}/${{ env.REGISTRY_USERNAME }}/installer:${{ github.ref_name }}-rpi5"
|
INSTALLER_PI5="${{ env.REGISTRY }}/${{ env.REGISTRY_USERNAME }}/installer:${{ github.ref_name }}"
|
||||||
INSTALLER_PI4="${{ env.REGISTRY }}/${{ env.REGISTRY_USERNAME }}/installer:${{ github.ref_name }}-rpi4"
|
|
||||||
NOTES=$(cat <<EOF
|
NOTES=$(cat <<EOF
|
||||||
> ⚠️ Experimental build, use at your own risk.
|
> ⚠️ Experimental build, use at your own risk.
|
||||||
|
|
||||||
Patched Talos Linux for **Raspberry Pi 5** and **Raspberry Pi 4 / CM4**, including NVMe, NIC and USB support.
|
Patched Talos Linux for **Raspberry Pi 5**, including NVMe, NIC and USB support.
|
||||||
|
|
||||||
### Extensions included
|
### Extensions included
|
||||||
|
|
||||||
@@ -166,13 +124,12 @@ jobs:
|
|||||||
| Platform | Disk image | Installer image |
|
| Platform | Disk image | Installer image |
|
||||||
|----------|-----------|----------------|
|
|----------|-----------|----------------|
|
||||||
| **RPi 5 / CM5** | \`metal-arm64-rpi5.raw.xz\` | \`${INSTALLER_PI5}\` |
|
| **RPi 5 / CM5** | \`metal-arm64-rpi5.raw.xz\` | \`${INSTALLER_PI5}\` |
|
||||||
| **RPi 4 / CM4** | \`metal-arm64-rpi4.raw.xz\` | \`${INSTALLER_PI4}\` |
|
|
||||||
|
|
||||||
### Fresh install
|
### Fresh install
|
||||||
|
|
||||||
Download the disk image for your board and flash it:
|
Download the disk image for your board and flash it:
|
||||||
\`\`\`bash
|
\`\`\`bash
|
||||||
xz -d metal-arm64-rpi5.raw.xz # or metal-arm64-rpi4.raw.xz
|
xz -d metal-arm64-rpi5.raw.xz
|
||||||
dd if=metal-arm64-rpi5.raw of=<disk> bs=4M status=progress
|
dd if=metal-arm64-rpi5.raw of=<disk> bs=4M status=progress
|
||||||
\`\`\`
|
\`\`\`
|
||||||
|
|
||||||
@@ -182,15 +139,10 @@ jobs:
|
|||||||
# Raspberry Pi 5
|
# Raspberry Pi 5
|
||||||
talosctl upgrade --nodes <NODE_IP> --image ${INSTALLER_PI5}
|
talosctl upgrade --nodes <NODE_IP> --image ${INSTALLER_PI5}
|
||||||
|
|
||||||
# Raspberry Pi 4 / CM4
|
|
||||||
talosctl upgrade --nodes <NODE_IP> --image ${INSTALLER_PI4}
|
|
||||||
\`\`\`
|
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
)
|
)
|
||||||
gh release create \
|
gh release create \
|
||||||
${{ github.ref_name }} \
|
${{ github.ref_name }} \
|
||||||
metal-arm64-rpi5.raw.xz \
|
metal-arm64-rpi5.raw.xz \
|
||||||
metal-arm64-rpi4.raw.xz \
|
|
||||||
--title "${{ github.ref_name }}" \
|
--title "${{ github.ref_name }}" \
|
||||||
--notes "$NOTES"
|
--notes "$NOTES"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Raspberry Pi 5 & Pi 4 Talos Builder
|
# Raspberry Pi 5 Talos Builder
|
||||||
|
|
||||||
This repository builds custom Talos Linux images for the **Raspberry Pi 5** and **Raspberry Pi 4 / CM4**. It patches the Kernel and Talos build process to use the Linux Kernel source provided by [raspberrypi/linux](https://github.com/raspberrypi/linux).
|
This repository builds custom Talos Linux images for the **Raspberry Pi 5**. It patches the Kernel and Talos build process to use the Linux Kernel source provided by [raspberrypi/linux](https://github.com/raspberrypi/linux).
|
||||||
|
|
||||||
## Tested on
|
## Tested on
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ So far, this release has been verified on:
|
|||||||
|
|
||||||
## How to use?
|
## How to use?
|
||||||
|
|
||||||
Each release contains disk images and installer images for both Raspberry Pi 5 and Raspberry Pi 4 / CM4 platforms.
|
Each release contains disk images and installer images for the Raspberry Pi 5 platforms.
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
|
|
||||||
@@ -28,10 +28,6 @@ Initial:
|
|||||||
# Raspberry Pi 5 / CM5
|
# Raspberry Pi 5 / CM5
|
||||||
xz -d metal-arm64-rpi5.raw.xz
|
xz -d metal-arm64-rpi5.raw.xz
|
||||||
dd if=metal-arm64-rpi5.raw of=<disk> bs=4M status=progress
|
dd if=metal-arm64-rpi5.raw of=<disk> bs=4M status=progress
|
||||||
|
|
||||||
# Raspberry Pi 4 / CM4
|
|
||||||
xz -d metal-arm64-rpi4.raw.xz
|
|
||||||
dd if=metal-arm64-rpi4.raw of=<disk> bs=4M status=progress
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Upgrade:
|
Upgrade:
|
||||||
@@ -41,11 +37,6 @@ Upgrade:
|
|||||||
talosctl upgrade \
|
talosctl upgrade \
|
||||||
--nodes <node IP> \
|
--nodes <node IP> \
|
||||||
--image ghcr.io/talos-rpi5/installer:<version>-rpi5
|
--image ghcr.io/talos-rpi5/installer:<version>-rpi5
|
||||||
|
|
||||||
# Raspberry Pi 4 / CM4
|
|
||||||
talosctl upgrade \
|
|
||||||
--nodes <node IP> \
|
|
||||||
--image ghcr.io/talos-rpi5/installer:<version>-rpi4
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Building
|
## Building
|
||||||
@@ -54,10 +45,10 @@ talosctl upgrade \
|
|||||||
|
|
||||||
The CI workflow builds and publishes images automatically. It is triggered when you push a version tag:
|
The CI workflow builds and publishes images automatically. It is triggered when you push a version tag:
|
||||||
|
|
||||||
- **Push a tag** matching `v*.*.*` — this builds both Raspberry Pi 5 and Pi 4 / CM4 images and creates a GitHub Release:
|
- **Push a tag** matching `v*.*.*` — this builds the Raspberry Pi 5 image and creates a GitHub Release:
|
||||||
```bash
|
```bash
|
||||||
git tag v1.11.6
|
git tag v1.12.6
|
||||||
git push origin v1.11.6
|
git push origin v1.12.6
|
||||||
```
|
```
|
||||||
|
|
||||||
### Local build
|
### Local build
|
||||||
@@ -67,16 +58,13 @@ If you'd like to make modifications, it is possible to create your own build.
|
|||||||
```bash
|
```bash
|
||||||
# Full pipeline for Raspberry Pi 5
|
# Full pipeline for Raspberry Pi 5
|
||||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> pi5
|
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> pi5
|
||||||
|
|
||||||
# Full pipeline for Raspberry Pi 4 / CM4
|
|
||||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> pi4
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Or step by step:
|
Or step by step:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Clone dependencies and apply patches
|
# Clone dependencies and apply patches
|
||||||
make checkouts patches-pi5 # or patches-pi4
|
make checkouts patches
|
||||||
|
|
||||||
# Build the Linux Kernel (can take a while)
|
# Build the Linux Kernel (can take a while)
|
||||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> kernel
|
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> kernel
|
||||||
@@ -85,7 +73,7 @@ make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> kernel
|
|||||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> overlay
|
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> overlay
|
||||||
|
|
||||||
# Build the installer and disk image
|
# Build the installer and disk image
|
||||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> installer-pi5 # or installer-pi4
|
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> installer
|
||||||
```
|
```
|
||||||
|
|
||||||
### Extensions support
|
### Extensions support
|
||||||
@@ -122,7 +110,7 @@ DIGEST=$(crane digest ghcr.io/siderolabs/foo-extension:v1.0.0)
|
|||||||
|
|
||||||
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> \
|
make REGISTRY=ghcr.io REGISTRY_USERNAME=<username> \
|
||||||
EXTENSIONS="ghcr.io/siderolabs/foo-extension:v1.0.0@${DIGEST}" \
|
EXTENSIONS="ghcr.io/siderolabs/foo-extension:v1.0.0@${DIGEST}" \
|
||||||
installer-pi5
|
installer
|
||||||
```
|
```
|
||||||
|
|
||||||
Pass multiple extensions as a space-separated string inside the quotes.
|
Pass multiple extensions as a space-separated string inside the quotes.
|
||||||
|
|||||||
Reference in New Issue
Block a user