一、X210官方uboot配置编译实践1
1. 找到官方移植好的 uboot(BSP 概念)
(1) 源头的源代码是 uboot 官网下载的。这个下载的源代码可能没有你当前使用的开发板的移植,甚至找不到当前开发板使用的 SoC 对应的移植版本。
(2) SoC 厂商在推出一款 SoC 后,厂商的工程师会去 uboot 官网下载一个 uboot,根据自己的 SoC 进行第一步的移植,移植的目标是厂商推出的开发板。(譬如三星的 S5PV210 芯片厂商出的开发板就叫 SMDKV210 ).所以三星的工程师移植的 uboot 是根据他们自己的 SMDKV210 开发板移植的。
(3) 具体的开发板供应商(譬如 X210 的生产商深圳市九鼎科技)首先购买三星的 SMDKV210 开发板,然后进行裁剪(把一些无用的接口功能裁剪去,配置降低一下,某些配置会被替换)。硬件替换和裁剪之后生成的新的开发板(譬如 X210)和三星官方的 SMDKV210 有所不同,因此 uboot 也不同。但是因为 SoC 是相同的,所以相似度至少有 60% 以上。所以具体开发板供应商会以三星 SMDKV210 中移植的 uboot 为蓝本,来移植得到自己的开发板的一个 uboot 移植。我们买 X210 开发板时厂商光盘中带的 BSP 中的 uboot 源码就是他移植过的。
总结:uboot 可以有 3 种获取途径:uboot 官方、SoC 官方、具体开发板的官方。
二、X210 官方 uboot 配置编译实践2
1、在 linux 源生目录下配置编译
(1) X210 移植过的 uboot 在开发板光盘的 BSP 中。
(2) BSP 就是 board support package (板级支持包,一般由开发板供应商提供),里面的内容就是这个开发板的所有相关的源代码、文档、教程等。
(3) 将整个 BSP 打包文件弄到 linux 的源生目录中去解压分析,不要在 windows 中的共享文件夹中解压开。(除非你的代码只在 windows 下去分析而不去编译,如果你想编译工程就一定不要在 windows 共享文件夹下,否则会出错)
(4) tar -jxvf qt_x210v3_130807.tar.bz2
(5) 我们在 linux 下维持一份 uboot,在 windows 下也维持一份 uboot,在我们没有开始任何工作之前,这两份 uboot 内容一样的,都是九鼎官方的 uboot 内容。我们这样做目的是:在 linux 中进行编译、在 windwos 下进行代码分析和观看。(windwos 下有 SourceInsight 等很好的工具辅助我们看代码、编辑代码,在 linux 下编译和看代码都很麻烦·····)
2、配置
(1) uboot 和 linux kernel 等复杂项目,都不能直接编译,都要先配置才能编译。
(2) uboot 也要先配置,配置方法是:首先 cd 进入 uboot 源码的根目录,然后在根目录下执行: make x210_sd_config
。执行配置命令后,如果出现:Configuring for x210_sd board...
说明配置好了,如果不是这个,是别的说明配置出错了。
root@ubuntu:/home/aston/workspace/uboot_bsp/uboot_jiuding/uboot# ls include/configs/
x210_nand.h x210_sd.h
root@ubuntu:/home/aston/workspace/uboot_bsp/uboot_jiuding/uboot# make x210_sd_config
Configuring for x210_sd board...
root@ubuntu:/home/aston/workspace/uboot_bsp/uboot_jiuding/uboot#
3、编译得到uboot.bin
(1) 编译之前一定要注意检查 arm-linux-gcc 对不对,检查分 2 步:
第一步:检查当前编译环境中有没有安装合适的 arm-linux-gcc 。我们装的是 arm-2009q3 ,因为这个是三星官方、九鼎官方开发 uboot 时使用的。
第二步:检查当前目录下(uboot 根目录)的 Makefile 中编译器的设置是否正确。在工程的总Makefile 中会设置交叉编译工具链的路径和名字,必须确保这个路径和名字和我们自己装的一致,否则编译会出错。
(2) 确保了以上 2 点,即可进行编译。编译很简单,直接 make 即可。或者可以 make -j4 (多线程编译,主机如果是多核心电脑,可以尝试多线程编译,会快一些)
源自朱有鹏老师.