尝试编译x210的uboot

x210的编译首先要经过配置,之后才能进行编译。我这里使用的是九鼎官方已经做好的x210的uboot 进行编译得到u-boot.bin。uboot的或得路径可以是从uboot的官方、可以是SoC官方、也可以是你用的开发板的厂家。
编译过程:
1、在linux源生目录下配置编译
(1)X210移植过的uboot在开发板光盘的BSP中。
(2)BSP就是board support package(板级支持包,一般由开发板供应商提供),里面的内容就是这个开发板的所有相关的源代码、文档、教程等。
(3)将整个BSP打包文件弄到linux的源生目录中去解压分析,不要在windows中的共享文件夹中解压开。(除非你的代码只在windows下去分析而不去编译,如果你想编译工程就一定不要在windows共享文件夹下,否则会出错),我在共享文件夹下尝试了以下,错误如下:

root@ubuntu:/mnt/hgfs/WinShare/X210/uboot/jiuding/uboot# make x210_sd_config
Configuring for x210_sd board...
ln: failed to create symbolic link ‘asm: Operation not supported
make: *** [x210_sd_config] Error 1
root@ubuntu:/mnt/hgfs/WinShare/X210/uboot/jiuding/uboot# 

提示有一个链接不支持。

(4)解压

root@ubuntu:/usr/local/arm/uboot# ls
uboot_jiuding.tar.bz2
root@ubuntu:/usr/local/arm/uboot# tar -jxvf uboot_jiuding.tar.bz2 

完成之后会生成一个uboot,进入之后,会看到以下文件及文件夹:

root@ubuntu:/usr/local/arm/uboot/uboot# ls
api                            config.mk  fs           Makefile     post
api_examples                   COPYING    image_split  mk           README
arm_config.mk                  cpu        include      mkconfig     rules.mk
board                          CREDITS    lib_arm      mkmovi       sd_fusing
CHANGELOG                      disk       libfdt       nand_spl     tools
CHANGELOG-before-U-Boot-1.1.5  doc        lib_generic  net
Changelog_Samsung              drivers    MAINTAINERS  onenand_bl1
common                         examples   MAKEALL      onenand_ipl

(5)我们在linux下维持一份uboot,在windows下也维持一份uboot,在我们没有开始任何工作之前,这两份uboot内容一样的,都是九鼎官方的uboot 内容。我们这样做目的是:在linux中进行编译、在windwos下进行代码分析和观看。(windwos下有SourceInsight等很好的工具辅助我们看代码、编辑代码,在linux下编辑和看代码都很麻烦·····)。

2、配置
(1)uboot和linux kernel等复杂项目,都不能直接编译,都要先配置才能编译。
(2)uboot也要先配置,配置方法是:首先cd进入uboot源码的根目录,而且是在Linux环境下的源码,不能是在Windows和Linux的共享文件夹下,在root用户下,在根目录下执行配置命令,并只出现Configuring for x210_sd board… 的提示,说明配置完成,如下:

root@ubuntu:/usr/local/arm/uboot/uboot# make x210_sd_config
Configuring for x210_sd board...

说明配置好了,如果不是这个是别的说明配置出错了。

3、编译得到uboot.bin
(1)编译之前一定要注意检查arm-linux-gcc对不对,检查份2步:
第一步:检查当前编译环境中有没有安装合适的arm-linux-gcc。我们装的是arm-2009q3,因为这个是三星官方、九鼎官方开发uboot时使用的。

root@ubuntu:/usr/local/arm/uboot/uboot# arm-linux-gcc -v
Thread model: posix
gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) 

第二步:检查当前目录下(uboot根目录)的Makefile中编译器的设置是否正确。在工程的总Makefile中会设置交叉编译工具链的路径和名字,必须确保这个路径和名字和我们自己装的一致,否则编译会出错。
使用vi 查看Makefile文件中冠以交叉编译器的配置:

ifeq ($(ARCH),arm)
#CROSS_COMPILE = arm-linux-
#CROSS_COMPILE = /usr/local/arm/4.4.1-eabi-cortex-a8/usr/bin/arm-linux-
#CROSS_COMPILE = /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
CROSS_COMPILE = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-
endif

(2)确保了以上2点,即可进行编译。直接make即可。或者可以make -j4 (多线程编译,主机如果是多核心电脑,可以尝试多线程编译,会快一些)

root@ubuntu:/usr/local/arm/uboot/uboot# make -j4

编译之后:

root@ubuntu:/usr/local/arm/uboot/uboot# ls
api                            CREDITS      MAINTAINERS  README
api_examples                   disk         MAKEALL      rules.mk
arm_config.mk                  doc          Makefile     sd_fusing
board                          drivers      mk           System.map
CHANGELOG                      examples     mkconfig     tools
CHANGELOG-before-U-Boot-1.1.5  fs           mkmovi       u-boot
Changelog_Samsung              image_split  nand_spl     u-boot.bin
common                         include      net          u-boot.dis
config.mk                      lib_arm      onenand_bl1  u-boot.map
COPYING                        libfdt       onenand_ipl  u-boot.srec
cpu                            lib_generic  post
root@ubuntu:/usr/local/arm/uboot/uboot#

在uboot的根目录下会生成u-boot.bin的文件,这就是启动文件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值