欢迎来到天天文库
浏览记录
ID:37767482
大小:20.33 KB
页数:4页
时间:2019-05-30
《在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文件执行时也出
此文档下载收益归作者所有