mkimage使用詳解

2021-08-03 00:10:53 字數 1715 閱讀 1392

uboot源**的tools/目錄下有mkimage工具,這個工具可以用來製作不壓縮或者壓縮的多種可啟動映象檔案。

mkimage在製作映象檔案的時候,是在原來的可執行映象檔案的前面加上乙個0x40位元組的頭,記錄引數所指定的資訊,這樣uboot才能識別這個映象是針對哪個cpu體系結構的,哪個os的,哪種型別,載入記憶體中的哪個位置, 入口點在記憶體的那個位置以及映象名是什麼

root@glym:/tftpboot# ./mkimage

usage: ./mkimage -l image

-l ==> list image header information

./mkimage -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)

引數說明:

-a 指定cpu的體系結構:

取值 表示的體系結構

alpha alpha 

arm a rm 

x86 intel x86

ia64 ia64

mips mips

mips64 mips 64 bit

ppc powerpc

s390 ibm s390

sh superh

sparc sparc

sparc64 sparc 64 bit

m68k mc68000

-o 指定作業系統型別,可以取以下值:

openbsd、netbsd、freebsd、4_4bsd、linux、svr4、esix、solaris、irix、sco、dell、ncr、lynxos、vxworks、psos、qnx、u-boot、rtems、artos

-t 指定映象型別,可以取以下值:

standalone、kernel、ramdisk、multi、firmware、script、filesystem

-c 指定映象壓縮方式,可以取以下值:

none 不壓縮

gzip 用gzip的壓縮方式

bzip2 用bzip2的壓縮方式

-e 指定映象執行的入口點位址,這個位址就是-a引數指定的值加上0x40(因為前面有個mkimage新增的0x40個位元組的頭)

-n 指定映象名

-d 指定製作映象的原始檔

gzip --best -c ramdisk > ramdisk.gz

mkimage -n "ramdisk" -a arm -o linux -t ramdisk -c gzip -d ramdisk.gz ramdisk.img

使用mkimage製作uboot指令碼

在uboot原始碼的tools目錄下有mkimage工具,可以製作uboot指令碼,例如 使用編輯器寫上需要執行的命令,用分號隔開,儲存成檔案boot.script 然後使用下面命令製作乙個指令碼檔案u boot.scr mkimage a arm o linux t script c none a...

mkimage工具講解

mkimage使用詳解 uboot源 的tools 目錄下有mkimage工具,這個工具可以用來製作不壓縮或者壓縮的多種可啟動映象檔案。mkimage在製作映象檔案的時候,是在原來的可執行映象檔案的前面加上乙個0x40位元組的頭,記錄引數所指定的資訊,這樣uboot才能識別這個映象是針對哪個cpu體...

從 mkimage 找不到命令 學習mkimage

編譯的時候發現 line 69 mkimage 找不到命令 才發現自己沒有裝這個打包工具,安裝 sudo apt get install uboot mkimage 再編譯ok mkimage a arch o os t type c comp a addr e ep n name d data f...