2007/09/14

U-Boot & Crosstool Install

CrossTool 可以很容易地建立起 gcc/glibc cross-toolchains.
更詳細的內容請參考 http://kegel.com/crosstool/
 
1. 安裝cross toolchain
 
下載最新版本的crosstool, 目前最新版本是crosstool-0.43.tar.gz
解壓縮
# tar zxvf crosstool-0.43.tar.gz
 
建立資料夾放置編譯完成的程式
sudo mkdir /opt/crosstool
sudo chown $USER /opt/crosstool
 
進入目錄裡選擇要安裝的目標版種類. 這裡以arm為例.
而且要在非root的使用者下安裝.
另外, 要編譯u-boot 1.2.0, 要使用softfloat得cross tool才可以.
# cd crosstool-0.43
# ./demo-arm-softfloat.sh
 
接下來就會開始先設定一些環境變數, 下載需要的檔案, 進行編譯動作.
在下載linux核心的時候會特別慢, 因為是連到國外. 建議改成國內的鏡像站.
getandpatch.sh是用來下載檔案的shell script
直接修改裡面的網址就可以了.
 
安裝完之得toolchain會放在
/opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin
 
可以將上面路徑加入$PATH還境變數.
或者你想要登入都有這個工具可以在
/etc/profile裡面加入設定
 
 
2. U-Boot
 
安裝完toolchain之後 就可以開始製作u-boot了
這裡使用arm920t integrator/cp目標版.
請參考U-Boot網站 http://www.denx.de/wiki/UBoot
 
下載完解壓縮
# tar jxvf u-boot-1.2.0.tar.bz2
 
進入目錄後, 還需要修改config檔. 到include/configs目錄
會看到許多版子的設定檔
 
將下面參數加入設定檔
include/configs/integratorcp.h
 
#define CONFIG_BOOTFILE     "u-boot.bin"
#define CONFIG_ETHADDR      00:02:f7:00:04:86
#define CONFIG_NETMASK      255.255.255.0
#define CONFIG_IPADDR       192.168.10.1
#define CONFIG_SERVERIP     192.168.10.11
 
回到目錄下後, 設定目標板核心.
# make CROSS_COMPILE=arm-softfloat-linux-gnu- cp920t_config
# make CROSS_COMPILE=arm-softfloat-linux-gnu-
 
編譯好之後就將 u-boot.srec檔案用minicom 寫入版子即可..