u-boot-2010.03编译过程(初版)

一、编译环境

1.Ubuntu12.04

2.交叉编译器EABI-4.3.3_EmbedSky_20091210,下载地址 http://dl.dbank.com/c0cpqu06ak

3.uboot版本:u-boot-2010.03,下载地址ftp://ftp.denx.de/pub/u-boot/

4.开发板:天嵌6410

二、交叉编译器的安装

1.将EABI-4.3.3_EmbedSky_20091210.tar解压。

交叉编译器目录有4.3.3和crosstools_3.4.5_softfloat两个版本

EABI-4.3.3_EmbedSky_20091210.rar.out_FILES/opt/EmbedSky/4.3.3

EABI-4.3.3_EmbedSky_20091210.rar.out_FILES/opt/EmbedSky/crosstools_3.4.5_softfloat

文件系统镜像工具目录如下:

EABI-4.3.3_EmbedSky_20091210.rar.out_FILES/usr/local/sbin/mkcramfs

/mkimage

/mkyaffs2image

/mkyaffs2image_2.6.13

/mkyaffsimage

/mkyaffsimage_2

/readme.txt

将EABI-4.3.3_EmbedSky_20091210.rar.out_FILES/opt下的EmbedSky文件拷贝到Ubuntu12.04的/opt目录下,同时将EABI-4.3.3_EmbedSky_20091210.rar.out_FILES/usr/local/sbin/下的子文件全部拷贝到Ubuntu12.04的/usr/local/sbin目录下。

2、为交叉编译器设置环境变量

(1)设置当前用户环境变量(对root用户无效)

vi   ~/.bashrc或gedit  ~/.bashrc

加入一行 PATH=/opt/EmbedSky/4.3.3.bin:$PATH

保存后,运行source ~/.bashrc生效。

(2)设置环境变量(对所有用户有效)

vi   /etc/enviroment或gedit  /etc/enviroment

修改

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/EmbedSky/4.3.3/bin"

保存后,运行source /etc/enviroment生效。

三、编译uboot步骤:

1、解压uboot源码  tar -jxvf u-boot-2010.03.tar.bz2 -C /opt/EmbedSky/

      cd  /opt/EmbedSky/u-boot-2010.03/board/samsung/

2、创建smdk6410文件夹

      mkdir  smdk6410

      cp smdk6400/*     smdk6410/     //将6400下所有文件复制到6410下

      cd /opt/EmbedSky/u-boot-2010.03/board/samsung/ smdk6410     //进入smdk6410目录

      mv smdk6400.c   smdk6410.c   //将smdk6400.c 改名为smdk6410.c

     将/opt/EmbedSky/u-boot-2010.03/board/samsung/ smdk6410/Makefile文件中COBJS-y:= smdk6400.o改为COBJS-y:= smdk6410.o

      cp include/configs/smdk6400.h     include/configs/smdk6410/.h    

      cd  ../../../        //回到u-boot-2010.03目录

3、修改u-boot-2010.03目录下的Makefile文件

     输入命令gedit  Makefile打开文件

    在文件中添加:

     ifeq ($(ARCH),arm)
CROSS_COMPILE = arm-linux-
endif

smdk6410_noUSB_config \
smdk6410_config      :      unconfig
@mkdir -p $(obj)include $(obj)board/samsung/smdk6410
@mkdir -p $(obj)nand_spl/board/samsung/smdk6410
@echo "#define CONFIG_NAND_U_BOOT" > $(obj)include/config.h
@if [ -z "$(findstring smdk6410_noUSB_config,$@)" ]; then                   \
echo "RAM_TEXT = 0x57e00000" >> $(obj)board/samsung/smdk6410/config.tmp;\
$(MKCONFIG) $(@:_config=) arm arm1176 smdk6410 samsung s3c64xx;            \
else                                                                \
echo "RAM_TEXT = 0xc7e00000" >> $(obj)board/samsung/smdk6410/config.tmp;\
$(MKCONFIG) $(@:_noUSB_config=) arm arm1176 smdk6410 samsung s3c64xx;       \
fi
@echo "CONFIG_NAND_U_BOOT = y" >> $(obj)include/config.mk


4.进入/u-boot-2010.03/nand_spl/samsung

     cd /opt/EmbedSky/u-boot-2010.03/ nand_spl/samsung

     cp  smdk6400   smdk6410 -r

5.修改/opt/EmbedSky/u-boot-2010.03/cpu/arm1176/config.mk文件

PLATFORM_RELFLAGS += -fno-common -ffixed-r8  -msoft-float

修改为

PLATFORM_RELFLAGS += -fno-common -ffixed-r8 #-msoft-float

6.make smdk6410_config   //如果出现Configuring for smdk6410 board...则表示设置正确

   make

你可能感兴趣的:(uboot编译移植)