linux-ampere-fourier: bootstrap PKGBUILD (CoolPi GenBook RK3588)
Sibling to kernel-agent PR #8 which lands the scope-tagged board patches + fleet/ampere.yaml manifest. This PR carries the makepkg-side recipe. ## Baseline marfrit/linux-rk3588-marfrit @ f8f3ad9 (mainline v7.0-rc3 + 18 commits): 10 by Markus Fritsche (board DTS + Kconfig + suspend/wakeup + bt) 4 by Shawn Lin (phy: rockchip-snps-pcie3 stability) 2 by Cristian Ciocaltea (clk + dw-dp bridge — Collabora) 1 by Sebastian Reichel (Rock 5 ITX hdmirx — unused by ampere) 1 by Pedro Alves (CLK_SET_RATE_PARENT VOP2 fix) The 6 board-relevant patches (pwm15 pinctrl + RK806 power-off + genbook pwm-fan/speaker/USB-C/lid) are scope-tagged in kernel-agent. The 12 others are 'cherry-picks-in-baseline' currently — splitting them into scope-tagged patches is a follow-up. ## Source distribution The kernel tree isn't pushable to Gitea (boltzmann's working clone is shallow). Tarball (260MB) doesn't belong in marfrit-packages either. Pragmatic shortcut: ship prebuild.sh that produces the tarball locally from $LINUX_RK3588_MARFRIT_TREE (default ~/src/linux-rockchip) just before makepkg runs. PKGBUILD source array references the tarball by name; makepkg picks it up from the PKGBUILD dir. Build flow: cd arch/linux-ampere-fourier ./prebuild.sh # produces 260MB tarball; idempotent w/ sha check makepkg -s --noconfirm Future iteration: host the tarball on Gitea release assets or packages.reauktion.de/sources/ and switch source to URL. ## What the PR ships PKGBUILD — the recipe (linux-rk3588-marfrit @ f8f3ad9) config — snapshot of ampere's /proc/config.gz linux-ampere-fourier.preset — mkinitcpio preset, /boot/firmware/ paths extlinux-add.hook — alpm hook, fires on /boot/firmware/Image* changes extlinux-add.sh — idempotent managed-label injector for /boot/firmware/extlinux/extlinux.conf (vfat on mmcblk0p1, ampere-specific path) prebuild.sh — source-staging helper (see above) README.md — build + install runbook ## ampere-specific boot path differences vs fresnel ampere boots from /boot/firmware/ (vfat partition), not /boot/ (root partition) like fresnel. The PKGBUILD installs Image + initramfs + DTB under /boot/firmware/ directly. The extlinux-add hook fires on /boot/firmware/<X> path changes and edits /boot/firmware/extlinux/extlinux.conf. The mkinitcpio preset writes initramfs to /boot/firmware/. Only one PRESET ('default') — no fallback image — because /boot/firmware is ~1G total and two ~20MB initramfs files plus the DTB and a couple of kernel-image backups would squeeze it tight. ## Out of scope this PR - Ask 2 (VP9 enablement) and Ask 3 (AV1 dec) from kernel-agent issue #6 - Build + publish + install (sequenced after this PR + kernel-agent PR #8 merge) - Splitting the 12 non-board commits into scope-tagged kernel-agent patches
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
# prebuild — stage the kernel source tarball this PKGBUILD expects.
|
||||
#
|
||||
# linux-ampere-fourier's source is a snapshot of marfrit/linux-rk3588-marfrit
|
||||
# @ f8f3ad9 (260MB), too big to commit to marfrit-packages and currently
|
||||
# unpushable to Gitea (boltzmann's working clone is shallow; gitea push
|
||||
# refuses shallow updates). Hosting the tarball outside Gitea would need
|
||||
# infrastructure setup that's not in scope for the first iteration.
|
||||
#
|
||||
# So: produce the tarball locally from the kernel working tree just
|
||||
# before makepkg runs. Idempotent — if an existing tarball matches the
|
||||
# expected sha256 we skip the archive step.
|
||||
#
|
||||
# Run from this directory: cd arch/linux-ampere-fourier && ./prebuild.sh
|
||||
# Override the kernel-tree location: LINUX_RK3588_MARFRIT_TREE=/path ./prebuild.sh
|
||||
#
|
||||
# Default tree location matches the boltzmann/ampere convention from
|
||||
# kernel-agent issue #6: $HOME/src/linux-rockchip.
|
||||
set -euo pipefail
|
||||
|
||||
TREE="${LINUX_RK3588_MARFRIT_TREE:-${HOME}/src/linux-rockchip}"
|
||||
COMMIT=f8f3ad934433bd7e1207d9b0b37e817a692b7ee9
|
||||
SHA256_EXPECTED=b4eca11e883fe6f7f306d8751c3efa3afed9cc3465c74a3320de1b7204f5f330
|
||||
|
||||
HERE="$(cd "$(dirname "$0")" && pwd)"
|
||||
OUTPUT="${HERE}/linux-rk3588-marfrit-${COMMIT:0:7}.tar.gz"
|
||||
|
||||
if [ -f "$OUTPUT" ]; then
|
||||
have=$(sha256sum "$OUTPUT" | cut -d' ' -f1)
|
||||
if [ "$have" = "$SHA256_EXPECTED" ]; then
|
||||
echo "prebuild: $OUTPUT already exists with correct sha256"
|
||||
exit 0
|
||||
else
|
||||
echo "prebuild: existing $OUTPUT sha mismatch (have=$have, want=$SHA256_EXPECTED) — regenerating" >&2
|
||||
rm -f "$OUTPUT"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d "$TREE/.git" ]; then
|
||||
echo "prebuild: kernel tree not at $TREE" >&2
|
||||
echo " set LINUX_RK3588_MARFRIT_TREE=/path/to/linux-rockchip and retry" >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
cd "$TREE"
|
||||
|
||||
if ! git cat-file -e "$COMMIT" 2>/dev/null; then
|
||||
echo "prebuild: commit $COMMIT not found in $TREE" >&2
|
||||
echo " fetch the linux-rk3588-marfrit branch first:" >&2
|
||||
echo " git fetch <remote> linux-rk3588-marfrit" >&2
|
||||
exit 3
|
||||
fi
|
||||
|
||||
echo "prebuild: generating archive from $TREE @ $COMMIT..."
|
||||
git archive --format=tar.gz --prefix=linux-rk3588-marfrit/ "$COMMIT" -o "$OUTPUT"
|
||||
|
||||
# git archive emits a deterministic tar stream but gzip compression may
|
||||
# vary by version. The sha256 check is informational; warn-don't-fail.
|
||||
have=$(sha256sum "$OUTPUT" | cut -d' ' -f1)
|
||||
if [ "$have" != "$SHA256_EXPECTED" ]; then
|
||||
echo "prebuild: WARNING $OUTPUT sha=$have (canonical=$SHA256_EXPECTED)" >&2
|
||||
echo " probably a gzip-version difference; tar payload should be identical" >&2
|
||||
fi
|
||||
|
||||
echo "prebuild: wrote $OUTPUT ($(du -h "$OUTPUT" | cut -f1), sha=$have)"
|
||||
Reference in New Issue
Block a user