一、X210官方uboot配置编译实践
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官方、具体开发板的官方。
2、在linux源生目录下配置编译
(1)X210移值过的uboot在开发板光盘的BSP中(在我们的B盘linux QT48中)。
(2)BSP就是board support package(板级支持包,一般由开发板供应商提供)里面的内容就是这个开发板的所有相关的源代码、文档教程等
(3)将整个BSP打包文件弄到linux的源生(就是系统自带的目录,不是我们创建的目录)目录中去解压分析,不要在windows中的共亨文件
夹中解压开。(除非只为分析不编译,否则会出错。原因是符号连接,文件名等)
(4)文件解压命令:tar -jxvf 要解压的文件名
(5)解压开把uboot文件打包(tar-jcvf 文件夹名)传到windows下的文件夹,这两份uboot在我们没有开始工作之前内容都是一样的。都是九鼎官方的uboot
内容。我们这样做的目的是:在linux中进行编译、在windwos下进行代码分析和观看。(windows下用source Insight软件工具辅助我
们看代码、编译代码,在linux下编译)
3、配置
(1)uboot和linux kernel等复杂项目,都不能直接编译,都要先配置才能编译。
(2)uboot也要先配置,配置方法是:首先cd进入uboot源码的根目录,然后在根目录下执行:make x210_sd_config 执行后如果出现
Configuring for x210_sd board…说明配置好了,如果不是这个说明配置出错了。
4、编译得到uboot.bin
(1)编译之前一定要注意检查arm-linux-gcc对不对,检查分2步:
第一步:检查当前的编译环境中有没有安装合适的arm-linux-gcc。我们装的是arm-2009q3,因为这个是三星官方、九鼎官方开发
uboot时使用的。
第二步:检查当前目录下(uboot根目录)的Makefile中编译器的设置是否正确。在工程总的Makefile中(第147行 执行了
CROSS_COMPILE = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-endif来设置交叉编译工具链的路径和名字),必须
确保这个路径和名字和我们自己装的一致,否则编译会出错。
(2)确保了以上2点,即可进行编译,编译很简单,直接make即可。或者可以make -j4或-j2(多线程编译,主机如果是多核心电脑,
可以尝试多线程编译,会快一些)
(3)make编译后在uboot当前目录下生成一个u-boot.bin。这时可以用。ls -l u-boot.bin或du -h u-boot.bin命令查看生成文件大小
然后可以烧录到SD卡,卡到开发板试试。
实验打包:用tar-jcvf 文件夹名 命令失败!网上找资料解决。