我创建了一个bbappend,用于从现有的(修改后的) u-boot编译u-boot fw_printenv/setenv实用程序,并将它们安装到${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/*"
了。引导中的文件会进入u- /sbin -fw-utils-imx rpm,但是/etc中的配置文件仍然在u-boot-imx rpm中。然后,我尝试设置引导和FILES_remove_u-boot-imx = "/etc/fw_env.config"
,但配置文件仍然在u- FILES_u-boot-imx = "/boot /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而不是目标平台编译的。
https://stackoverflow.com/questions/54028501
复制相似问题