u-boot-2011.06虽然支持一些常见的开发板,但如果u-boot-2011.06不支持我们手上的开发板,那就要找到与我们的开发板最接近的u-boot-2011.06所支持的开发板,在这个开发板的基础上进行移植。u-boot-2011.06所支持的smdk2410开发板是最接近我的开发板的,所以我就在该此基础上进行修改、移植。
在移植之前,我们还需要安装、配置eldk,用于编译u-boot。下面我们就先介绍一下eldk的安装与配置:
1.下载eldk
在ftp://ftp.denx.de/pub/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
在ftp://ftp.denx.de/pub/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文件。