buildroot是一套自动化构建工具,比yocto简单。
项目地址:http://www.buildroot.org/
培训资料地址:http://free-electrons.com/
附带linux源码在线阅读地址:http://lxr.free-electrons.com/
配置编译完buildroot生成根文件系统后,根文件系统可以在开发板上运行。
可以只用builroot生成根文件系统,只要在配置时所选的linux版本与目标板所用一致即可。
而相应的在宿主机则生成了针对目标板的开发环境,也可以生成SDK供其他开发人员使用。
有时候还需要进行一些配置来使用额外的函数接口。
1、如:要使用三星硬件编码模块,在4412提供的linux3.0版本里,不但要求开发板上的系统要在开机后加载MFC固件,在使用MFC提供的API时也需要MFC的头文件和源文件才能使用API,这些文件不在板上提供的linux内核原文件里,而在该内核对应的安卓代码中,可以用linux中的find指令在其中进行查找,注意选择正确的源文件。要在本工程中使用MFC模块,有两种方法一种是将mfc模块头文件,源文件均放置在本工程文件夹中,在工程中进行包含。另一种是将头文件放在编译器默认的查找路径上,比如如果是本地开发,那么本地编译器会到/usr/include目录下查找,而如果是交叉编译,则交叉编译器也需要一个根文件系统,在根文件系统的/usr/include目录下去查找头文件,用buildroot创建的交叉编译工具链的根文件系统目录就是buildroot-2014.05/output/host/usr/arm-gainuo-linux-gnueabihf/sysroot/,当然还可以在编译时给GCC添加额外参数I,指定头文件查找路径。而如果因为商业性问题没有源文件只提供了链接库文件,那么同头文件一样,可以将链接库文件放置连接器默认的查找路径上,或者给GCC添加L参数指定库路径。而一般板商提供的编译器是找不到根文件系统路径的(我是不知道怎么弄的,如果交叉编译工具链和本地工具链共用主机的根文件系统路径,那么是很有可能因为版本问题导致头文件不兼容问题的,比较麻烦)。