2.3.1、X210官方uboot配置编译实践
2.3.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可以有三种获取途径:uboot官方、soc官方、具体开发板的官方。
2.3.1.2、在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下进行编译,在windows下进行代码分析和观看。(windows下有很好的 工具辅助我们看代码,编辑嗲吗,在linux下编译和看代码都很麻烦.........)
2.3.1.3、配置
(1)uboot和linux kernel等复杂项目,都不能直接编译,都要先配置才能编译
(2)uboot也要先配置,配置的方法是:首先cd进入uboot源码的根目录,然后在根目录下执行:make x210_sd_config。执行配置命令后如果出现:configuring for x210_sd board....
说明配置好了,如果不是这个是别的说明配置出错了。
2.3.1.4、编译得到uboot.bin
(1)编译之前一定要注意检查arm-linux-gcc对不对,检查分为2步
第一步:检查当前编译环境中有没有安装合适的arm-linux-gcc。我们装的是arm-2009q3,因为这个是三星官方、九鼎官方开发uboot时候使用的。
第二步:检查当前目录下(uboot根目录)的Makefile中编译器的设置是否正确。在工程的总Makefile中会设置交叉编译工具链的路径和名字,必须确保和我们自己装的
(2)在确保了以上两点之后,即可进行编译。编译很简单,直接make即可。或者可以make -j4 (多线程编译,主机如果是多核电脑,可以尝试多线程编译,会快一些)