Yocto bbappend用于替换文件的文件

Yocto bbappend用于替换文件的文件,yocto,intel-edison,Yocto,Intel Edison,我在yocto:meta-abc中创建了一个新层,一个配方:abc-efg_0.1.bb和一个.bbapend:abc-efg_01.bbapend文件。 对于bbappend文件,我想覆盖英特尔爱迪生板上的一个文件。 更确切地说,是/etc/wpa\u-supplicant/中的wpa\u-supplicant.conf。 此wpa_supplicant.conf已从另一层(meta intel edison发行版)创建。 我可以在/etc/中编写我的文件,这样我的菜谱和bbappend文件就

我在yocto:meta-abc中创建了一个新层,一个配方:abc-efg_0.1.bb和一个.bbapend:abc-efg_01.bbapend文件。 对于bbappend文件,我想覆盖英特尔爱迪生板上的一个文件。 更确切地说,是/etc/wpa\u-supplicant/中的wpa\u-supplicant.conf。 此wpa_supplicant.conf已从另一层(meta intel edison发行版)创建。 我可以在/etc/中编写我的文件,这样我的菜谱和bbappend文件就可以工作了。 我可以bitbake我的食谱,但当我尝试创建图像时,我收到了以下消息:

“*检查数据文件冲突:包abc efg想要安装文件/home/atr int/Desktop/Yocto/Yocto edison/build\u edison/tmp/work/edison poky linux/edison image/1.0-r0/rootfs/etc/wpa\u supplicant/wpa\u supplicant.conf 但该文件已经由package*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
}
有人能给我小费吗?
谢谢。

您不应该从另一个配方中重写wpa_supplicant.conf,因为文件会冲突

相反,将您的
abc-efg_01.bbapend
重命名为
wpa-supplicant%.bbappend
,它应该可以工作


如果出于某种原因,您需要在
abc efg
中添加
wpa\u supplicant.conf
,则需要添加
wpa-supplicant%.bbappend
,在其中您需要删除
wpa\u supplicant.conf
为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还将覆盖目标中已安装的文件

我需要用我自己的配置替换wpa_supplicant.conf(我要做的是将我的intel edison自动连接到WiFi)。这就是为什么我真的需要将已经从“meta intel edison”层生成的文件替换为我创建的文件。是的,您可以在自己的层中使用bbappend替换wpa_supplicant.conf文件。除非您有其他要求,否则不要创建额外的配方。谢谢。我这样做了,现在我的文件在正确的地方被过度保存了。:)你认为你能帮我解决一些其他的问题吗?我正在尝试链接到wpa_suplicant.service。我的版本是:do_install_append(){ln-s'$/lib/systemd/system/wpa_-suplicant.service'${D}${sysconfdir}/systemd/system/multi-user.target.wants/wpa_-suplicant.service'}在我对.bbappend和图像进行bitbake并将其闪存到我的板上之后,/etc/../system/multi-user.target.wants中没有“wpa\u suplicant.service”的链接。你知道我还能做什么吗?非常感谢。