小米 5 移植 postmarketOS 适配记录

💡 原文中文,约6300字,阅读约需15分钟。
📝

内容提要

作者用三天时间为小米5移植postmarketOS,系统可进入Phosh桌面,USB网络、Wi-Fi、蓝牙、显示触摸和传感器基本可用,但相机、扬声器和蜂窝网络未能修复,最终刷回LineageOS。主要问题包括内核与ramdisk地址重叠导致卡MI标志,以及各硬件需单独适配,多为带条件的规避而非根治。

🔎

延伸解读

“能进桌面”与“日常可用”之间的真实距离

文章最有价值的提醒是:postmarketOS 在小米5上进入 Phosh 桌面,并不等于手机可用。作者列出的可用项集中在 USB 网络、Wi-Fi、蓝牙、显示触摸和传感器,而相机、扬声器、蜂窝网络均未修好。更关键的是,多数硬件修复属于带条件的规避,例如 USB 靠延后重探测、Wi-Fi 靠链路迟到后补扫、调频靠启动时序绕开。读者若把“成功开机”当作移植完成,会低估后续逐个子系统 bring-up 的工作量。

ramdisk 地址重叠:最适合反馈上游的明确问题

卡 MI 标志的根因被定位得相当具体:内核加载地址 0x80008000 与 ramdisk 地址 0x81000000 仅隔 16MiB,而 Linux 6.19.5 的 arm64 Image 运行时镜像约 28MB,直接越过 ramdisk 区域。作者把 ramdisk 挪到 0x84000000 后通过 fastboot boot 验证,再写入 deviceinfo 覆盖值。相比其他“根因未解”的硬件问题,这一条证据链完整、修复可复现,也最值得提交给上游设备包维护者。

诊断方法比修复本身更可复用

文章记录的流程对同类移植有参考价值:每次只改一个变量;先用 fastboot boot 临时启动验证,不直接刷分区;刷写前完整备份 boot 分区;进 Recovery 先保存 pstore 再重启;每个镜像记录 SHA256。作者还特别指出,Fastboot 返回 Booting OKAY 只代表命令被接受,屏幕停在 Fastboot 画面也不代表内核没跑。这些经验能帮助后来者减少“刷错版本”和“日志被覆盖”两类常见损失。

未修好部分揭示了移植的硬门槛

相机、扬声器和蜂窝网络的失败原因各不相同,但都指向需要真正移植驱动或补全设备树,而非简单调参。相机缺少传感器管线配置;扬声器功放能绑定但播放无声,候选修复还导致 UFS 链路断裂;蜂窝方面基带能读到 SIM,但内核缺少 MSM8996 的 IPA 2.5 数据通路支持,ModemManager 因此拒绝创建 modem。读者应把这类问题视为移植深水区,而不是短期可绕过的配置问题。

❓

Q&A

小米5移植postmarketOS后,哪些硬件可以正常工作?

系统能进入Phosh桌面,USB网络、Wi-Fi、蓝牙、显示触摸和传感器基本可用。但相机、扬声器和蜂窝网络没有修好。

刷入postmarketOS后卡在MI标志是什么原因?

内核加载地址0x80008000与ramdisk地址0x81000000仅间隔16MiB,而内核镜像大小约28MB,运行时覆盖了ramdisk区域导致重叠。将ramdisk地址改为0x84000000后解决。

Wi-Fi在postmarketOS下不出现wlan0,作者是如何解决的?

PCIe链路训练超时后总线未扫描到Wi-Fi端点,但链路实际已建立。作者编写了mi5-wifi-startup.service,在链路未就绪时最多等120秒,检测到DLL Link Active后对空下游总线重扫描,最多三次,从而自动恢复。

蓝牙控制器没有public address,怎么配置?

从persist分区的wlan_bt/bt.mac读取工厂地址(6字节小端),复制到本地后通过MGMT Set Public Address配置,BlueZ即可正常工作。

扬声器为什么没有声音?尝试了哪些修复?

TFA9890功放能绑定,但播放无声,DSP侧有COPP关闭和q6asm超时。尝试补SD line的候选镜像反而导致UFS链路断裂,已否定。最终扬声器未修复。

相机和蜂窝网络为什么没能修好?

相机:设备树缺少相机传感器管线配置,/dev/video0是Venus编解码器,需先确认前后摄型号。蜂窝:基带能读到SIM卡,但ModemManager因QMI modem无net port拒绝创建,且内核缺少MSM8996 IPA 2.5数据通路支持,需移植驱动。

作者在移植过程中总结了哪些诊断原则?

每次只改一个变量;所有试验先用fastboot boot临时验证,不刷写分区;进Recovery第一时间保存pstore;每个镜像记录SHA256;失败也是结果,明确否定并记录。

🏷️

标签

➡️

继续阅读