歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> mkimage的-a 和 –c參數和內核引導

mkimage的-a 和 –c參數和內核引導

日期:2017/3/1 10:27:22   编辑:Linux編程

目錄

一、mkimage工具簡介
二、-a參數與-e參數和內核引導的關系
三、實例測試
  • 3.1 -a參數與-e參數相同,可以將內核下載到SDRAM的任何地址,然後從這啟動
  • 3.2 -a參數與-e參數不同,只能將內核下載到-a參數後面的地址,然後從這啟動;否則無法引導內核
  • 3.3 -a參數與-e參數不同,下載地址和-a參數後面的地址不同(無法引導)
  • 3.4 覆蓋了U-Boot傳給內核的參數,會導致這樣情形(無法引導)

一、mkimage工具簡介

U-Boot源代碼的tools/目錄下有mkimage工具,這個工具可以用來制作不壓縮或者壓縮的多種可啟動映象文件。mkimage在制作映象文件的時候,是在原來的可執行映象文件的前面加上一個0x40字節的頭,記錄參數所指定的信息,這樣U-Boot才能識別這個映象是針對哪個CPU體系結構的,哪個OS的,哪種類型,加載內存中的哪個位置, 入口點在內存的那個位置以及映象名是什麼

[email protected]:~/桌面# ./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 ARM
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的壓縮方式

-a 指定映象在內存中的加載地址

映象下載到內存中時,要按照用mkimage制作映象時,這個參數所指定的地址值來下載

-e 指定映象運行的入口點地址

這個地址就是-a參數指定的值加上0x40(因為前面有個mkimage添加的0x40個字節的頭)

-n 指定映象名

-d 指定制作映象的源文件

Copyright © Linux教程網 All Rights Reserved