在内核中创建 uImage 的方法

本文介绍如何在2.6内核树中使用Makefile创建uImage文件,涉及mkimage命令的配置与使用,以及内核Makefile中关键参数的设置,如加载地址与入口地址。

2.6 内核树的 Makefile 提供了创建 uImage 的方法,但需要我们提供相应的 mkimage 命令。所以首先拷贝 u­boottools目录下编译后生成的 mkimage/usr/bin/下,然后便可以在内核根目录下通过make uImage来创建uImage 文件。该文件生成在 arch/arm/boot/下。
2.2.2 修改内核的 Makefile 文件

[arm@localhost linux­2.6.14.1]$ vi arch/arm/boot/Makefile
#MKIMAGE 变量记录 mkimage 命令的路径 mkuboot.sh 脚本文件可以 scripts 目录中找到
MKIMAGE := $(srctree)/scripts/mkuboot.sh

#zreladdr­y 与 params_phys­y 可以在 arch/arm/mach­s3c2410/Makefile.boot 当中找到
ZRELADDR := $(zreladdr­y)
PARAMS_PHYS := $(params_phys­y)
INITRD_PHYS := $(initrd_phys­y) 

#生成 uImage 的 mkImage 命令行,其中需要关注的就是­a 与 ­e 参数。
#参数­a:指明 uImage 加载的 SDRAM 地址,内核默认指定加载地址为 0x30008000。
#u­boot 引导时,bootm 命令跳到与上相同位置执行,检查完镜像头后,它会跳到内核真正的入口点开
始执行。
#参数­e:指明 uImage 中刨去镜像头后真正的内核入口地址。
#镜像头为 0x40 长,故此处指定为 0x30008040。
#u­boot 引导时,go 命令可以直接指定此位置。go 命令不检查镜像头。
quiet_cmd_uimage = UIMAGE $@
   cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) ­A arm ­O linux ­T kernel \
­		-C none ­a $(ZRELADDR) ­e 0x30008040 \
­		-n 'Linux­$(KERNELRELEASE)' ­d $< $@ 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值