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