bbappend 文件用于替换文件

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

我在 yocto 中创建了一个新图层:

meta-abc
,食谱:
abc-efg_0.1.bb
.bbappend
文件:
abc-efg_01.bbappend

使用

.bbappend
文件,我想覆盖来自 intel-edison board 的文件。

更准确地说,是来自

wpa_supplicant.conf
/etc/wpa_supplicant/
。 该
wpa_supplicant.conf
已经从另一层 (
meta-intel-edison-distro
) 创建。 我可以在
/etc/
中写入我的文件,这样我的食谱和我的
.bbappend
文件就可以正常工作。 我可以 bitbake 我的食谱,但是当我尝试创建图像时,我收到消息:

" * check_data_file_clashes: 软件包 abc-efg 想要安装文件 /home/atr-int/Desktop/Yocto/yocto-edison/build_edison/tmp/work/edison-poky-linux/edison-image/1.0-r0/rootfs/等/wpa_supplicant/wpa_supplicant.conf 但是该文件已经由包 * wpa-supplicant 提供了

  • opkg_install_cmd:无法安装包 abc-etc。 ”

这是我的

.bbappend
文件内容:

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"

SRC_URI += "file://wpa_supplicant.conf"

do_install_append() {
install -d ${D}${sysconfdir}/wpa_supplicant
install -m 0755 ${WORKDIR}/wpa_supplicant.conf 
    ${D}${sysconfdir}/wpa_supplicant
}

有人可以给我任何建议吗? 谢谢。

yocto intel-edison
2个回答
9
投票

您不应该从另一个食谱重写

wpa_supplicant.conf
,因为文件会发生冲突。

相反,将您的

abc-efg_01.bbapend
重命名为
wpa-supplicant_%.bbappend
,它应该可以工作。

如果由于某种原因您需要在

wpa_supplicant.conf
中包含
abc-efg
,则需要添加一个
wpa-supplicant_%.bbappend
,其中您需要删除
wpa_supplicant.conf


1
投票

使用 bbappend 文件为 p910nd 安装额外文件:

p910nd目录的布局

.
├── files
│   ├── p910nd.conf
│   └── p910nd.init
└── p910nd_0.97.bbappend

bbappend 文件的内容

SUMMARY = "install init script"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI += "file://p910nd.init"
SRC_URI += "file://p910nd.conf"

RDEPENDS_${PN} += "bash"

do_install_append() {
         install -D -m 0644 ${WORKDIR}/p910nd.conf ${D}${sysconfdir}/default/p910nd
         install -D -m 0755 ${WORKDIR}/p910nd.init ${D}/etc/init.d/p910nd
}

在我的测试中,如果文件已安装在目标中,do_install_append 也会覆盖该文件。

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