openbmc中已经有许多厂商board的layer,每个厂商的layer都有所区别,因为每个厂商所使用的soc以及硬件外设不尽相同。要熟练创建自己的layer或者修改layer,就需要了解对layer的架构,本节内容主要介绍layer的架构。
1 最简单的layer
1.1 目录
最简单的layer只需要一个conf文件夹即可,如下图所示:
meta-master #一般对应是厂商文件夹。有些厂商有多个机型或者使用多种BMC的soc,会在该文件夹下建立meta-xxx的文件夹。
meta-bmc #对应一款soc或者某种型号服务器的BMC
conf #bmc机型的配置文件
bblayers.conf.sample #该文件指明编译那些需要的核心layer
conf-notes.txt #内容是固定的“Common targets are: obmc-phosphor-image”,指定bitbake编译镜像使用的cmd
layer.conf #指定添加自己board配置的layer名、配置文件名后缀、优先级、兼容性等,一般可以copy一个对照修改
local.conf.sample #配置文件,基本都是固定的宏参数,一般该文件中指定机型、image类型等等,优先级较高
machine #机型配置文件夹
bmc.cfg #bmc机型的配置,一般包括指定soc、内核、uboot、以及应用程序等
注:
1、meta-master厂商文件下的文件一般包括readme使用说明文件、COPY的许可文件、LICENSE证书、OWNERS所有者和recipes的配置说明文件。
2、conf文件夹下的文件,在第一次执行编译时(插入环境变量cmd),会将该目录下的文件copy到build/conf下,并去掉文件名中的“.sample”。
3、bblayers.conf.sample文件中,使用“##OEROOT##”,该标识会被替换成openbmc所在的目录,也就是生成build/conf/bblayers.conf文件中使用的绝对路径。可以在local.conf.sample中去掉“##OEROOT##”,直接使用绝对路径,不过一般为了可移植性,不建议这么操作。
1.2 文件内容说明
1.2.1 bblayers.conf.sample
bblayer中主要是提供需要编译的layer以及移除时的layer,具体如下图所示。