diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9f01f4c..e7c817f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -9,10 +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: "-beta1" + PICORE_SUFFIX: "zip" + ROOTFS_SUFFIX: "zst" + KERNEL: 6.18.28-piCore-v8 jobs: build: @@ -53,6 +57,10 @@ 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 }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -71,6 +79,10 @@ 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 }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -96,6 +108,10 @@ 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 }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -121,6 +137,10 @@ 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 }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -146,6 +166,10 @@ 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 }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -171,6 +195,10 @@ 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 }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -196,6 +224,10 @@ 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 }} + KERNEL=${{ env.KERNEL }} TCEMIRROR=${{ secrets.TCEMIRROR }} push: false tags: ${{ steps.meta.outputs.tags }} @@ -208,7 +240,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: @@ -248,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/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..f369671 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -3,13 +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:=-beta1} +: ${PICORE_SUFFIX:=zip} +: ${ROOTFS_SUFFIX:=zst} : ${PLATFORM:=linux/arm64/v8} : ${TARGET:=install} : ${IMAGE:=asssaf/picore} : ${TCEMIRROR:=} +: ${KERNEL=6.18.28-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..7a9e2e9 100755 --- a/scripts/run-tc.sh +++ b/scripts/run-tc.sh @@ -3,17 +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:=zst} +: ${CPU:=max} +: ${SMP:=4} +: ${MEM:=2G} 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 \ +qemu-system-aarch64 -machine virt -cpu ${CPU} -smp ${SMP} -m ${MEM} \ -kernel "$KERNEL" -append "$CMDLINE" \ -initrd "$INITRD" \ -nographic \