Я создал bbappend для компиляции утилит fw_printenv / setenv из u-boot из существующего (модифицированного) u-boot и установил их в $ {D}.Это работает нормально.Я добавил дополнительный пакет к рецепту и использовал FILES_, чтобы сообщить bitbake, какие пакеты должны иметь какие файлы.Bitbake, кажется, игнорирует директивы FILES_ или что-то еще переопределяет его.Я бы хотел, чтобы содержимое $ {D} / boot было упаковано в u-boot-imx, а $ {D} / sbin и $ {D} / etc - в u-boot-fw-utils-imx.(Я использую Yocto 2.2)
Я пытался FILES_u-boot-fw-utils-imx += "/sbin/* /etc/*"
.Файлы в / sbin попадают в rpm u-boot-fw-utils-imx, но файл конфигурации в / etc все еще находится в rpm u-boot-imx.Затем я попытался установить FILES_u-boot-imx = "/boot /boot/*"
и FILES_remove_u-boot-imx = "/etc/fw_env.config"
, но файл конфигурации остается в пакете u-boot-imx.
# bitbake -e | grep ^FILES_u-boot
FILES_u-boot-fw-utils-imx=" /sbin/* /etc /etc/fw_env.config"
FILES_u-boot-imx-bin="/usr/bin/* /usr/sbin/*"
FILES_u-boot-imx="/boot /etc"
...
Похоже, что-то настраивает FILES_u-boot-imx после меня.
Большая часть моего файла .bbappend:
do_compile_append() {
# compile fw_printenv/setenv. default oe_runmake options are broken and yield an x86_64 executable. the inline python strips off the leading space in UBOOT_MACHINE.
make CROSS_COMPILE=arm-poky-linux-gnueabi- CC="arm-poky-linux-gnueabi-gcc --sysroot=${STAGING_DIR_TARGET} -I${STAGING_DIR_TCBOOTSTRAP}/usr/include -mfloat-abi=hard" V=1 -C ${S} O=${B}/${@bb.data.getVar('UBOOT_MACHINE', d, 1).strip()} env
}
do_install_append() {
install -d ${D}/sbin
install -d ${D}/etc
install -m 755 ${B}/${@bb.data.getVar('UBOOT_MACHINE', d, 1).strip()}/tools/env/fw_printenv ${D}/sbin/fw_printenv
install -m 755 ${B}/${@bb.data.getVar('UBOOT_MACHINE', d, 1).strip()}/tools/env/fw_printenv ${D}/sbin/fw_setenv
echo "/dev/mmcblk1boot0 0xe0000 0x2000" > ${B}/${@bb.data.getVar('UBOOT_MACHINE', d, 1).strip()}/tools/env/fw_env.custom
install -m 0644 ${B}/${@bb.data.getVar('UBOOT_MACHINE', d, 1).strip()}/tools/env/fw_env.custom ${D}/etc/fw_env.config
}
PACKAGES += "u-boot-fw-utils-imx"
INSANE_SKIP_u-boot-imx = "already-stripped ldflags"
INSANE_SKIP_u-boot-fw-utils-imx = "already-stripped ldflags"
FILES_u-boot-imx = "/boot /boot/*"
FILES_u-boot-fw-utils-imx += "/sbin/* /etc /etc/fw_env.config"
Может кто-нибудь объяснить, какчтобы получить мой файл конфигурации в желаемом пакете или указать мне следующее место для поиска?
Кстати: я уверен, что кто-то спросит, почему я не использовал существующие u-boot-fw-utilsрецепт.У меня был рецепт для более ранней версии U-Boot.Когда я запускал этот рецепт, он не компилировался.Однажды я устранил очевидные проблемы, скомпилированные для целевой платформы oe_runmake для x86_64.