Welcome 微信登录

首页 / 操作系统 / Linux / U-Boot mkimage工具使用说明

mkimage工具是u-boot用来制作镜像文件的工具,其源代码在u-boot源码的tools目录下:mkimage.c。我们使用bootm命令加载的内核和根文件系统,都要用这个工具加上个头。U-Boot源代码下载地址 http://www.linuxidc.com/Linux/2011-07/38897.htm我们首先看下这个头的结构(一共64B):typedef struct image_header {
 uint32_t ih_magic; /* Image Header Magic Number */
 uint32_t ih_hcrc; /* Image Header CRC Checksum */
 uint32_t ih_time; /* Image Creation Timestamp */
 uint32_t ih_size; /* Image Data Size  */
 uint32_t ih_load; /* Data  Load  Address  */
 uint32_t ih_ep;  /* Entry Point Address  */
 uint32_t ih_dcrc; /* Image Data CRC Checksum */
 uint8_t  ih_os;  /* Operating System  */
 uint8_t  ih_arch; /* CPU architecture  */
 uint8_t  ih_type; /* Image Type   */
 uint8_t  ih_comp; /* Compression Type  */
 uint8_t  ih_name[IH_NMLEN]; /* Image Name  */
} image_header_t;  我们再看下上面哪些参数是需要我们传递给mkimage这个工具?下面是这个工具使用说明 [root@localhost linux]# mkimage
Usage: mkimage -l image
          -l ==> list image header information
       mkimage [-x] -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
          -A ==> set architecture to "arch"
          -O ==> set operating system to "os"
          -T ==> set image type to "type"
          -C ==> set compression type "comp"
          -a ==> set load address to "addr" (hex)
          -e ==> set entry point to "ep" (hex)
          -n ==> set image name to "name"
          -d ==> use image data from "datafile"
          -x ==> set XIP (execute in place)
[root@localhost linux]#  -A:CPU 架构,可选的值有:"alpha","arm","x86","ia64","m6k8","microblaze","mips","mips64","nios","nios2","ppc","s390","sh","sparc","sparc64","blackfin","avr32"。-O:操作系统。可选的值有:"4_4bsd","artos","esix","freebsd","irix","linux","lynxos","ncr","netbsd","openbsd","psos","qnx","rtems","sco","sloaris","u-boot",vxworks"-T:镜像类型。可选的值有:"filesystem","firmware","firmware","kernel","multi","ramdisk","script","standalone","flat_dt"-C:镜像压缩类型。可选的值有:"none","bzip2","gzip" none为没有压缩。-n: 镜像名称。最长32个字符。-a:镜像加载地址(16进制)-e:镜像入口(16进制)-d:制定制作镜像的源文件。-x是指就在此执行的意思,就是说 入口 = 加载地址+64。