Files
pmaports-rtwo/device/testing/linux-postmarketos-qcom-sm8550/APKBUILD
T
snlavaiseandClaude Sonnet 5 34600bc55e motorola-rtwo: raw Image + empty dtbo for the Motorola bootloader
From the stock LineageOS images:
- boot.img carries a raw uncompressed arm64 Image (MZ header), not
  Image.gz. Install arch/arm64/boot/Image as vmlinuz.
- dtbo.img is an 8-entry overlay table; the bootloader applies overlay
  #7 (androidboot.dtbo_idx=7, 87 fragments) onto the base DTB by
  phandle. Against our mainline DTB that produces a corrupt merged tree
  -> instant panic. Ship an empty dtbo (0 entries) to flash to dtbo_b,
  and set deviceinfo_flash_fastboot_partition_dtbo.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QF5HebjUsRaxbW4cBX6HJP
2026-09-08 21:28:13 -03:00

112 lines
3.5 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=3
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() {
# The Motorola bootloader boots a *raw* uncompressed arm64 Image
# (BOARD_KERNEL_IMAGE_NAME := Image); Image.gz / vmlinuz.efi make it
# reset in <2s. CONFIG_EFI_ZBOOT is off in rtwo.config.
install -Dm644 "$builddir/arch/$_carch/boot/Image" \
"$pkgdir/boot/vmlinuz"
# Empty Android DT-overlay table (magic d7b7ab1e, 0 entries). The
# bootloader would otherwise apply the stock kalama dtbo overlay onto
# our mainline base DTB - the phandles don't match, the merged DTB is
# corrupt and the kernel panics. Flash this to the dtbo partition.
mkdir -p "$pkgdir"/boot
printf '\xd7\xb7\xab\x1e\x00\x00\x00\x20\x00\x00\x00\x20\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x08\x00\x00\x00\x00\x00' \
> "$pkgdir"/boot/dtbo.img
make modules_install dtbs_install \
ARCH="$_carch" \
LLVM=1 \
INSTALL_MOD_PATH="$pkgdir"/usr \
INSTALL_MOD_STRIP=1 \
INSTALL_DTBS_PATH="$pkgdir"/boot/dtbs
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
e1633eb9a356de1e46c430fe2eb2c5d77ddeb9301f8cf9c95df3ae180d581a57ede0906aeddc0bcc15b95931c0dd40565930a1e1b72bfb540e5a99bcb9865e58 sm8550-motorola-rtwo.dts
"