1. 程式人生 > >u-boot中mkimage工具的具體使用

u-boot中mkimage工具的具體使用

通常,u-boot為kernel提供一些kernel無法知道的資訊,比如ramdisk在RAM中的地址。Kernel也必須為U-boot提供必要的資訊,如通過mkimage這個工具(在u-boot程式碼的tools目錄中)可以給zImage新增一個header,也就是使得通常編譯的核心zImage新增一個數據頭,把新增頭後的image通常叫uImage,uImage是可以被U-boot直接引導的核心映象。那麼如何使用mkimage工具而產生uImage的呢?下面將具體介紹mkimage工具的使用:
 
1.首先檢視mkimage的命令引數
[[email protected] tools]# ./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'   //用於指定CPU型別,比如ARM
          -O ==> set operating system to 'os'  //用於指定作業系統,比如Linux
          -T ==> set image type to 'type'      //用於指定image型別,比如Kernel
          -C ==> set compression type 'comp'   //指定壓縮型別
          -a ==> set load address to 'addr' (hex)  //指定image的載入地址
          -e ==> set entry point to 'ep' (hex)     //核心的入口地址,一般是:image的載入地址+0x40(資訊頭的大小)
          -n ==> set image name to 'name'          //image在頭結構中的命名
          -d ==> use image data from 'datafile'    //無頭資訊的image檔名
          -x ==> set XIP (execute in place)        //設定執行位置

2.製作新增頭的uImage

[[email protected] boot]# ./mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 30008040 -n linux-2.6.13 -d zImage uImage
Image Name:   linux-2.6.13
Created:      Sat Dec 20 19:42:38 2008
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    1588584 Bytes = 1551.35 kB = 1.51 MB
Load Address: 0x30008000
Entry Point:  0x30008040
注意:大家可以根據建立的頭資訊來驗證個引數的含義。比如Image Name就是-n選項指定的內容,Load Address就是-a選項指定的內容,Entry Point就是-e選項指定的內容。

3.下載並執行uImage。

u-boot(armzone)=> tftp 30008000 uImage
TFTP from server 192.168.0.3; our IP address is 192.168.0.7
Filename 'uImage'.
Load address: 0x30008000
Loading: #################################################################
         #################################################################
         #################################################################
         #################################################################
         ###################################################
done
Bytes transferred = 1588648 (183da8 hex)
u-boot(armzone)=> bootm
## Booting image at 30008000 ...
   Image Name:   linux-2.6.13
   Created:      2008-12-20  11:42:38 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1588584 Bytes =  1.5 MB
   Load Address: 30008000
   Entry Point:  30008040
   Verifying Checksum ... OK
   XIP Kernel Image ... OK
boot linux

Starting kernel ...

Uncompressing Linux......................................................................................................... done, booting the kernel.

相關推薦

u-bootmkimage工具具體使用

通常,u-boot為kernel提供一些kernel無法知道的資訊,比如ramdisk在RAM中的地址。Kernel也必須為U-boot提供必要的資訊,如通過mkimage這個工具(在u-boot程式碼的tools目錄中)可以給zImage新增一個header,也就是使得通常

u-bootnand相關命令使用---- ubi, ubifsls, ubifsmount, ubifsumount

轉載地址:https://blog.csdn.net/voice_shen/article/details/8425763  [Version: 2013-01-rc2] [Author: Bo Shen <[email protected]>] 1. &

u-boot 增加自定義命令hjlcmd2------(新增檔案來定義)

1,在 "[email protected]:/home/hjl/Downloads/uboot/common#" 目錄中新增檔案 cmd_hjl.c ,加上標頭檔案     #include <common.h>    &nbs

u-boot 增加自定義命令hjlcmd1

