| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 我的4g网卡运行着GNU/Linux -- 某4g无线网卡的逆向工程与主线Linux移植 (二) -> 正文阅读 |
|
[系统运维]我的4g网卡运行着GNU/Linux -- 某4g无线网卡的逆向工程与主线Linux移植 (二) |
修改lk2nd观察lk2nd现有的设备树,和一部分实现,发现lk2nd的设备树其实也并不是只用于原装bootloader识别,大佬们也实现了设备树中的按键定义在系统中的注册。 在app/aboot/aboot.c中
整个按键的初始化在lk2nd中加入了通过设备树初始化的部分,通过读取lk2nd,keys属性来完成。
其实实现edl按键进入fastboot的思路就已经很清晰了,就是在设备树中加一条定义就行,把gpio37注册成为home按键。
刷入boot分区测试,完美触发!在测试的时候发现fastboot烧写boot.img采用的不是先擦除再烧写,而是覆盖的方式。如果lk2nd有问题,安卓内核就会一直重启,进不到原来的bootloader的fastboot模式。
第一次执行可能会卡住,直接中断马上再执行相同指令,就完成了boot分区的擦除。
在target_init()中加入gpio初始化语句
这样lk2nd基本上就起来了,能够启动原来的安卓内核和按edl按键进入fastboot模式,让免拆刷机成为可能,唯一不好的地方就是按edl键的时间必须要准,太早就直接进edl模式了,太慢就直接进内核了。 lk1st yes!lk2nd 的存在使得在整个引导过程中多了一层来传递主线内核需要的参数,拖慢了启动的速度。所以在最终的版本中lk2nd只用于提取原来的modem和wifi的校准数据,而设备引导由这套代码生成的lk1st完成。 target/msm8916/init.c
向系统注册按键
代码就修改完成了,接下来就是编译之后烧写到设备里,但是不能直接将产物进行烧写,还需对其进行签名。这里我使用的是qtestsign工具,它的简介以及十分详细,这里就不再赘述了。 烧写之后,lk完美运行,接下来就是主线linux的移植了! 移植主线Linux为了验证主线linux内核是否能够在这个设备上启动先使用我之前在红米2上弄的一个用于kexec的dragonroot 来试试。 稍微查了一下发现是trustzone固件的问题,貌似这个板子自带的trustzone固件用不了64位的内核,这也就是为什么lk2nd用的了而linux内核却不行的原因。lk2nd默认是以arm32的形式编译的。 PostmarketOS 使用体验运行了一天,稳定性还是不错的,发热量也不是很大(空载状态下运行手摸接近室温) 得益于postmarketos基于的alpine linux轻量级的特点,资源占用也不是很高。 当然,wifi、蓝牙、modem也是工作的。但是modem没有卡试,也没激活商家提供的卡,只知道可以认出运营商,即使有问题,问题也不是很大。gps、gpu和硬件解码器能识别出,应该问题也不大。
WHY?作为一个高级路由器,一个host模式usb不应该是基本要求吗?
但是这个usb默认工作在slave模式下,厂家也没设计io口作为usb
芜湖!成功认出了我插入的USB鼠标。 这下离线下载、打印服务器之类的玩法实现也比较轻松了。至此,一个非常廉价、性能还可以的arm64单板电脑就诞生了。 这个板子唯一的遗憾就是emmc太小了,要是有sd卡槽,基本上就无敌了。 Openwrt ?这个比较复杂。其一是没有任何openwrt设备的soc是自带modem的,usb modem很久以前就支持了,但是不确定modem能不能驱动。其二是msm8916没有被官方支持,而且内核是安卓格式的,必须对生成镜像的过程进行修改,加一些构建工具。还要backport msm8916-mainline主线内核里的一些修改到稳定版内核。 另外openwrt还没有管理usb slave(gadget)模式的工具。我的目标不仅仅是让usb实现网卡的功能,还要实现串口、adb、磁盘挂载等一些其他的功能。这可能要自己造轮子了。 其实研究红米2的时候就在我的openwrt fork – HandsomeMod 里我已经做了一些尝试了,能够进入shell,但是硬件还没有完全跑起来。 但是这是迟早的事情,谁叫你配置这么高又卖的这么便宜呢,哈哈~~ |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 1:53:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |