如何让Yocto识别meta-security并添加google-authenticator-libpam至OpenBMC镜像
要让meta-security层的recipes像meta-openembedded/meta-oe一样被BitBake识别,只需完成以下几个关键配置步骤:
将meta-security层加入bblayers.conf
打开构建目录下的build/conf/bblayers.conf文件,检查BBLAYERS变量中是否包含meta-security层的路径。如果没有,添加对应路径(路径需根据你的项目实际布局调整):BBLAYERS += " \ ${TOPDIR}/../meta-security \ "确认meta-security层的BBFILES配置
进入meta-security层的conf/layer.conf文件,确保里面正确配置了BBFILES变量,让BitBake能扫描到层内的所有recipe文件:BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"同时检查
BBFILE_COLLECTIONS和BBFILE_PATTERN_meta-security配置是否正确,通常默认配置是:BBFILE_COLLECTIONS += "meta-security" BBFILE_PATTERN_meta-security := "^${LAYERDIR}/" BBFILE_PRIORITY_meta-security = "5"优先级数值只要不被其他层完全覆盖即可,若存在同名recipe,优先级高的层会被优先选用。
验证层的识别状态
在终端执行以下命令,查看BitBake是否已识别meta-security层:bitbake-layers show-layers输出结果中应包含meta-security层的名称、路径和优先级信息。
添加目标包到镜像
完成以上配置后,无需移动recipe目录,直接在build/conf/local.conf中添加包名到OBMC_IMAGE_EXTRA_INSTALL变量:OBMC_IMAGE_EXTRA_INSTALL += "google-authenticator-libpam"之后执行构建命令即可将该PAM模块纳入镜像。
之前将recipe移至meta-oe能生效,是因为meta-oe层已经被正确配置到bblayers.conf中,且其BBFILES规则能覆盖到移入的recipe目录,BitBake自然能扫描到它。
内容的提问来源于stack exchange,提问作者HamidReza

