参考:
tekkman的博客 tekkman.cublog.cn一、目的
制作可移植到博创s3c2410-s板子上的u-boot.
二、工具版本
ubuntu11.1,用crosstool-0.43制作的基于2.6.22.2内核和gcc-4.1.0-glibc-2.3.2的arm9tdmi交叉编译工具链。
三、命名规则
开发者署名lushuai,板子命名为tjut_2410
四、初步修改uboot源文件
1.修改uboot根目录中的Makefile
mv u-boot-1.2.0.tar.bz2 ~ && cd ~ tar -xf u-boot-1.2.0.tar.bz2 && cd u-boot-1.2.0 gedit Makefile
在文件1931行(smdk2410_config描述的下面)添加tjut2410_config的描述:
tjut2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t lushuai NULL s3c24x0
已修改:这里可能有点小错误: lushuai那一列代表板子型号,应该改为tjut2410
Null哪一列代表开发者ID,应该为lushuai 应该就是这里的问题导致了后面提到的找不到目录中的makefile 随后应该改过来为:
tjut2410_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm920t tjut2410 lushuai s3c24x0
在120行添加
CROSS_COMPILE = /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/bin/
注:不知到为什么,我编译出来的工具链中,并不是所有的文件都在这个目录下,开始编译的时候报错提示找不到objcopy这个命令,我只好先通过locate定位工具连中的objcopy,然后通过ln在这个目录下建立它的软链接。
ln -s /home/lushuai/crosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-4.1.0-glibc-2.3.2/build-binutils/binutils/objcopy /opt/crosstool/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/arm-9tdmi-linux-gnu/bin/objcopy
2.在uboot根目录下建立tjut2410的目录并拷贝smdk2410的文件过来以备修改
cd board mkdir lushuai lushuai/tjut2410 cp -arf smdk2410/*lushuai/tjut2410
cd lushuai/tjut2410
mv smdk2410.c tjut2410.c
3.修改tjut2410下的Makefile
28行:
COBJS : = tjut2410.o flsh.o
4.将tjut2410的头文件包含至include/configs/ 下
cd http://www.cnblogs.com/..
cp include/configs/smdk2410.h include/configs/tjut2410.h
5.测试编译
sudo make tjut2410_config
sudo make
误报错信息,编译成功