Imx6Q Uboot 从零开始编译
作为一个比较新的平台,freescale的这个四核的平台IMX6Q在很多方面的开发都很难下手,国内资源稀少,转载转发较多,且大多数的开发都是基于freescale官方的板子或者官方合作伙伴的板子。他们都统一使用官方的Ltib构建工具,对于一些厂商在官方板子上扩展后或者做了一些细微修改的板子,资料少之又少,修改部分几乎没有说明文档,这个实际应用带了的麻烦说起来都伤心呀.
好了废话少说,开始Uboot的编译。拿到一块板子,最先的是要启动起来,要启动起来就得有Uboot这个bootload工具。我的开发主机是Ubuntu12.04.4。
通过参考网上无数的文字信息,最后得到了如下的过程
1、请现在你的host 主机上安装一些必要的开发工具 Insert following content into the host-setup.sh
下面这个脚本文件中使用了aptitude 工具,如果想使用ubuntu自己的apt-get 工具,只要进行简单的替换就可以了,但是如果不想看到一大堆错误输出的话,建议你还是在使用下面的代码之前:sudo apt-get install aptitude -y吧。
这都是些嵌入式开发的基础库,也是官方参考手册Setting_Up_LTIB_Host.pdf 中提供的,虽然官方的host是ubuntu 9.04,但这些在12.04.4中工作依然良好。
有了这些基础性的东西,你现在还需要两样东西
2、源码:
1、适合你这块板子的Uboot源代码。
2、交叉编译工具。
我想若果连这两个东西,厂商都没提供给你,我想你还不如自己拿起电烙铁自己焊一块板子。或则买官方的板子。其实交叉编译工具,和freescale官方提供的是一样的。如果这个都不一样,说明制造这块板子的厂家有替代freescale的能力了。而我想Uboot源码你一定是需要厂商提供的,他们会根据自己设计的硬件做一些基础性的适配工作。不然,我想你自己需要干的活可能多了去了。
有了这两样的东西,你可以开始配置编译脚本了。将上面两个工具包解压到你准备好的目录里:
我在Uboot源码的根目录【即最顶层的makefile目录下】建立了这样的一个脚本:
build_u-boot.sh
(主要就是指定makefile调用的交叉编译工具)其实还是linux下编译的老套路make clean ; config__;make 不同之处在于,这是为arm板子编译的,所以要指定交叉编译的一些参数而已.
里面的内容如下:
3、构建compile Uboot
这样,如果你在host下拥有相应文件的权限的情况下,就可以看是编译你Uboot了。执行以下sh脚本;
最后,如果没有错误的话,你就能看到在你的脚本目录【根目录】等到 u-boot.bin文件。这样你就可以烧写到你的板子里去了,之后调试相应的功能,出现问题就修改相应的uboot源代码来解决。其实很多嵌入式的开发套路都差不多,但是,前进的路上磕磕碰碰的事情那块板子都很多呀.何况自己还是个菜鸟.