From d75ef479dc94dd5f7390ef187b705c22f7db1bfb Mon Sep 17 00:00:00 2001 From: Mikkel Schmidt Date: Mon, 4 Nov 2024 01:43:44 +0100 Subject: [PATCH 1/3] SBC: add cb2 support --- .github/workflow_config.yml | 3 ++- config/raspberry/cb2 | 15 +++++++++++++++ .../boot/rk3566-bigtreetech-pi2.dtb | Bin 0 -> 118573 bytes src/modules/cb2-dtb/start_chroot_script | 18 ++++++++++++++++++ 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 config/raspberry/cb2 create mode 100644 src/modules/cb2-dtb/filesystem/boot/rk3566-bigtreetech-pi2.dtb create mode 100644 src/modules/cb2-dtb/start_chroot_script diff --git a/.github/workflow_config.yml b/.github/workflow_config.yml index 59a993b0d..4a42db272 100644 --- a/.github/workflow_config.yml +++ b/.github/workflow_config.yml @@ -26,7 +26,7 @@ buildtest: - raspberry/rpi32 # - raspberry/rpi64 - raspberry/opicm4 - + - raspberry/cb2 # This is used to setup release build chain. # Each entry will be used in setup matrix for releases @@ -39,4 +39,5 @@ release: # - orangepi/orangepi_zero2 # Raspberry Pi OS based images - raspberry/rpi32 + - raspberry/cb2 # - raspberry/rpi64 diff --git a/config/raspberry/cb2 b/config/raspberry/cb2 new file mode 100644 index 000000000..8d068d3f6 --- /dev/null +++ b/config/raspberry/cb2 @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +# Shebang for better file detection + +# Just guessing, there's zero information on the architecture of this image. +BASE_ARCH="arm64" + +# Third party OrangePi 4 Raspberry Pi OS image. +DOWNLOAD_URL_CHECKSUM="https://gist.githubusercontent.com/miklschmidt/c42f91aced564b1a41001b82d98d47d0/raw/ec884dda8844fd2cb17490306044819dfa68ad75/Orangepi3b_1.0.0_raspios_bullseye_server_linux5.10.160.7z.sha256" +DOWNLOAD_URL_IMAGE="https://github.com/leeboby/raspberry-pi-os-images/releases/download/opi3b/Orangepi3b_1.0.0_raspios_bullseye_server_linux5.10.160.7z" +MODULES=$MODULES",cb2-dtb" + +# export variables +export BASE_ARCH +export DOWNLOAD_URL_CHECKSUM +export DOWNLOAD_URL_IMAGE diff --git a/src/modules/cb2-dtb/filesystem/boot/rk3566-bigtreetech-pi2.dtb b/src/modules/cb2-dtb/filesystem/boot/rk3566-bigtreetech-pi2.dtb new file mode 100644 index 0000000000000000000000000000000000000000..9f2eecf463f2b3807f629e79792f6fba9b1f5eb0 GIT binary patch literal 118573 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 F@PC!_vDN?p literal 0 HcmV?d00001 diff --git a/src/modules/cb2-dtb/start_chroot_script b/src/modules/cb2-dtb/start_chroot_script new file mode 100644 index 000000000..a192cec94 --- /dev/null +++ b/src/modules/cb2-dtb/start_chroot_script @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +# Installs the CB2 device tree blob on the system +# GPL V3 +######## + +# Source error handling, leave this in place +set -Ee + +envFile="/boot/config.txt" +if [ -f "/boot/armbianEnv.txt" ]; then + envFile="/boot/armbianEnv.txt" +fi +if [ -f "/boot/orangepiEnv.txt" ]; then + envFile="/boot/orangepiEnv.txt" +fi + +sed -i '/fdtfile=.+$/d' "${envFile}" +echo -e "\nfdtfile=rk3566-bigtreetech-pi2.dtb" >> "${envFile}" From c2fa91d4e4b72167e217252844bfd7368ad3a556 Mon Sep 17 00:00:00 2001 From: Mikkel Schmidt Date: Mon, 4 Nov 2024 23:56:54 +0100 Subject: [PATCH 2/3] CB2: actually unpack the dtb --- src/modules/cb2-dtb/start_chroot_script | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/cb2-dtb/start_chroot_script b/src/modules/cb2-dtb/start_chroot_script index a192cec94..a424cb5cc 100644 --- a/src/modules/cb2-dtb/start_chroot_script +++ b/src/modules/cb2-dtb/start_chroot_script @@ -6,6 +6,8 @@ # Source error handling, leave this in place set -Ee +unpack /filesystem/boot /boot root + envFile="/boot/config.txt" if [ -f "/boot/armbianEnv.txt" ]; then envFile="/boot/armbianEnv.txt" From 57900b2edad426bfc87dd9f5921d3338212675e8 Mon Sep 17 00:00:00 2001 From: Mikkel Schmidt Date: Tue, 5 Nov 2024 04:40:37 +0100 Subject: [PATCH 3/3] Image: attempt to fix cb2 dtb --- .../boot/{ => dtb}/rk3566-bigtreetech-pi2.dtb | Bin src/modules/cb2-dtb/start_chroot_script | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) rename src/modules/cb2-dtb/filesystem/boot/{ => dtb}/rk3566-bigtreetech-pi2.dtb (100%) diff --git a/src/modules/cb2-dtb/filesystem/boot/rk3566-bigtreetech-pi2.dtb b/src/modules/cb2-dtb/filesystem/boot/dtb/rk3566-bigtreetech-pi2.dtb similarity index 100% rename from src/modules/cb2-dtb/filesystem/boot/rk3566-bigtreetech-pi2.dtb rename to src/modules/cb2-dtb/filesystem/boot/dtb/rk3566-bigtreetech-pi2.dtb diff --git a/src/modules/cb2-dtb/start_chroot_script b/src/modules/cb2-dtb/start_chroot_script index a424cb5cc..7147990fe 100644 --- a/src/modules/cb2-dtb/start_chroot_script +++ b/src/modules/cb2-dtb/start_chroot_script @@ -6,7 +6,7 @@ # Source error handling, leave this in place set -Ee -unpack /filesystem/boot /boot root +unpack /filesystem/boot/dtb /boot/dtb root envFile="/boot/config.txt" if [ -f "/boot/armbianEnv.txt" ]; then @@ -16,5 +16,5 @@ if [ -f "/boot/orangepiEnv.txt" ]; then envFile="/boot/orangepiEnv.txt" fi -sed -i '/fdtfile=.+$/d' "${envFile}" -echo -e "\nfdtfile=rk3566-bigtreetech-pi2.dtb" >> "${envFile}" +sed -i '/fdtfile=.*$/d' "${envFile}" +echo -e "fdtfile=rk3566-bigtreetech-pi2.dtb" >> "${envFile}"