Hotdry.
systems

postmarketOS 通用 ARM64 内核移植:最小补丁支持手机硬件

postmarketOS 通过 Trailblazer 等通用 ARM64 内核路径,实现上游内核最小补丁移植,支持多手机硬件,提供 pmbootstrap 参数与维护清单。

在移动 Linux 领域,postmarketOS 项目正推动上游通用 ARM64 内核的广泛应用。这种策略的核心在于使用最小补丁移植 upstream kernels(如 linux-lts 或 linux-next),从而覆盖广泛的手机硬件,实现更易维护和更高的设备兼容性。传统设备特定内核需要大量 vendor patches,导致维护成本高企,而 generic kernels 则依赖主线进展,仅添加必要 config fragments 和 firmware 支持。

Trailblazer 是 postmarketOS 的典型 generic ARM64 端口,针对支持 EFI 引导的 ARM64 设备设计。它严格采用上游内核,仅叠加 postmarketOS 的 config fragments,作为测试上游对 SoC 支持程度的 bleeding-edge 平台。例如,对于 Snapdragon 845 等 SoC,Trailblazer 可快速验证主线驱动成熟度,而无需 per-device kernel tree。“Trailblazer 是 bleeding-edge 通用 ARM64 EFI 端口”。

类似地,SoC 级 generic 端口如 qcom-msm8953(覆盖 Snapdragon 450/625/632 等),共享单一内核二进制,支持多款手机。通过 per-device DTB(Device Tree Blob)和 firmware blobs 实现适配。这种方法显著减少了重复开发:一个 SoC 内核维护即可惠及数十设备。

要落地移植,首先安装 pmbootstrap(postmarketOS 的构建工具)。执行 pmbootstrap init,选择 channel=main,ui=phosh(或 sxmo),device=trailblazer(测试)或自定义 SoC-generic。构建内核:pmbootstrap mkinitfs -u,指定 kernel=linux-lts(稳定)或 linux-next(前沿)。关键 config 参数包括:

  • CONFIG_ARM64=yCONFIG_ARCH_QCOM(针对高通 SoC)。
  • 启用 CONFIG_EFI=y 用于 Trailblazer。
  • CONFIG_DEVTMPFS=yCONFIG_DRM=y 以支持基本显示。
  • fragments 文件如 pmb/configs/6.10-arm64 添加 CONFIG_SERIAL_QCOM_GENI=y 等串口支持。

firmware 清单至关重要,许多手机需 vendor blobs:

  1. 高通:firmware-qcom-sm8250(SDM845)、linux-firmware
  2. DTB:从 android device tree 提取,或 upstream arch/arm64/boot/dts/qcom/
  3. Modem:firmware-qcom-msm8998-modem(视 SoC)。 安装命令:pmbootstrap pkgrel_bump firmware-qcom-*,然后 pmbootstrap install

引导配置:解锁 bootloader,fastboot boot 临时镜像测试。参数示例:--split 分离 rootfs,--android-recovery-zip 生成 recovery zip。针对非 EFI 设备,需 abootimg 或 mkbootimg 打包 initramfs。

测试与验证清单:

  • Boot success:监控 dmesg | grep -i error,阈值 <10 fatal。
  • 硬件矩阵:CPU(lscpu)、GPU(glxinfo)、触摸(evtest /dev/input*)。
  • 功耗:powertop,目标 idle <1W。
  • 压力:stress-ng --cpu 8 --timeout 300s,温度 <70°C。

维护策略:每周 sync upstream via pmbootstrap pull,cherry-pick 最小 patches(<5/quarter)。回滚:tag 稳定 kernel pkg,fallback 到 vendor kernel。若 upstream 滞后,阈值 boot rate <80%,临时引入 SoC-specific defconfig。

风险控制:modem/camera 等功能依赖 blobs,上游 GPU 加速(如 freedreno)覆盖率~60%(Qualcomm)。监控 upstream status:kernelci.org,追踪 merge window。

此路径已在 2026 年初 postmarketOS 更新中强化,推动更广兼容。例如,qcom-msm8953 已支持 20+ 设备,仅需 2-3 DTB variants。

通过这些参数与清单,开发者可快速上手 generic kernels,显著降低长期维护负担,实现可持续移动 Linux。

资料来源

(正文字数约 950)

查看归档