关于 yocto /etc/os-release 版本控制

About yocto /etc/os-release versioning

我尝试在我的 beaglebone yocto 中实现 /etc/os-release 在我的 google 中进行了一些尝试之后。我在我的配置文件中添加了以下内容

local.conf

INHERIT += "image-buildinfo"

BUILD_ID = "${@time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())}"

IMAGE_BUILDINFO_VARS = "DISTRO DISTRO_VERSION MACHINE IMAGE_NAME USER"

在os-release.bb

INHERIT += "image-buildinfo"

BUILD_ID = "${@time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())}"

IMAGE_BUILDINFO_VARS = "DISTRO DISTRO_VERSION MACHINE IMAGE_NAME USER"

我原以为 /etc/os-release 或 /usr/lib/os-release 完全可以在 bitbake 运行 上成功构建,但我没有在图像中看到它们。

我是不是遗漏了什么?或者我误解了什么概念? 抱歉新手问题,我正在尝试探索 yocto

难道你还得告诉 Yocto 使用 os-release 配方?

使用 os-release.bbappend 您可以修改属于 openembedded-core 的配方。 在该网页上有几个示例如何操作。一个好的是例如meta-yoe.

中使用的那个

但这一切只是告诉 Yocto 如何构建配方。您仍然需要告诉 Yocto 将其添加到您的图像中。
这可以在 local.conf 文件或例如recipes-images/images/your-image.bb 文件或 packagegroup 中。第一个解决方案是快速而肮脏的解决方案。

INHERIT += "image-buildinfo" 生成一个 /etc/build 文件,而不是您要查找的 /etc/os-release

看到这个official section of mega-manual

您可以通过以下方法添加 CORE_IMAGE_EXTRA_INSTALL += "os-release lsb-release"