在uboot/common資料夾下找到command.c檔案,進入編輯: 對照隨便一個命令,如: do_version (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) { extern char version_strin

u-boot新增mtdparts支援以及Linux的分割槽設定

閱讀目錄(Content) 簡介 作者:彭東林 u-boot版本:u-boot-2015.04 Linux版本:Linux-3.14 硬體平臺:tq2440, 記憶體:64M   NandFlash: 256MB 下面我們分兩部分,u-boot和k

U-boot新增乙太網驅動

版權宣告:本文為博主原創文章,未經博主允許不得轉載。    https://blog.csdn.net/mao0514/article/details/17523803 當定義CONFIG_CMD_NET和CONFIG_CMD_PING,編譯之後執行ping命令,告警沒有

Spring boot使用工具類 無需注入獲取.yml的值

專案中經常需要將路徑URL等資訊單獨提出寫到配置檔案中,之前使用Spring時一般都是用 .properties檔案來存這些公共資訊,那麼如何在spring boot中優雅的使用.yml檔案存取呢、、首先定義存放公共資訊的 .yml 配置檔案定義為 application-c

u-boot:rm:無法刪除 "asm":是一個目錄

轉自:http://blog.163.com/zhangyingxin_/blog/static/218307222201331291755998/ uboot移植編譯小問題 ———rm:無法刪除 "asm":是一個目錄 我之前所做的uboot移植工作都快要完成了,想要拷貝

U-BOOT實現讀取電池電量

platform: s3c2440 + u-boot 1.1.4 + linux 2.6.18       為了防止低電開機啟動到一半的時候系統down掉,所以有必要在 u-boot 中加入電池電量的偵測。 偵測電池電量只需讀 AN0 口上的 AD 值就可以了,當電量少於 5

U-boot新增Cubieboard(全志A10)乙太網驅動

當定義CONFIG_CMD_NET和CONFIG_CMD_PING,編譯之後執行ping命令,告警沒有找到乙太網。 因此,需要開啟U-boot的網路功能, u-boot-sunxi-sunxi中沒有找到明顯的網路驅動程式碼,或許有通用的驅動,但可以獲得資料的途徑有限,再說我

u-bootmakefile的執行步驟

本文分析的uboot版本是2013.04.主要目的是通過分析uboot頂目錄下的makefile檔案,瞭解uboot的大致執行步驟和順序。 簡而言之就是先讀取makefile檔案;然後讀取include包含的檔案;重建已讀取makefile檔案的規則;展開變數和函式等。

spring boot PropertiesUtil 工具類的建立和應用

在spring boot 專案中 使用 自定義 PropertyPlaceholderConfigurer會造成 @Vaule 無法正常注入,spring boot 已經有一個預設的實現,所以會造成衝突,在spriing mvc 中可以 使用PropertyPlacehold

U-BootMAC地址設定及往核心傳遞

一、核心引數的傳遞 U-Boot向Linux驅動傳遞引數的方式有兩種,一為在系統啟動的時候由bootloader傳入,還有一種是將驅動編譯成模組,將引數作為模組載入的引數傳入。 核心通過setup介面接受Bootloader傳入的引數。方式如下: st

u-bootfdt命令的使用

[u-boot: v2012.10] [Author: Bo Shen <[email protected]>] 依linux community的要求,從linux-3.5後,新提交的code必須對device tree進行支援。下面介紹如何使u-

U-boot通過ENV設定顯示裝置(如LCD)引數的方法與格式

對於一個移植比較完善的U-boot來說,顯示裝置一般也是可以使用的。在嵌入式中的LCD液晶屏一般由晶片的內建的LCD控制器或者VPSS(視訊處理子系統)來控制。在U-boot中已經實現了類似framebuffer的機制,只要在移植的時候完成對LCD控制等顯示裝置的初始化,並

u-bootmmc命令使用

[u-boot: v2013.01] [Author: Bo Shen <[email protected]>] mmc命令的幫助資訊如下: U-Boot> mmc      mmc - MMC sub system Usage: mmc

在linux系統通過fw_printenv檢視和設定u-boot的環境變數

uboot下可以通過命令訪問和修改環境變數,但是如果需要在Linux系統下訪問這些資料該怎麼辦呢?其實uboot早就幫我們想好了。      1、編譯fw_printenv工具     在你使用的uboot程式碼中用以下編譯指令:     make env     這樣就可

自然語言處理工具包 HanLP在 Spring Boot的應用

本文共 782字,閱讀大約需要 2分鐘 ! 概 述 HanLP 是基於 Java開發的 NLP工具包,由一系列模型與演算法組成,目標是普及自然語言處理在生產環境中的應用。而且 HanLP具備功能完善、效能高效、架構清晰、語料時新、可自定義的特點,因此十分好上手,本文就結合 Spring Bo

"mkimage" command not found - U-Boot images will not be built

       對於剛下載的核心當我們make後一般預設會生成zImage,然而uImage的規則如何生成呢?                 首先uImage

U-boot-2009 08移植(五)uboot架構NAND Flash驅動修改

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!