u-boot-2011.06雖然支持一些常見的開發板,但如果u-boot-2011.06不支持我們手上的開發板,那就要找到與我們的開發板最接近的u-boot-2011.06所支持的開發板,在這個開發板的基礎上進行移植。u-boot-2011.06所支持的smdk2410開發板是最接近我的開發板的,所以我就在該此基礎上進行修改、移植。
相關閱讀:
U-Boot源代碼下載地址 http://www.linuxidc.com/Linux/2011-07/38897.htm
U-Boot-2011.06啟動流程分析 http://www.linuxidc.com/Linux/2011-07/39310.htm
u-boot-2011.06在基於s3c2440開發板的移植之編譯配置 http://www.linuxidc.com/Linux/2011-10/45455.htm
u-boot-2011.06在基於s3c2440開發板的移植之NorFlash啟動 http://www.linuxidc.com/Linux/2011-10/45456.htm
u-boot-2011.06在基於S3C2440開發板的移植之解決raise: Signal # 8 caught http://www.linuxidc.com/Linux/2011-10/454554.htm
u-boot-2011.06在基於s3c2440開發板的移植之支持NandFlash讀寫 http://www.linuxidc.com/Linux/2011-10/45457.htm
u-boot-2011.06在基於s3c2440開發板的移植之硬件ECC http://www.linuxidc.com/Linux/2011-10/454558.htm
在移植之前,我們還需要安裝、配置eldk,用於編譯u-boot。下面我們就先介紹一下eldk的安裝與配置:
1.下載eldk
在這裡選擇任一版本的eldk並下載,我選擇的是eldk4.2版本的arm-2008-11-24.iso文件。把該文件下載到/home/zhaocj/download/目錄下。
2.在root權限下安裝eldk
創建掛載點:
mkdir /mnt/dvdrom
掛載光驅:
mount –o loop /home/zhaocj/download/arm-2008-11-24.iso/mnt/dvdrom
安裝eldk:
cd /mnt/dvdrom
./install –d /opt/eldk4.2/
這樣eldk就安裝到了/opt/eldk4.2目錄下。
3.設置環境變量
cd ~
gedit .bashrc
在最後添加如下內容:
export CROSS_COMPILE=arm-linux-
export PATH=/opt/eldk4.2/bin: /opt/eldk4.2/usr/bin:$PATH
保存並退出,然後執行:
source .bashrc
重啟電腦就完成了eldk的安裝。
下面就介紹u-boot-2011.06的移植,在這裡我把我的開發板命名為zhaocj2440:
1.下載u-boot
下載目前最新的u-boot版本(即u-boot-2011.06.tar.bz2)到我的用戶主目錄下。
2.解壓u-boot
cd ~
把u-boot-2011.06解壓到當前目錄下
tar –xvjf u-boot-2011.06.tar.bz2
cd u-boot-2011.06
3.在u-boot中添加我的開發板信息
emacs boards.cfg
打開boards.cfg文件,在第70行(smdk2410 arm arm920t – samsung s3c24x0)的下面添加一行,內容如下:
zhaocj2440 arm arm920t – samsung s3c24x0
保存並退出。
4.通過復制的方式添加我的開發板頭文件
cp include/configs/smdk2410.h include/configs/zhaocj2440.h
5.通過復制的方式添加我的開發板文件夾
cp –r board/samsung/smdk2410 board/samsung/zhaocj2440
更改文件名
mv board/samsung/zhaocj2440/smdk2410.c board/samsung/zhaocj2440/zhaocj2440.c
修改Makefile文件
emacs board/samsung/zhaocj2440/Makefile
打開Makefile文件,在第28行中,把COBJS :=smdk2410.o改為:
COBJS:=zhaocj2440.o
保存並退出。
6.編譯
make distclean
make zhaocj2440_config
make
如果上述過程沒有出錯的話,會在u-boot的目錄下出現新的u-boot.bin文件。