免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1136 | 回复: 0
打印 上一主题 下一主题

生成uImage [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-08 10:30 |只看该作者 |倒序浏览
uImage的制作
对于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 选项指定解压缩后内核的入口地址,这一地址要和内核生成时的地址保持一致。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/47239/showart_376950.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP