2012年10月3日 星期三

u boot 下載、編譯:


u boot 下載、編譯:

0 toolchain  安裝

/etc/apt/sources.list 請加入以下設定:
deb http://www.emdebian.org/debian/ squeeze main

接著執行

apt-get update

apt-get install gcc-4.4-arm-linux-gnueabi cpp-4.4-arm-linux-gnueabi g++-4.4-arm-linux-gnueabi

即可完成 toolchain 安裝。


1. U-boot 是使用在嵌入式系統的 bootloader,所謂的 bootloader 是指開機時載入
的一個小程式,在開機階段作好系統初始化並導入系統 (Linux) 核心,最後完成開機
流程將權限交給作業系統。

U-boot 的官方網頁如下:

http://www.denx.de/wiki/U-Boot

下載網址在:

ftp://ftp.denx.de/pub/u-boot/u-boot-latest.tar.bz2

下載完畢後會出現 u-boot-latest.tar.bz2 這個檔案,之後我們就可以準備解壓縮。

tar xfva u-boot-latest.tar.bz2

解開完畢後會出現 u-boot-2013.10 (最新版) 之目錄,請切換至此目錄準備編譯。

2. 編譯 u-boot

u-boot-2013.10 目錄底下有個 boards.cfg 檔案,裡面內建「所有」支援 ARM 開發板之設定,請看該檔內容,我們會看到其中有一行如下:

omap3_beagle                 arm         armv7       beagle              ti             omap3

以上資訊告訴我們 u-boot 有支援 beagle 板,請執行底下指令設定編譯參數。

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- omap3_beagle_config

此時會出現底下訊息:

Configuring for omap3_beagle board...

接著請執行底下指令編譯:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- all -j 8

編完之後會出現幾個檔案:

MLO
u-boot
u-boot.bin
u-boot.img

3. 測試
請執行底下指令將所開機必要檔案轉至 sd.img 這個檔案

cat MLO u-boot u-boot.bin u-boot.img > sd.img

接著執行:

qemu-system-arm -M beagle -nographic -sd sd.img

我們會看到 U-boot 2012.07 已經啟動,但是因為沒有核心所以無法開機並且會在此處
當掉,我們會在之後的教學中進行說明如何繼續往下作。

U-Boot SPL 2012.07 (Oct 04 2012 - 11:43:34)
Texas Instruments Revision detection unimplemented
OMAP SD/MMC: 0
mmc_init_stream: timedout waiting for cc!
spl: mmc init failed: err - -19
### ERROR ### Please RESET the board ###

請按 Ctrl+a x 跳出 Qemu

沒有留言:

張貼留言