rtwo is Android 13: the generic first-stage ramdisk lives in init_boot, not boot.img, and the bootloader always assembles the initramfs from init_boot + vendor_boot regardless of what boot.img contains. So the dubai-style monolithic v2 boot.img cannot work here - keep header v4 and replace boot (kernel), vendor_boot (dtb+cmdline+initramfs) and init_boot (generic ramdisk) all with pmOS content. Combine everything learned: - header v4, append_dtb off (dtb in vendor_boot) - earlycon on the cmdline (Motorola ABL requirement, from dubai) - raw Image kernel (stock LineageOS rtwo evidence) - base 0 + explicit offsets + os_version/os_patch_level - 24 MB zero dtbo (dubai trick) - the Sony-Xperia-1-V-modelled minimal .dts (no /memory, no msm-id, no speculative regulators) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QF5HebjUsRaxbW4cBX6HJP
111 lines
3.4 KiB
Bash
111 lines
3.4 KiB
Bash
# Reference: <https://postmarketos.org/vendorkernel>
|
|
# Mainline kernel + the (not-yet-upstream) Motorola rtwo device tree.
|
|
# Config base: linux-postmarketos-mainline's config-mainline.aarch64.
|
|
maintainer="snlavaise <snlavaise@gmail.com>"
|
|
_flavor="postmarketos-qcom-sm8550"
|
|
pkgname=linux-$_flavor
|
|
pkgver=7.2
|
|
pkgrel=10
|
|
pkgdesc="Mainline kernel for Qualcomm SM8550 (Snapdragon 8 Gen 2) + Motorola rtwo"
|
|
arch="aarch64"
|
|
_carch="arm64"
|
|
url="https://kernel.org"
|
|
license="GPL-2.0-only"
|
|
options="
|
|
!check
|
|
!strip
|
|
!tracedeps
|
|
pmb:cross-native
|
|
pmb:kconfigcheck-community
|
|
"
|
|
makedepends="
|
|
bash
|
|
bison
|
|
clang
|
|
diffutils
|
|
elfutils-dev
|
|
findutils
|
|
flex
|
|
gmp-dev
|
|
kmod
|
|
linux-headers
|
|
lld
|
|
llvm
|
|
mpc1-dev
|
|
mpfr-dev
|
|
openssl-dev
|
|
pahole
|
|
perl
|
|
postmarketos-installkernel
|
|
python3
|
|
xz
|
|
zstd
|
|
"
|
|
|
|
source="
|
|
$pkgname-$pkgver.tar.gz::https://git.kernel.org/torvalds/t/linux-${pkgver/_/-}.tar.gz
|
|
config-motorola-rtwo.aarch64
|
|
rtwo.config
|
|
sm8550-motorola-rtwo.dts
|
|
"
|
|
builddir="$srcdir/linux-${pkgver/_/-}"
|
|
|
|
prepare() {
|
|
default_prepare
|
|
|
|
# The Motorola rtwo (Moto Edge 40 Pro) device tree is not upstream yet.
|
|
local _dtsdir="arch/$_carch/boot/dts/qcom"
|
|
cp "$srcdir/sm8550-motorola-rtwo.dts" "$_dtsdir/sm8550-motorola-rtwo.dts"
|
|
if ! grep -q "sm8550-motorola-rtwo.dtb" "$_dtsdir/Makefile"; then
|
|
sed -i '/sm8550-mtp\.dtb/a dtb-$(CONFIG_ARCH_QCOM) += sm8550-motorola-rtwo.dtb' \
|
|
"$_dtsdir/Makefile"
|
|
fi
|
|
|
|
# Base config (from linux-postmarketos-mainline) + rtwo bring-up fragment.
|
|
cp "$srcdir/config-motorola-rtwo.aarch64" .config
|
|
cat "$srcdir/rtwo.config" >> .config
|
|
make ARCH="$_carch" LLVM=1 olddefconfig
|
|
}
|
|
|
|
build() {
|
|
unset LDFLAGS
|
|
make ARCH="$_carch" LLVM=1 \
|
|
KBUILD_BUILD_VERSION="$((pkgrel + 1))-$_flavor"
|
|
}
|
|
|
|
package() {
|
|
# Raw uncompressed Image for the Android boot.img: the stock rtwo
|
|
# LineageOS boot.img carries a raw 'MZ' Image (BOARD_KERNEL_IMAGE_NAME
|
|
# := Image), and CONFIG_EFI_ZBOOT is off in rtwo.config.
|
|
install -Dm644 "$builddir/arch/$_carch/boot/Image" \
|
|
"$pkgdir/boot/vmlinuz"
|
|
|
|
make modules_install dtbs_install \
|
|
ARCH="$_carch" \
|
|
LLVM=1 \
|
|
INSTALL_MOD_PATH="$pkgdir"/usr \
|
|
INSTALL_MOD_STRIP=1 \
|
|
INSTALL_DTBS_PATH="$pkgdir"/boot/dtbs
|
|
|
|
# All-zero dtbo image (full partition size), same trick as
|
|
# device-motorola-dubai: the bootloader finds no valid DT-overlay
|
|
# table magic and applies nothing, so the stock kalama overlay does
|
|
# not get merged onto our mainline base DTB.
|
|
mkdir -p "$pkgdir"/boot
|
|
dd if=/dev/zero of="$pkgdir/boot/dtbo.img" bs=1M count=24 status=none
|
|
|
|
rm -f "$pkgdir"/usr/lib/modules/*/build "$pkgdir"/usr/lib/modules/*/source
|
|
|
|
install -Dm644 "$builddir"/include/config/kernel.release \
|
|
"$pkgdir"/usr/share/kernel/"$_flavor"/kernel.release
|
|
}
|
|
|
|
# 'pmbootstrap checksum linux-postmarketos-qcom-sm8550' fills in the tarball hash
|
|
# (same tarball as linux-postmarketos-mainline, ~150 MB download).
|
|
sha512sums="
|
|
52d5aa7f94f6aa6141debf4ceb4fc7a2e75505a7cd38b8854e501be83c2b57863020f463f2fdb2fc93667e6cfe13274d077e5207a611e4797bd9404ee0e64c58 linux-postmarketos-qcom-sm8550-7.2.tar.gz
|
|
f9ae52489f6b9e6fef64952943cd09732a5bef90a0e8765db03c256483028368687d6d5a1d80dd813a513e7e80d91f8b47f49b91cff67266b76f1d6275a7fea0 config-motorola-rtwo.aarch64
|
|
53441c23146d76bb0eaa358a25f6cce4f21740cfb65b755df52bbb218daf2cda30b3d80fa6ca4e283ea1afe2b0fa708307b678b421898100710b8fb99b08d6c5 rtwo.config
|
|
7399bf2dccbc1584258ea0f3fc19b062d26b4cef94f54cc5b36c8a139115d29c9e3459092fbd9fb7a1008173c7974516058b70b05fba48cf9d43dff8cda4507b sm8550-motorola-rtwo.dts
|
|
"
|