我正在尝试减少 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 固件配方,以便排除不需要的文件吗?
提前致谢
安德鲁
经过多次挖掘,我发现很容易实现我想要的。
要删除特定项目的固件,例如 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
}
我希望这对其他人有帮助。
或者,您也可以只在 local.conf 中添加您需要的固件:
IMAGE_INSTALL:追加=“
linux-固件-rtl8168
”
这适用于 Kirkstone 或更好的产品。