uImage的制作
来源:互联网 发布:淘宝分享链接生成器 编辑:程序博客网 时间:2024/05/16 06:17
对于Linux 2.6 以上内核,内核编译的时候支持uImage目标
#make menuconfig
#make uImage
或者按照u-boot源代码根目录下的README文件中关于Building a Linux Image一节,手动生成uImage,步骤如下:
1)配置编译内核,生成vmlinux(未压缩的内核镜像)
2)把vmlinux转成原始二进制形式
#{ CROSS_COMPILE }-objcopy –O binary \
-R .note –R .comment \
-S vmlinux linux.bin
这里的CROSS_COMPILE是交叉编译前缀,比如常用的arm-linux
3)压缩linux.bin
#gzip -9 linux.bin
4)用mkimage生成uImage,mkimage命令的具体使用可以用mkimage –help查看
#mkimage –A arm –O linux –T kernel –C gzip –a 0x30008000 –e 0x30008000 –n “Linux Kernel Image” –d linux.bin.gz uImage
这 里有几个参数要注意①-C gzip 指明原始的二进制内核是用gzip压缩的②-a 0x30008000 –e 0x30008000对于不同的image类型-a –e 选项有不同的用途,可以参考cmd_bootm.c中的do_bootm函数。对于Linux Kernel,以具体的例子说明:
#tftp 0x30800000 image
#bootm 0x30800000
对 于生成uImage时使用-C NONE时,u-boot只是简单的将image从0x30800000搬到-a 指定的地址。对于 –C gzip u-boot将会跳过image 64Byte的头部分,将压缩的内核解压缩到-a指定的地址,所以bootm 后面跟的地址和-a 的地址最好要有一定的间隔。-e 选项指定解压缩后内核的入口地址,这一地址要和内核生成时的地址保持一致。
内核裁剪完成后,执行# make Image,会在内核源码的“arch/arm/boot/”目录下生成名为“Image”的镜像。Image是内核映像文件,而uboot专用的映像文件是uImage,利用“/usr/local/arm/3.4.1/bin/”目录下的arm-linux-objcopy工具生成linux.bin文件,并压缩该文件,最后利用mkimage工具把linux.bin.gz压缩文件转换成uImage。
-O linux -------- 操作系统是linux
-T kernel -------- 类型是kernel
-C gzip -------- 为压缩类型
-a 20008000 ---- image的载入地址(hex)
-e 20008000 ---- 内核的入口地址(hex)
-d linux.bin.gz ---- image压缩文件名
uImage ---- 生成的image文件名
声明:
以上两篇转自:http://hi.baidu.com/kkernel/blog/item/afac2b58207cf684800a189c.html
http://bbs.sciencenet.cn/home.php?mod=space&uid=39626&do=blog&id=332576
- uImage的制作
- uImage的制作
- uImage的制作
- 制作带initrd的uImage
- mkimage制作linux内核映像----uImage是怎么制作的
- 制作uImage镜像
- 制作uImage镜像
- zImage制作uImage
- zImage制作uImage
- 制作uImage镜像 .
- Linux内核zImage\Image\uImage之区别及uImage的制作
- zz linux的uboot启动映像uImage制作过程
- linux的uboot启动映像uImage制作过程
- Hi3520d uImage制作 uboot制作 rootfs制作
- mkimage制作linux内核映像 即uImage是怎么制作的
- mkimage制作linux内核映像 即uImage是怎么制作的
- zImage uImage的区别
- Hi3520D 制作U-boot uImage 根文件系统
- ubuntu上利用virtualbox安装windowsXP
- strcmp函数
- boost智能指针介绍
- android学习笔记(五) Tab使用
- ASP.NET 图表制作 参考
- uImage的制作
- 几个常用库在CMake中的设置脚本
- 2011.07.17
- 面向对象——多态的理解
- 永葆心灵恬静
- 多线程编程之一——问题提出
- C语言的那些小秘密之指针(三)
- 60个生活小技巧
- 校内api教程