From 2867134df23190f77b14bb8872e4dff9036fcce0 Mon Sep 17 00:00:00 2001 From: assaf <445552+asssaf@users.noreply.github.com> Date: Wed, 17 Jun 2026 11:13:57 -0700 Subject: [PATCH 1/3] support for building release candidates --- .github/workflows/main.yml | 26 +++++++++++++++++++++++++- docker/Dockerfile | 16 ++++++++++------ scripts/build.sh | 9 +++++++++ scripts/run-tc.sh | 3 ++- 4 files changed, 46 insertions(+), 8 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9f01f4c..7e46ba5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,6 +13,9 @@ env: PICORE_VERSION_MAJOR: 16 PICORE_VERSION_MINOR: 0 PICORE_VERSION_MICRO: 0 + PICORE_VERSION_RC: "" + PICORE_SUFFIX: "img.gz" + ROOTFS_SUFFIX: "gz" jobs: build: @@ -53,6 +56,9 @@ jobs: PICORE_VERSION_MAJOR=${{ env.PICORE_VERSION_MAJOR }} PICORE_VERSION_MINOR=${{ env.PICORE_VERSION_MINOR }} PICORE_VERSION_MICRO=${{ env.PICORE_VERSION_MICRO }} + PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} + PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} + ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -71,6 +77,9 @@ jobs: PICORE_VERSION_MAJOR=${{ env.PICORE_VERSION_MAJOR }} PICORE_VERSION_MINOR=${{ env.PICORE_VERSION_MINOR }} PICORE_VERSION_MICRO=${{ env.PICORE_VERSION_MICRO }} + PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} + PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} + ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -96,6 +105,9 @@ jobs: PICORE_VERSION_MAJOR=${{ env.PICORE_VERSION_MAJOR }} PICORE_VERSION_MINOR=${{ env.PICORE_VERSION_MINOR }} PICORE_VERSION_MICRO=${{ env.PICORE_VERSION_MICRO }} + PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} + PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} + ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -121,6 +133,9 @@ jobs: PICORE_VERSION_MAJOR=${{ env.PICORE_VERSION_MAJOR }} PICORE_VERSION_MINOR=${{ env.PICORE_VERSION_MINOR }} PICORE_VERSION_MICRO=${{ env.PICORE_VERSION_MICRO }} + PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} + PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} + ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -146,6 +161,9 @@ jobs: PICORE_VERSION_MAJOR=${{ env.PICORE_VERSION_MAJOR }} PICORE_VERSION_MINOR=${{ env.PICORE_VERSION_MINOR }} PICORE_VERSION_MICRO=${{ env.PICORE_VERSION_MICRO }} + PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} + PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} + ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -171,6 +189,9 @@ jobs: PICORE_VERSION_MAJOR=${{ env.PICORE_VERSION_MAJOR }} PICORE_VERSION_MINOR=${{ env.PICORE_VERSION_MINOR }} PICORE_VERSION_MICRO=${{ env.PICORE_VERSION_MICRO }} + PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} + PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} + ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -196,6 +217,9 @@ jobs: PICORE_VERSION_MAJOR=${{ env.PICORE_VERSION_MAJOR }} PICORE_VERSION_MINOR=${{ env.PICORE_VERSION_MINOR }} PICORE_VERSION_MICRO=${{ env.PICORE_VERSION_MICRO }} + PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} + PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} + ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -208,7 +232,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: rootfs-${{matrix.package}} - path: "${{github.workspace}}/artifacts/rootfs-${{matrix.package}}-${{env.PICORE_VERSION_MAJOR}}.${{env.PICORE_VERSION_MINOR}}.gz" + path: "${{github.workspace}}/artifacts/rootfs-${{matrix.package}}-${{env.PICORE_VERSION_MAJOR}}.${{env.PICORE_VERSION_MINOR}}.${{env.ROOTFS_SUFFIX}}" test: diff --git a/docker/Dockerfile b/docker/Dockerfile index 6d51bff..299c850 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -7,15 +7,18 @@ ARG PACKAGE ARG PICORE_VERSION_MAJOR ARG PICORE_VERSION_MINOR ARG PICORE_VERSION_MICRO +ARG PICORE_VERSION_RC +ARG PICORE_SUFFIX +ARG ROOTFS_SUFFIX ARG _7Z="7zz" ENV ARCH="${PACKAGE/*piCore64*/aarch64}" ENV ARCH="${ARCH/*piCore*/armhf}" -ENV PACKAGE_VERSION="${PACKAGE}-${PICORE_VERSION_MAJOR}.${PICORE_VERSION_MINOR}.${PICORE_VERSION_MICRO}" +ENV PACKAGE_VERSION="${PACKAGE}-${PICORE_VERSION_MAJOR}.${PICORE_VERSION_MINOR}.${PICORE_VERSION_MICRO}${PICORE_VERSION_RC}" -RUN curl -sLo "/${PACKAGE_VERSION}.img.gz" "http://tinycorelinux.net/${PICORE_VERSION_MAJOR}.x/${ARCH}/release/RPi/${PACKAGE_VERSION}.img.gz" +RUN curl -sLo "/${PACKAGE_VERSION}.${PICORE_SUFFIX}" "http://tinycorelinux.net/${PICORE_VERSION_MAJOR}.x/${ARCH}/release${PICORE_VERSION_RC:+_candidates}/RPi/${PACKAGE_VERSION}.${PICORE_SUFFIX}" -RUN $_7Z x "${PACKAGE_VERSION}.img.gz" +RUN $_7Z x "${PACKAGE_VERSION}.${PICORE_SUFFIX}" RUN $_7Z x "${PACKAGE_VERSION}.img" RUN ( mkdir fat \ @@ -24,7 +27,7 @@ RUN ( mkdir fat \ RUN ( mkdir rootfs \ && cd rootfs \ - && zcat ../fat/rootfs-${PACKAGE}-${PICORE_VERSION_MAJOR}.${PICORE_VERSION_MINOR}.gz | cpio -idv ) + && $_7Z x -so ../fat/rootfs-${PACKAGE}-${PICORE_VERSION_MAJOR}.${PICORE_VERSION_MINOR}.${ROOTFS_SUFFIX} | cpio -idv ) RUN $_7Z x 1.img RUN touch /tce/copy2fs.flg @@ -69,7 +72,7 @@ RUN chmod u+s /usr/bin/sudo RUN usr/local/tce.installed/ca-certificates -ARG KERNEL=6.12.25-piCore-v8 +ARG KERNEL RUN rm /bin/uname && echo -e "#!/bin/sh\necho $KERNEL" > /bin/uname && chmod +x /bin/uname @@ -121,8 +124,9 @@ FROM scratch AS rootfs ARG PACKAGE ARG PICORE_VERSION_MAJOR ARG PICORE_VERSION_MINOR +ARG ROOTFS_SUFFIX -COPY --from=extract /fat/rootfs-${PACKAGE}-${PICORE_VERSION_MAJOR}.${PICORE_VERSION_MINOR}.gz / +COPY --from=extract /fat/rootfs-${PACKAGE}-${PICORE_VERSION_MAJOR}.${PICORE_VERSION_MINOR}.${ROOTFS_SUFFIX} / FROM debian:bookworm AS build-images diff --git a/scripts/build.sh b/scripts/build.sh index 7022dc7..90670e7 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -6,10 +6,14 @@ set -eux : ${PICORE_VERSION_MAJOR:=16} : ${PICORE_VERSION_MINOR:=0} : ${PICORE_VERSION_MICRO:=0} +: ${PICORE_VERSION_RC:=} +: ${PICORE_SUFFIX:=img.gz} +: ${ROOTFS_SUFFIX:=gz} : ${PLATFORM:=linux/arm64/v8} : ${TARGET:=install} : ${IMAGE:=asssaf/picore} : ${TCEMIRROR:=} +: ${KERNEL=6.12.25-piCore-v8} if [ "$(uname -m)" = "x86_64" ] then @@ -30,6 +34,11 @@ docker build --platform=${PLATFORM} --target=${TARGET} \ --build-arg PICORE_VERSION_MAJOR=${PICORE_VERSION_MAJOR} \ --build-arg PICORE_VERSION_MINOR=${PICORE_VERSION_MINOR} \ --build-arg PICORE_VERSION_MICRO=${PICORE_VERSION_MICRO} \ + --build-arg PICORE_VERSION_RC=${PICORE_VERSION_RC} \ + --build-arg PICORE_SUFFIX=${PICORE_SUFFIX} \ + --build-arg ROOTFS_SUFFIX=${ROOTFS_SUFFIX} \ --build-arg TCEMIRROR=${TCEMIRROR} \ + --build-arg KERNEL=${KERNEL} \ + --network host \ -t ${IMAGE} \ -f docker/Dockerfile "$@" . diff --git a/scripts/run-tc.sh b/scripts/run-tc.sh index 27d528a..f14a0ab 100755 --- a/scripts/run-tc.sh +++ b/scripts/run-tc.sh @@ -8,9 +8,10 @@ set -euxo pipefail : ${PICORE_VERSION_MAJOR:=16} : ${PICORE_VERSION_MINOR=0} : ${PICORE_VERSION_MICRO=0} +: ${ROOTFS_SUFFIX:=gz} KERNEL="${BASE}/Image-${KERNEL_VERSION}" -INITRD="${BASE}/rootfs-${PACKAGE}-${PICORE_VERSION_MAJOR}.${PICORE_VERSION_MINOR}.gz" +INITRD="${BASE}/rootfs-${PACKAGE}-${PICORE_VERSION_MAJOR}.${PICORE_VERSION_MINOR}.${ROOTFS_SUFFIX}" IMAGE="${BASE}/firmware-with-tce-disk-${PACKAGE}.img" CMDLINE="console=ttyAMA0,115200 console=ttyGS0,115200 text root=/dev/ram0 nortc rootwait loglevel=3 tce=LABEL=RECOVERY tz=PST+8PDT,M3.2.0/2,M11.1.0/2 debug=y nozswap" qemu-system-aarch64 -machine virt -cpu max -smp 4 -m 2G \ From 364b220b517d3b0925b4738146ee60c6f24479c8 Mon Sep 17 00:00:00 2001 From: assaf <445552+asssaf@users.noreply.github.com> Date: Wed, 17 Jun 2026 17:17:29 -0700 Subject: [PATCH 2/3] build 17.0.0-beta1 --- .github/workflows/main.yml | 18 +++++++++++++----- scripts/build.sh | 10 +++++----- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7e46ba5..8939c2b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -9,13 +9,14 @@ on: workflow_dispatch: env: - KERNEL_VERSION: 6.12.25 - PICORE_VERSION_MAJOR: 16 + KERNEL_VERSION: 6.18.28 + PICORE_VERSION_MAJOR: 17 PICORE_VERSION_MINOR: 0 PICORE_VERSION_MICRO: 0 - PICORE_VERSION_RC: "" - PICORE_SUFFIX: "img.gz" - ROOTFS_SUFFIX: "gz" + PICORE_VERSION_RC: "-beta1" + PICORE_SUFFIX: "zip" + ROOTFS_SUFFIX: "zst" + KERNEL: 6.18.28-piCore-v8 jobs: build: @@ -59,6 +60,7 @@ jobs: PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -80,6 +82,7 @@ jobs: PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -108,6 +111,7 @@ jobs: PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -136,6 +140,7 @@ jobs: PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -164,6 +169,7 @@ jobs: PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -192,6 +198,7 @@ jobs: PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -220,6 +227,7 @@ jobs: PICORE_VERSION_RC=${{ env.PICORE_VERSION_RC }} PICORE_SUFFIX=${{ env.PICORE_SUFFIX }} ROOTFS_SUFFIX=${{ env.ROOTFS_SUFFIX }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} diff --git a/scripts/build.sh b/scripts/build.sh index 90670e7..f369671 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -3,17 +3,17 @@ set -eux : ${PACKAGE:=piCore64} -: ${PICORE_VERSION_MAJOR:=16} +: ${PICORE_VERSION_MAJOR:=17} : ${PICORE_VERSION_MINOR:=0} : ${PICORE_VERSION_MICRO:=0} -: ${PICORE_VERSION_RC:=} -: ${PICORE_SUFFIX:=img.gz} -: ${ROOTFS_SUFFIX:=gz} +: ${PICORE_VERSION_RC:=-beta1} +: ${PICORE_SUFFIX:=zip} +: ${ROOTFS_SUFFIX:=zst} : ${PLATFORM:=linux/arm64/v8} : ${TARGET:=install} : ${IMAGE:=asssaf/picore} : ${TCEMIRROR:=} -: ${KERNEL=6.12.25-piCore-v8} +: ${KERNEL=6.18.28-piCore-v8} if [ "$(uname -m)" = "x86_64" ] then From de768edd8e0848c905d86c993e2fbc47aa2ed562 Mon Sep 17 00:00:00 2001 From: assaf <445552+asssaf@users.noreply.github.com> Date: Wed, 17 Jun 2026 17:54:46 -0700 Subject: [PATCH 3/3] force cortex-a72 in github actions to avoid FEAT_E0PD error: ERROR:target/arm/internals.h:767:regime_is_user: code should not be reached --- .github/workflows/main.yml | 2 +- scripts/run-tc.sh | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8939c2b..e7c817f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -280,7 +280,7 @@ jobs: docker create --name rpi-kernel --platform linux/arm64/v8 ghcr.io/asssaf/rpi-kernel:${{ env.KERNEL_VERSION }}-default true docker cp rpi-kernel:/Image-${{ env.KERNEL_VERSION }} . - scripts/run-tc.sh |& tee qemu.out & + CPU="cortex-a72" SMP="2" MEM="1G" scripts/run-tc.sh |& tee qemu.out & until sshpass -p piCore ssh -o StrictHostKeychecking=no -p 2223 tc@127.0.0.1 echo hi do diff --git a/scripts/run-tc.sh b/scripts/run-tc.sh index f14a0ab..7a9e2e9 100755 --- a/scripts/run-tc.sh +++ b/scripts/run-tc.sh @@ -3,18 +3,21 @@ set -euxo pipefail : ${BASE:=./} -: ${KERNEL_VERSION:=6.12.25} +: ${KERNEL_VERSION:=6.18.28} : ${PACKAGE:=piCore64} -: ${PICORE_VERSION_MAJOR:=16} +: ${PICORE_VERSION_MAJOR:=17} : ${PICORE_VERSION_MINOR=0} : ${PICORE_VERSION_MICRO=0} -: ${ROOTFS_SUFFIX:=gz} +: ${ROOTFS_SUFFIX:=zst} +: ${CPU:=max} +: ${SMP:=4} +: ${MEM:=2G} KERNEL="${BASE}/Image-${KERNEL_VERSION}" INITRD="${BASE}/rootfs-${PACKAGE}-${PICORE_VERSION_MAJOR}.${PICORE_VERSION_MINOR}.${ROOTFS_SUFFIX}" IMAGE="${BASE}/firmware-with-tce-disk-${PACKAGE}.img" CMDLINE="console=ttyAMA0,115200 console=ttyGS0,115200 text root=/dev/ram0 nortc rootwait loglevel=3 tce=LABEL=RECOVERY tz=PST+8PDT,M3.2.0/2,M11.1.0/2 debug=y nozswap" -qemu-system-aarch64 -machine virt -cpu max -smp 4 -m 2G \ +qemu-system-aarch64 -machine virt -cpu ${CPU} -smp ${SMP} -m ${MEM} \ -kernel "$KERNEL" -append "$CMDLINE" \ -initrd "$INITRD" \ -nographic \