make uImage-uImage生成过程

本文详细介绍了如何从最顶层的vmlinux生成uImage的过程,包括使用arm-linux-gnu-ld链接生成vmlinux,然后通过arm-none-linux-gnueabi-objcopy去除不必要的信息得到Image,接着使用gzip压缩,再结合head.S和misc.c创建压缩头,最终形成uImage。这一过程涉及到多个步骤和工具,如objcopy、gzip和gcc。
摘要由CSDN通过智能技术生成

今天微博上看到宋宝华发的一张图,看着不错,保留了下来。


0 最顶层的vmlinux是如何生成的?

依据arch/arm/kernel/vmlinux.lds 生成linux内核源码根目录下的vmlinux,这个vmlinux属于未压缩,带调试

信息、符号表的最初的内核,我用linux3.4.2编译出来有45M; 

arm-linux-gnu-ld -EL  -p --no-undefined -X -o vmlinux -T arch/arm/kernel/vmlinux.lds 

-EL 文件小端存储,为默认

-T    连接依赖的脚本文件vmlinux.lds

built-in.o   是各个子目录下递归产生的中间文件,依次递归到内核根目录的built-in.o,就是vmlinux 

arch/arm/kernel/head.o  
arch/arm/kernel/init_task.o   
init/built-in.o  
--start-g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值