覆盖 Yocto 中的固件安装配方

问题描述 投票:0回答:2

我正在尝试减少 Yocto 映像中包含的固件数量,以减小其大小。例如我有这些 i915/bxt_dmc_ver1_07.bin 和 i915/bxt_guc_ver9_29.bin,它们是不需要的。

我的 Yocto 项目构建平台在 meta/recipes-kernel/linux-firmware 中有这个配方 linux-firmware_git.bb。显然我可以编辑此文件以排除固件项目。但因为它是我正在使用的发行版的基本文件之一,所以我想保持它完好无损。

我尝试创建一个 linux-firmware_git.bbappend 文件,其中包含以下条目:

LICENSE_${PN}-i915       = ""
LICENSE_${PN}-i915-license = ""
FILES_${PN}-i915-license = ""
FILES_${PN}-i915-license = ""
FILES_${PN}-i915-license = ""
FILES_${PN}-i915         = ""
RDEPENDS_${PN}-i915      = ""

不幸的是,这个 bbappend 会阻止在映像中安装所有固件,而不仅仅是排除 *-i915 文件。

有人可以告诉我如何覆盖 linux 固件配方,以便排除不需要的文件吗?

提前致谢

安德鲁

yocto bitbake yocto-recipe
2个回答
2
投票

经过多次挖掘,我发现很容易实现我想要的。

要删除特定项目的固件,例如 i915,我需要这样做:

FILES_${PN}_remove += "${nonarch_base_libdir}/firmware/LICENSE.i915 \
                       ${nonarch_base_libdir}/firmware/i915"

RDEPENDS_${PN}-i915      = "${PN}-i915-license"

do_install_append() {        
   rm -r ${D}/${nonarch_base_libdir}/firmware/i915
}

我希望这对其他人有帮助。


0
投票

或者,您也可以只在 local.conf 中添加您需要的固件:

添加最低固件包

IMAGE_INSTALL:追加=“
linux-固件-rtl8168

这适用于 Kirkstone 或更好的产品。

© www.soinside.com 2019 - 2024. All rights reserved.