The exec bit was missing on prebuild.sh as committed in PR #15 (it landed mode 0644). Running './prebuild.sh' fails with 'Permission denied'; bash ./prebuild.sh works as a workaround but the shebang is intended to do its job. Caught while running the first linux-ampere-fourier build on boltzmann today. README.md examples show './prebuild.sh' so users will hit the same error. Single-bit fix via git update-index --chmod=+x. No content change.
linux-ampere-fourier
Kernel package for ampere (CoolPi GenBook RK3588). Baselined on
marfrit/linux-rk3588-marfrit @ f8f3ad9 (mainline v7.0-rc3 + 18
RK3588-fleet-relevant commits — 10 Markus, 8 upstream cherry-picks).
See marfrit/kernel-agent/fleet/ampere.yaml for the manifest +
marfrit/kernel-agent/patches/{soc,module,board}/... for the
scope-tagged board patches in the baseline.
Build
The kernel source isn't on Gitea — boltzmann's working clone is
shallow (Gitea refuses shallow pushes) and a 260MB tarball doesn't
belong in marfrit-packages. Stage the source locally from a
clone of the linux-rk3588-marfrit branch:
cd arch/linux-ampere-fourier
./prebuild.sh # produces linux-rk3588-marfrit-f8f3ad9.tar.gz
makepkg -s --noconfirm # native aarch64 build; no distcc
prebuild.sh looks at $LINUX_RK3588_MARFRIT_TREE (default
~/src/linux-rockchip) for the kernel working tree. The tip commit
must be reachable in that clone — fetch the linux-rk3588-marfrit
branch first if you cloned from elsewhere.
Build hosts
Native aarch64 only (per kernel-agent feedback_kernel_agent_no_distcc.md).
Either ampere itself (8C/2.4GHz, 32GB, native arch) or boltzmann
(Rock 5 ITX+, same uarch). fermi as fallback.
Install
Adds a managed label to /boot/firmware/extlinux/extlinux.conf:
label linux-ampere-fourier
menu label linux-ampere-fourier (managed)
kernel /Image-ampere-fourier
initrd /initramfs-ampere-fourier.img
fdt /rk3588-coolpi-cm5-genbook.dtb-ampere-fourier
append <inherited from arch_mainline>
Default label is NOT changed. After verifying boot of the managed
label at the u-boot menu, you flip default manually. Reverting =
boot a different label (e.g. arch_mainline, ubuntu_mainline).
Boot path
ampere uses /boot/firmware/ (vfat on mmcblk0p1, ~1G), distinct
from fresnel's /boot/ on root partition. The PKGBUILD installs
Image, initramfs, and DTB directly under /boot/firmware/. No
DTB subdir — single board target.
Open follow-ups (per kernel-agent issue #6)
- Ask 2 (VP9 enablement on RK3588 rkvdec) — not addressed in this iteration. Separate session.
- Ask 3 (AV1 decoder integration) — backend libva work, not kernel.
- Hosting the source tarball publicly so
prebuild.shisn't needed — candidate: Gitea release asset, orpackages.reauktion.de/sources/. - Splitting the 12 non-board cherry-pick commits in the baseline
(4 Shawn Lin phy, 2 Cristian Ciocaltea, etc.) into scope-tagged
patches in kernel-agent — currently they ride along inside the
pinned baseline rather than being explicit
includes:in the manifest.