16-配置元数据
16.4.6 配置元数据
使用OpenEmbedded的最困难的方面之一是获得一个可用的配置。为了构建一个嵌入式Linux发行版,你需要定义很多配置选项。下面列出一些必须定义的常见属性:
- 目标架构;
- 处理器类型;
- 机器特性,比如串行端口配置,波特率和闪存的组织结构;
- 选择的C程序库,比如glibcb或其他针对嵌入式系统而优化的替代品;
- 工具链和binutils的版本及源码(来自外部或由BitBake构建);
- 根文件系统镜像的类型;
- 内核版本。
当然,需要配置的还远远不止这些。配置元数据可大致分为4类:BitBake配置、机器配置、发行版配置和本地配置。BitBake配置( bitbake.conf
)在很多方面都像是BitBake的底层基础设施。它定义了一些系统级的变量,比如系统路径、目标文件系统的布局以及很多与具体架构相关的构建变量。除非需要做一些特别的事情,否则你不应该编辑这个文件。
描述某个机器的配置文件是以机器的名称命名的。最近的OpenEmbedded代码快照中包含了250多个不同的机器[8]配置文件。这里适合定义一些与具体机器相关的特性,比如串行端口配置、镜像格式的特定需求、内核版本和引导加载程序的版本等。目标架构通常也是由这个配置文件指定的。
[8] “机器”一词指的是具体的硬件平台。
发行版配置定义了你要构建的嵌入式Linux发行版的各个方面。当前版本的OpenEmbedded中包含了超过35个不同的发行版配置文件。其中,Angstrom和OpenMoko已经得到了OpenEmbedded开发人员的极大关注。
在发行版配置文件中定义的属性包括工具链的类型、C程序库的类型和发行版的版本。你通常还会在这个配置文件中指定根文件系统必需的规格参数。请参考OpenEmbedded代码中的例子[9],以了解更多详情。
[9] 它们位于:.../openembedded/conf/distro目录中。——译者注
最后一种配置文件是local.conf。你可以在这个文件中根据自己的喜好调整和定制发行版。local.conf可简单也可复杂,这取决于你的需求。local.conf至少需要定义你选择的机器和发行版的类型,而它们是和定制嵌入式Linux发行版的机器配置及发行版配置紧密相联的。OpenEmbedded的代码中包含一个local.conf示例[10],其中的注释很详细,是个不错的入门参考。网上也有很多的local.conf的例子。比如,你可以在BeagleBoard开发板的wiki页面(http://elinux.org/BeagleBoard# OpenEmbedded)中找到针对BeagleBoard的OpenEmbedded指令。
[10] 这个示例文件具体是指.../openembedded/conf/local.conf.sample。——译者注