现在的位置: 首页 > 综合 > 正文

Buildroot

2013年01月24日 ⁄ 综合 ⁄ 共 2627字 ⁄ 字号 评论关闭
 

Buildroot

Buildroot的用法和文档由Thomas Petazzoni提供,文稿由Karsten KruseNed LuddMartin Herren等整理。

最后修改时间:2007-09-19 02:08:10 -0700 (Wed, 19 Sep 2007)

l     关于Buildroot

l     获取Buildroot

l     使用Buildroot

l     定制目标文件系统

l     定制Busybox的配置

l     定制uClibc的配置

l     Buildroot运行方式

l     使用uClibc 工具链

l     Buildroot外部使用 uClibc 工具链

l     被下载包的存放位置

l     使用其他软件来扩展Buildroot

l         资源

关于Buildroot

Buildroot是一个Makefilespatches的命令集,它可以非常简单的为你的目标系统产生一个交叉编译工具链和根文件系统 。这个交叉编译工具使用uClibc (http://www.uclibc.org/)uClibc是一个很小的标准库。

Buildroot那些从事于嵌入式系统的人来说是很有用处的。嵌入式系统经常使用的处理器都不是平常用于普通电脑的x86处理器它可能是PowerPC MIPSARM等处理器.

一个编译工具链就是一些工具的的命令集,这些工具允许你为你的目标系统编译源代码。它主要由编译器(在我们的例子中为gcc),二进制的工具集,如汇编程序和连接器(在我们的例子中为binutils),还有就是C的标准库(如GNU LibcuClibc或者是dietlibc)。在你的开发平台上安装的系统里面要包含一个编译工具链,这个编译工具链是你可以在你的系统上编译应用程序。如果你使用的是一台PC机,你的编译工具链运行在x86处理器上,或者生成x86处理器可以运行的代码。在大多数的Linux系统里面,这个编译工具链使用的是GNU libc作为C的标准库。这个编译工具链被称之为“主机编译工具链”,而且通常来说,这台你在上面工作的电脑被称之为“主机系统”。这个编译工具链由你的系统提供,与Buildroot无关。

如同上面所说的一样,这个编译工具链随着你操作系统一起为你的主机系统上的处理器运行或者生成源代码。就像你的嵌入式系统拥有一个不同的处理器一样,你需要一个交叉编译工具链:它是一个运行在你的主机系统上但是为你的目标系统(和处理器)生成代码的工具链。举例来说,如果你的主机系统用的是x86处理器,你的目标系统用的是ARM处理器,你主机上的这个普通的编译工具链运行在你的x86处理器上并且为x86生成代码,但是交叉编译工具运行在你的x86处理器上但是为ARM生成代码

及时你的嵌入式系统用的是一个x86处理器,你也可能对Buildroot产生情趣,主要原因有以下两点:

·   显然,你的主机系统上的编译工具集用的是GNU LibcGNU Libc是一个完整的标准库,但是它体积庞大。与你在你的目标系统上使用GNU Libc相比,你可以使用uClibcuClibc是一个很微小的标准C库。如果你想使用这个C库,你需要一个编译工具集来生成二进制工具去链接它。Buldroot能够替你完成这些事。

·    Buildroot 自动地使用工具如busybox来建立一个根文件系统。它比手工完成一个根文件系统的制作更简单。

你可能很好奇了,为什么这样一个工具在你手工编译gccbinutilsuClibc和其他所有的工具的时候是必须的。当然,手工完成它也是可能的。但是在处理所有的配置选项的时候,由于所有的问题如每一个gcc或者binutls版本都是耗费时间和令人厌倦的Buildroot通过使用Makefiles文件来自动操作这个过程,并且收集了每一个gccbinutils版本的补丁,使他们能应用于更过的体系架构上面。

获取 Buildroot

Buildroot通过每天的SVN镜像文件或者直接使用SVN就可以得到。最新的镜像文件一直都放置在 http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2,并且之前的镜像也是放置在 http://buildroot.uclibc.org/downloads/snapshots/.

使用SVN来下载Buildroot,你可以简单的使用uClibc buildroot 网站(http://buildroot.uclibc.org)下面的“Accessing SVN”页面(http://buildroot.uclibc.org/subversion.html)里描述的规则,并且下载SVN的各个模块。为了不让你着急,下面是一个简介的方法:

 $ svn co svn://uclibc.org/trunk/buildroot

使用 Buildroot

Buildroot有一个较好的配置工具,就像你在Linux(http://www.kernel.org/)内核和Busybox(http://www.busybox.org/)里面看到的类似。 注意的是你作为一个普通用户,你可以在里面构造任何东西。这里不需要你是一个超级用户来配置和是用Buildroot。第一步是运行配置助手:

 $ make menuconfig

对于配置的每个条目来说,你都可以找到相关联的帮助,帮助信息描述了该条目的用途。

一个关键的配置项目是PROFECT,它决定了在构建这些包的位置,以及结果安装的位置。

一旦所有的都配置完成了,配置工具将产生一个.config文件,里面包含了了你的配置信息,它将会被Makefile使用,来决定需要哪些文件。

让我们继续:

 $ make

这个命令将下载、配置并且编译所有被选择的工具,并且最后产生一个目标文件系统。这个目标文件系统被命名为root_fs_ARCH.EXT,ARCH是你的处理器架构类型,EXT依赖于你在配置工具中选择的目标文件系统。这个文件存放在“binaries/$(PROJECT)/”目录里面。

创建你自己的目标板支持

一旦一个包被打开了,就可以手动的升级配置文。Buildroot能自动的保存buildrootlinuxbusyboxuclibcu-boot的配置文件,存放在 local/$(PROJECT) ”中,使用的命令如下:

抱歉!评论已关闭.