diff --git a/.github/workflows/build-katsu.yml b/.github/workflows/build-katsu.yml index fa18998..7285991 100644 --- a/.github/workflows/build-katsu.yml +++ b/.github/workflows/build-katsu.yml @@ -58,11 +58,18 @@ jobs: - x86_64 - aarch64 variant: + # generic efi - base/base-disk - flagship/base-disk - gnome/base-disk - plasma/base-disk - xfce/base-disk + # rpi with uboot + - ports/rpi/flagship + - ports/rpi/gnome + - ports/rpi/plasma + - ports/rpi/xfce + # chromebooks - indev #- ports/chromebook/flagship #- ports/chromebook/gnome #- ports/chromebook/plasma @@ -77,6 +84,15 @@ jobs: variant: plasma/plasma-chromebook - arch: aarch64 variant: xfce/xfce-chromebook + # exclude pi x86 + - arch: x86_64 + variant: ports/rpi/flagship + - arch: x86_64 + variant: ports/rpi/gnome + - arch: x86_64 + variant: ports/rpi/plasma + - arch: x86_64 + variant: ports/rpi/xfce runs-on: ${{ matrix.arch == 'x86_64' && 'ubuntu-latest' || 'arm64' }} container: image: ghcr.io/terrapkg/builder:f41 diff --git a/katsu/modules/base/cleanup.sh b/katsu/modules/base/cleanup.sh index 5b0ca27..a368a95 100644 --- a/katsu/modules/base/cleanup.sh +++ b/katsu/modules/base/cleanup.sh @@ -5,15 +5,7 @@ systemctl disable chronyd echo max_parallel_downloads=20 >> /etc/dnf/dnf.conf echo defaultyes=True >> /etc/dnf/dnf.conf - -# if aarch64 -arch=$(uname -m) -if [[ $arch == "aarch64" ]]; then -cp -P /usr/share/uboot/rpi_arm64/u-boot.bin /boot/efi/rpi-u-boot.bin -cp -P /usr/share/uboot/rpi_3/u-boot.bin /boot/efi/rpi3-u-boot.bin -cp -P /usr/share/uboot/rpi_4/u-boot.bin /boot/efi/rpi4-u-boot.bin -fi rm -f /var/lib/systemd/random-seed rm -f /etc/NetworkManager/system-connections/*.nmconnection diff --git a/katsu/modules/ports/rpi/flagship.yaml b/katsu/modules/ports/rpi/flagship.yaml new file mode 100644 index 0000000..91c5b5a --- /dev/null +++ b/katsu/modules/ports/rpi/flagship.yaml @@ -0,0 +1,18 @@ +builder: dnf + +import: + - rpi.yaml + - ../../flagship/flagship.yaml + - ../../flagship/base-disk-aarch64.yaml + +distro: Ultramarine Linux 41 Flagship (Raspberry Pi) + +out_file: ultramarine-rpi-flagship-41.img + +bootloader: grub + +kernel_cmdline: "quiet rhgb" + +dnf: + releasever: 41 + exec: dnf4 diff --git a/katsu/modules/ports/rpi/gnome.yaml b/katsu/modules/ports/rpi/gnome.yaml new file mode 100644 index 0000000..c683735 --- /dev/null +++ b/katsu/modules/ports/rpi/gnome.yaml @@ -0,0 +1,18 @@ +builder: dnf + +import: + - rpi.yaml + - ../../gnome/gnome.yaml + - ../../gnome/base-disk-aarch64.yaml + +distro: Ultramarine Linux 41 GNOME (Raspberry Pi) + +out_file: ultramarine-rpi-gnome-41.img + +bootloader: grub + +kernel_cmdline: "quiet rhgb" + +dnf: + releasever: 41 + exec: dnf4 diff --git a/katsu/modules/ports/rpi/plasma.yaml b/katsu/modules/ports/rpi/plasma.yaml new file mode 100644 index 0000000..098c71c --- /dev/null +++ b/katsu/modules/ports/rpi/plasma.yaml @@ -0,0 +1,18 @@ +builder: dnf + +import: + - rpi.yaml + - ../../plasma/plasma.yaml + - ../../plasma/base-disk-aarch64.yaml + +distro: Ultramarine Linux 41 Plasma (Raspberry Pi) + +out_file: ultramarine-rpi-plasma-41.img + +bootloader: grub + +kernel_cmdline: "quiet rhgb" + +dnf: + releasever: 41 + exec: dnf4 diff --git a/katsu/modules/ports/rpi/readme.md b/katsu/modules/ports/rpi/readme.md new file mode 100644 index 0000000..abc3a1b --- /dev/null +++ b/katsu/modules/ports/rpi/readme.md @@ -0,0 +1,12 @@ +# Raspberry Pi (64bit) + +This port supports the following Pi models + +- Raspberry Pi Zero 2 (No Desktop) +- Raspberry Pi 3 (Xfce or No Desktop) +- Raspberry Pi 4 (All Editions) +- Raspberry Pi 5 (All Editions) + +## Known Issues + +UPDATE ME diff --git a/katsu/modules/ports/rpi/rpi.yaml b/katsu/modules/ports/rpi/rpi.yaml new file mode 100644 index 0000000..ccedf97 --- /dev/null +++ b/katsu/modules/ports/rpi/rpi.yaml @@ -0,0 +1,26 @@ +builder: dnf + +scripts: + post: + - id: cleanup + name: Clean up system + file: ../../base/cleanup.sh + - id: selinux-setup + name: Set up SELinux + file: ../../base/selinux.sh + chroot: false + - id: buildstamp + name: Generate buildstamp + file: ../../base/buildstamp.sh + - id: uboot + name: Install Raspberry Pi uboot + file: uboot.sh + +dnf: + releasever: 41 + exec: dnf4 + packages: + - kernel-rpi + - linux-firmware-rpi + - rpi-utils + - uboot diff --git a/katsu/modules/ports/rpi/uboot.sh b/katsu/modules/ports/rpi/uboot.sh new file mode 100644 index 0000000..aad0fb3 --- /dev/null +++ b/katsu/modules/ports/rpi/uboot.sh @@ -0,0 +1,5 @@ +#!/bin/bash -x +#install pi uboot files +cp -P /usr/share/uboot/rpi_arm64/u-boot.bin /boot/efi/rpi-u-boot.bin +cp -P /usr/share/uboot/rpi_3/u-boot.bin /boot/efi/rpi3-u-boot.bin +cp -P /usr/share/uboot/rpi_4/u-boot.bin /boot/efi/rpi4-u-boot.bin \ No newline at end of file diff --git a/katsu/modules/ports/rpi/xfce.yaml b/katsu/modules/ports/rpi/xfce.yaml new file mode 100644 index 0000000..42db4f8 --- /dev/null +++ b/katsu/modules/ports/rpi/xfce.yaml @@ -0,0 +1,18 @@ +builder: dnf + +import: + - rpi.yaml + - ../../xfce/xfce.yaml + - ../../xfce/base-disk-aarch64.yaml + +distro: Ultramarine Linux 41 Xfce (Raspberry Pi) + +out_file: ultramarine-rpi-xfce-41.img + +bootloader: grub + +kernel_cmdline: "quiet rhgb" + +dnf: + releasever: 41 + exec: dnf4