# 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: ```sh 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 ``` 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.sh` isn't needed — candidate: Gitea release asset, or `packages.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.