android下的linux内核编译

本文详细介绍了Android设备中Linux内核编译的过程,包括vmlinux的生成、如何形成bootimage以及相关文件的编译步骤。vmlinux是未压缩的内核,通过链接脚本vmlinux.lds进行链接生成。文章还提到了Android中的bootimage结构,它由boot header、kernel、ramdisk和optional second stage组成,所有部分都按照页对齐。
摘要由CSDN通过智能技术生成




二、android中bootimage的生成

0.linux VMLINUX 的生成

     vmlinux(vmlinuz)是一个包含linux kernel的静态链接的可执行文件,文件型态可能是linux接受的可执行文件格式之一(ELF、COFF或a.out)。vmlinux是未压缩的内核,vmlinux 是ELF文件,即编译出来的最原始的文件。

      下面以mtk6582分析为例子。

       (1).先看out下的文件:/home/tonylau/tony-workspace/new-v387/my-ap/out/target/product/xxxx(项目名称),

dd该目录下包含所有的手机文件镜像,如bootimage,systemimage等等,还有需要用到的obj(临时文件)

(2).然后进入obj,进一步查看:/home/tonylau/tony-workspace/new-v387/my-ap/out/target/product/xxxx(项目名称)/obj

      可以看出,该目录下包含生成(1)中各种image需要用到的临时文件,如app相关的,bootloader相关的,java相关的,kernel相关的(我们关心的是kernel相关的KERNEL_OBJ)

(3).在进入KERNEL_OBJ:/home/tonylau/tony-workspace/new-v387/my-ap/out/target/product//xxxx(项目名称)/obj/KERNEL_OBJ ====>>>>这是我们需要研究的编译vmlinux相关的地方。


====>>>>生成vmlinux:查看.vmlinux.cmd如下

【编译内核之后相应的文件会产生一个 .*.o.cmd的依赖文件, 据此文件可看出被编译的.o文件依赖的头文件,及被编译参数.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值