在MSM8916随身WiFi上玩转Linux - part2 新设备

Last updated: 2022-09-11
Table of contents

动机

哎呀,剁手了,又买了一个随身WiFi想刷机。不过这次不再是 UFI001C_MB_V01 而是 UFI_16_V3。刷机流程稍有不同。后面又整了台 UFI003,看过发现和 UFI001C 一样。

刷机流程

备份

首先是 备份备份备份

比较友好的是,该款版型的系统原生开启高通调试接口,备份基带QCN无需ROOT。老规矩,上 QPST

其次是全盘eMMC备份。这里使用 Qualcomm Premium Tool 中备份Block0的功能。

fastboot刷机

下面尝试进入fastboot刷机。哎?怎么刷不进去?

% fastboot flash partition gpt_both0.bin 
Sending 'partition' (33 KB)                        OKAY [  0.005s]
Writing 'partition'                                FAILED (remote: 'failed to write partition,please contact vendor')
fastboot: error: Command failed

看样子fastboot做了限制加了锁。经过一番研究,发现在MSM8916平台上fastboot在 aboot(appsboot/lk1st) 分 区,而刷GNU/Linux正好也要更新这个分区,干脆直接用 Qualcomm Premium Tool 把 该写的 aboot 分区通过9008提前写入。看上去不错,fastboot被替换掉了。

然后看情况稍微修改一下 Debian 的刷机脚本,不过好像不改也行。总之就是自己准备好备份,然后相应刷就行。

接下来的步骤和前一篇文章基本一致。

补充

LED怎么不亮

emm这块板子的LED是用 aw2013 控制的,是 i2c6 下面挂的一颗LED控制器。需要相应地修改设备树。 我完完全全地被骗了,这就是三个普通的GPIO LED,只不过其中有一个直接连到了PMIC 上。另外,这板子上的红灯居然是常亮的,只和电源是否接通有关系(看板子估计是因为用一个电阻替换了应有的三脚管);蓝色LED结果是个绿 的,我猜都是为了省经费。

apt-key 的代替方案

read https://www.linuxuprising.com/2021/01/apt-key-is-deprecated-how-to-add.html

修改appsboot

Clone lk2nd,修改相关配置并编译。原来的aboot是给 UFI001C_MB_V01 用的,这里hack一下给 UFI_16_V3 用。其实也就 修改了一下相关LED的引脚定义,顺带改一下product名称,没别的了。

后记

经过这次曲折的研究,我意外学习了一些设备树和驱动的概念。感觉设备树这个设计很神 奇啊,本来分散的硬件通过设备树的描述就可以当成一个整体了;驱动集成到内核也把硬 件细节封装了起来;原本的芯片像是通过外围设备组成了一个更大的芯片。以后看情况再 补充学习一下。