在u-boot中加载内核

在u-boot中加载内核

ID:37767482

大小:20.33 KB

页数:4页

时间:2019-05-30

在u-boot中加载内核_第1页
在u-boot中加载内核_第2页
在u-boot中加载内核_第3页
在u-boot中加载内核_第4页
资源描述:

《在u-boot中加载内核》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、u-boot-2009.08引导内核学习笔记U-Boot移植好后就要考虑如何引导内核了(以下介绍的是bootm方式,开发板是友善之臂的mini2440)。所用的U-Boot是移植的U-Boot-2009.08,内核是mini2440光盘中的kernel-2.6.29。U-Boot引导内核分三步:内核的编译、启动参数的设置、下载固化。(一)内核的编译  通常,u-boot为kernel提供一些kernel无法知道的信息,比如ramdisk在RAM中的地址。Kernel也必须为U-boot提供必要的信息,如通过mkimage这个

2、工具(在u-boot代码的tools目录中)可以给zImage添加一个header,也就是使得通常编译的内核zImage添加一个数据头,把添加头后的image通常叫uImage,uImage是可以被U-boot直接引导的内核镜像。那么如何使用mkimage工具而产生uImage的呢?1.工具mkimage--------------------------------------------------------------------------------  编译U-Boot成功后,在u-boot代码的tools目录中

3、生成一些工具,比如mkimage。将它们复制到/usr/local/bin目录下,就可以直接使用了。现在我们编译内核需要用到mkimage来生成U-Boot格式的内核映像文件uImage。复制完成后在终端输入命令"mkimage"并回车,显示关于mkimage的提示信息,表示你现在已经可以使用此命令了:Usage:mkimage-limage      -l==>listimageheaderinformation    mkimage[-x]-Aarch-Oos-Ttype-Ccomp-aaddr-eep-nname-dd

4、ata_file[:data_file...]image  -A==>setarchitectureto'arch'      //用于指定CPU类型,比如ARM  -O==>setoperatingsystemto'os'    //用于指定操作系统,比如Linux  -T==>setimagetypeto'type'      //用于指定image类型,比如Kernel  -C==>setcompressiontype'comp'    //指定压缩类型  -a==>setloadaddressto'addr'(hex

5、)  //指定image的载入地址  -e==>setentrypointto'ep'(hex)    //内核的入口地址,一般是:image的载入地址+0x40(信息头的大小)  -n==>setimagenameto'name'      //image在头结构中的命名  -d==>useimagedatafrom'datafile'  //无头信息的image文件名  -x==>setXIP(executeinplace)      //设置执行位置mkimage[-Ddtc_options]-ffit-image.i

6、tsfit-image2.编译--------------------------------------------------------------------------------  在内核的根目录下执行命令进行编译。如果之前编译过,最好先makeclean一下。然后makezImage生成zImage的内核(在此之前别忘了参看说明书装载缺省配置文件)。最后在目录kernel-2.6.29/arch/arm/boot下执行命令        mkimage-n'linux-2.6.29'-Aarm-Olinux-T

7、kernel-Cnone-a0x30008000-e0x30008000-dzImageuImage.img生成U-Boot可以引导的内核,生成的文件名为uImage.img(也可以使用默认设置,在内核根目录下执行makeuImage,生成默认的文件名为uImage)。生成的内核文件都在目录kernel-2.6.29/arch/arm/boot下。注:这里我用的mkimage是在U-BOOT-2009.08版本中生成的,在执行mkimage-n'linux-2.6.29'-Aarm-Olinux-Tkernel-Cnone-

8、a0x30008000-e0x30008000-dzImageuImage.img时,会出现错误,错误提示代码大概意思是说zImage是不支持的image类型,提示中还会列出支持的image类型。开始还以为编译出来的zImage文件有问题,结果用友善提光盘中提供的zImage文件执行时也出

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。