更换zImage中的initramfs

本文介绍了如何从uImage中提取并替换zImage中的initramfs,详细步骤包括从zImage中提取initramfs,制作新的ramdisk文件,并重新生成Image,以达到在设备上启动自定义系统的目标。过程中涉及到Linux内核编译、LZO压缩、cpio文件处理等技术。
摘要由CSDN通过智能技术生成

         好吧,折腾了两三个星期,USB的问题没搞定,看来功夫还不到家,看了下efuse中有很多的位可以配置相关的参数,

也许智器在那里面做了很多的工作,使我一直都不能有所突破,这个问题暂时就放放吧,以后有时间再来研究研究。

其实话又说回来,国内的公司还是真垃圾,本身就是用开源的东西,不开源就算了,还搞这么多恶心的东西,真垃圾...



        之前说的一起做这个事情的哥们也一直不见动静,看来只有自己来做了。这样的话,不得不修改策略,先用最少的

时间,最少的资源,最快的速度完成最主要的功能。干脆底层的驱动就用现成的kernel镜像了,把主要精力放在上层功能

的修改和定制上吧。如果要用原始的android源码,必须要能用x7的kernel启动android系统,这中间就有很多的问题需要

处理了,也就是清明三天+今天所有做的工作。


        智器还是很恶心的,把andriod的ramdisk的原始目录静态编译到zImage中,这样就很难把这个initramfs剔除出来。

一开始想了很多的启动配置参数来修改启动的路径,能否绕过initramfs,从而从sd卡启动android系统,结果不行,主要

测试了如下的相关启动参数:

rdinit, 一开始发现这个参数感觉一阵惊喜,以为有所突破。将这个值设置为:rdinit=/init1,这样,如果在ramdisk中找不到

init1的话,就跳出ramdisk启动,走其他的路径,通过设置root=/dev/mmcblk1p2来修改root的路径,结果不行。同样,还有

其他的很多,如:rootfstype=ext4, rootdelay=5, noinitrd等等,结果都没有任何效果,于是就放弃了这条路。


        于是就把更多的精力放在了如何把编译到zImage中的initramfs剔除出来,或者换成我从android源码里面编译出来的root.

结果,在苦思冥想了好几天,再加今天上班时候的灵感触发,和今天下班回家之后,老婆做的饭香熏陶下,终于成功了,小小

兴奋了一阵。流程如下:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值