06023bcf9d
Drops the f8f3ad9 baseline ("18 commits ahead, BLACK-SCREENS ampere"
per fleet/ampere.yaml bisect note) in favor of the kernel-agent-
managed 10-patch set produced by ka-promote from fleet/ampere.yaml.
Baseline: mainline v7.0-rc3 (3daa4f5dc6cc), plus the 10 scope-tagged
patches under marfrit/kernel-agent/patches/{soc,module,board,driver}/:
- 1 soc/rk3588 pwm15 pinctrl
- 6 board/coolpi-cm5-genbook DTS patches
- 3 driver/media Sarma VP9-on-VDPU381 patches (PR #24 closure)
New _commit 48a8c78 reflects this tree state in ~/src/linux-rockchip
(branch vp9-build on ampere, exactly v7.0-rc3 + 10 manifest patches).
End-to-end verified before this iteration was cut (hand-build of the
same tip on 2026-05-18 booted ampere via arch_vp9_test extlinux
label):
- VP9 decode bit-exact HW==SW==libva (sha c8624d7c42db66525f53a02a515bc38d0a17ef39f692660cc7bebb1e2d2e1b48)
- AV1 decode bit-exact HW==SW via kdirect (sha 30d2091158d92f3c5e0a807217c3e7307f873267673d92632e7fb147383e7dd1, av1-vpu-dec is mainline 7.0)
prebuild.sh canonical sha256 cleared — gzip-version-dependent, the
script warns-not-fails on mismatch. First successful kafr2 build can
pin a canonical sha here if a reproducibility audit ever needs it.
Cross-references:
- marfrit/kernel-agent#12 (VP9 enablement closure)
- marfrit/kernel-agent PR #24 (Sarma patch import + ampere.yaml bump)
169 lines
6.4 KiB
Bash
169 lines
6.4 KiB
Bash
# Maintainer: Markus Fritsche <mfritsche@reauktion.de>
|
|
#
|
|
# linux-ampere-fourier — CoolPi GenBook (RK3588) kernel built from the
|
|
# kernel-agent fleet/ampere.yaml manifest applied to mainline v7.0-rc3.
|
|
#
|
|
# kafr2 baseline (2026-05-18): mainline v7.0-rc3 + the 10 scope-tagged
|
|
# kernel-agent patches under patches/{soc,module,board,driver}/:
|
|
# - 1 soc/rk3588 pwm15 pinctrl
|
|
# - 6 board/coolpi-cm5-genbook DTS patches (pwm-fan, RK806 power-off,
|
|
# speaker, USB-C PD, lid switch + USB3 PHY, microphone)
|
|
# - 3 driver/media VP9-on-VDPU381 patches (Sarma's v8 series, imported
|
|
# via marfrit/kernel-agent#12 closure and PR #24)
|
|
#
|
|
# Drops the prior f8f3ad9 baseline ("18 commits ahead") because that tip
|
|
# black-screens ampere — kernel-agent's ka-promote produces this 10-patch
|
|
# minimal set from fleet/ampere.yaml. End-to-end VP9 + AV1 (av1-vpu-dec
|
|
# is mainline-7.0) decode verified bit-exact via kdirect on the
|
|
# hand-built tip 48a8c78 before this package iteration was cut.
|
|
#
|
|
# Coexists with the user's other extlinux labels in
|
|
# /boot/firmware/extlinux/extlinux.conf; never edits them. Adds a
|
|
# managed `linux-ampere-fourier` label (the user sets `default` manually
|
|
# after verifying boot).
|
|
#
|
|
# Bootloader path: /boot/firmware/ (vfat on mmcblk0p1). Kernel +
|
|
# initramfs + DTB land there directly. Reverting = boot a different
|
|
# extlinux label (e.g. arch_mainline, ubuntu_mainline).
|
|
|
|
pkgbase=linux-ampere-fourier
|
|
pkgname=("$pkgbase" "$pkgbase-headers")
|
|
pkgver=7.0rc3.kafr2
|
|
pkgrel=1
|
|
pkgdesc='CoolPi GenBook kernel (v7.0-rc3 + kernel-agent fleet/ampere.yaml — 6 board patches + 3 VP9-VDPU381 + 1 pwm15)'
|
|
arch=(aarch64)
|
|
url='https://git.reauktion.de/marfrit/kernel-agent'
|
|
license=(GPL-2.0-only)
|
|
makedepends=(
|
|
bc cpio gettext kmod libelf pahole perl python tar xz
|
|
ccache
|
|
uboot-tools dtc
|
|
)
|
|
options=('!strip')
|
|
|
|
# Pinned tip of the kernel-agent-managed source tree for ampere.
|
|
# 10 commits ahead of v7.0-rc3, exactly mirroring fleet/ampere.yaml's
|
|
# manifest under apply order:
|
|
# - c57d069 soc/rk3588: pwm15 pinctrl entries
|
|
# - 05a915c board/genbook: pwm-fan with thermal cooling
|
|
# - d007b90 module/coolpi-cm5: RK806 system-power-controller
|
|
# - 3722eab board/genbook: speaker via audio-graph-card
|
|
# - 3e42ab6 board/genbook: USB-C PD via FUSB302
|
|
# - 7c241f2 board/genbook: lid switch + USB3 PHY lane
|
|
# - dd545fa board/genbook: wire internal microphone
|
|
# - 9ddcae5 driver/media: rkvdec-vp9 helper rename (Sarma)
|
|
# - c5063d9 driver/media: rkvdec move vp9 to common (Sarma)
|
|
# - 48a8c78 driver/media: rkvdec VP9 for VDPU381 (Sarma)
|
|
#
|
|
# This is the same tree state ka-promote ampere produces as cumulative.patch
|
|
# (see marfrit/kernel-agent build/ampere/v7.0-rc3/manifest.lock for the
|
|
# b2sum + per-patch sha256s).
|
|
_commit=48a8c785de7f5320513052a64e544c6310d7b273
|
|
|
|
source=(
|
|
# Local tarball produced by ./prebuild.sh from a local clone of the
|
|
# linux-rk3588-marfrit branch. Not fetched from a URL because the
|
|
# boltzmann working clone is shallow (gitea push rejects) and the
|
|
# 260MB tarball isn't committed to marfrit-packages. Run prebuild.sh
|
|
# before makepkg; see README in this dir.
|
|
"linux-rk3588-marfrit-${_commit:0:7}.tar.gz"
|
|
'config' # snapshot of running ampere kernel's /proc/config.gz (7.0.0-rc3-ARCH+)
|
|
'linux-ampere-fourier.preset'
|
|
'extlinux-add.hook'
|
|
'extlinux-add.sh'
|
|
)
|
|
sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP')
|
|
|
|
# kernelrelease becomes <Makefile-VERSION>.<PATCH>.<SUBLEVEL><EXTRAVERSION><LOCALVERSION>
|
|
# i.e. 7.0.0-rc3-ampere-fourier. Module dir + EXTRAVERSION suffix keep
|
|
# this disjoint from the hand-managed /boot/firmware/Image-7.0.0-rc3-ARCH+
|
|
# that's currently on the host.
|
|
_kernver=7.0.0-rc3-ampere-fourier
|
|
_srcdir=linux-rk3588-marfrit
|
|
|
|
prepare() {
|
|
cd "${_srcdir}"
|
|
|
|
echo ":: writing config"
|
|
cp "${srcdir}/config" .config
|
|
|
|
# LOCALVERSION suffix to differentiate from upstream-stock builds.
|
|
scripts/config --set-str LOCALVERSION "-ampere-fourier"
|
|
scripts/config -d LOCALVERSION_AUTO
|
|
|
|
echo ":: olddefconfig (accept new symbols sensibly)"
|
|
make olddefconfig
|
|
|
|
make -s kernelrelease > version
|
|
echo ":: kernel release: $(<version)"
|
|
}
|
|
|
|
build() {
|
|
cd "${_srcdir}"
|
|
unset LDFLAGS
|
|
# Native build only — no distcc per kernel-agent policy
|
|
# (feedback_kernel_agent_no_distcc.md). ccache stays.
|
|
export CC="ccache gcc"
|
|
export HOSTCC="ccache gcc"
|
|
make ${MAKEFLAGS:--j$(nproc)} Image modules dtbs
|
|
}
|
|
|
|
_package() {
|
|
pkgdesc='CoolPi GenBook overclocked kernel (ampere-fourier baseline)'
|
|
depends=(coreutils kmod mkinitcpio uboot-tools)
|
|
optdepends=('linux-firmware: firmware images needed for some devices')
|
|
backup=("etc/mkinitcpio.d/${pkgbase}.preset")
|
|
|
|
cd "${_srcdir}"
|
|
local _kver
|
|
_kver=$(<version)
|
|
|
|
# Kernel image into the vfat firmware partition (where extlinux looks).
|
|
install -Dm644 arch/arm64/boot/Image \
|
|
"${pkgdir}/boot/firmware/Image-ampere-fourier"
|
|
|
|
# Single DTB for the GenBook target — install directly under
|
|
# /boot/firmware/ (no subdir, matches existing host convention).
|
|
install -Dm644 arch/arm64/boot/dts/rockchip/rk3588-coolpi-cm5-genbook.dtb \
|
|
"${pkgdir}/boot/firmware/rk3588-coolpi-cm5-genbook.dtb-ampere-fourier"
|
|
|
|
ZSTD_CLEVEL=19 make INSTALL_MOD_PATH="${pkgdir}/usr" \
|
|
INSTALL_MOD_STRIP=1 modules_install
|
|
rm -f "${pkgdir}/usr/lib/modules/${_kver}/"{source,build}
|
|
|
|
install -Dm644 "${srcdir}/${pkgbase}.preset" \
|
|
"${pkgdir}/etc/mkinitcpio.d/${pkgbase}.preset"
|
|
|
|
install -Dm755 "${srcdir}/extlinux-add.hook" \
|
|
"${pkgdir}/usr/share/libalpm/hooks/95-${pkgbase}-extlinux.hook"
|
|
install -Dm755 "${srcdir}/extlinux-add.sh" \
|
|
"${pkgdir}/usr/share/libalpm/scripts/${pkgbase}-extlinux"
|
|
}
|
|
|
|
_package-headers() {
|
|
pkgdesc='Headers and scripts for the linux-ampere-fourier kernel'
|
|
depends=(pahole)
|
|
|
|
cd "${_srcdir}"
|
|
local _kver _builddir
|
|
_kver=$(<version)
|
|
_builddir="${pkgdir}/usr/lib/modules/${_kver}/build"
|
|
|
|
install -Dt "${_builddir}" -m644 .config Makefile Module.symvers System.map vmlinux version
|
|
install -Dt "${_builddir}/kernel" -m644 kernel/Makefile
|
|
|
|
cp -a scripts "${_builddir}"
|
|
install -Dt "${_builddir}/arch/arm64" -m644 arch/arm64/Makefile
|
|
cp -a arch/arm64/include "${_builddir}/arch/arm64/"
|
|
cp -a include "${_builddir}/"
|
|
|
|
find . -name 'Kbuild' -exec install -Dm644 {} "${_builddir}/{}" \;
|
|
find . -name 'Kconfig*' -exec install -Dm644 {} "${_builddir}/{}" \;
|
|
|
|
install -d "${pkgdir}/usr/src"
|
|
ln -sr "${_builddir}" "${pkgdir}/usr/src/${pkgbase}"
|
|
}
|
|
|
|
eval "package_${pkgbase}() { _package; }"
|
|
eval "package_${pkgbase}-headers() { _package-headers; }"
|