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...