用于替换文件的bbappend文件

时间:2017-09-27 06:20:56

标签: yocto intel-edison

我在yocto中创建了一个新图层:meta-abc,一个配方:abc-efg_0.1.bb和一个.bbapend:abc-efg_01.bbapend文件。 使用bbappend文件,我想覆盖来自intel-edison board的文件。 更确切地说,来自/ etc / wpa_supplicant /的wpa_supplicant.conf。 此wpa_supplicant.conf已经从另一个层(meta-intel-edison-distro)创建。 我可以在/ etc /中编写我的文件,所以我的食谱和我的bbappend文件正常工作。 我可以咬我的食谱,但当我尝试创建图像时,我会收到消息:

" * 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/etc/的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
}

任何人都可以给我任何提示吗? 谢谢。

2 个答案:

答案 0 :(得分:3)

您不应该从其他食谱重写wpa_supplicant.conf,因为文件会发生冲突。

相反,请将您的abc-efg_01.bbapend重命名为wpa-supplicant_%.bbappend,它应该有效。

如果由于某种原因您需要在wpa_supplicant.conf中设置abc-efg,则需要添加wpa-supplicant_%.bbappend,其中您需要删除wpa_supplicant.conf

答案 1 :(得分:0)

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

p910nd 目录的布局

loop = True
while loop:
    try:
        sleep(1)
        comment_buttons = driver.find_elements_by_xpath('//div[@data-testid="reply"]/div/div[1]')
        comment_buttons[0].click()
        sleep(4)
        driver.find_element_by_xpath(reply_paste).send_keys(word)
        sleep(1)
        element = driver.find_element_by_xpath("//input[@type='file']")                           
        driver.execute_script("arguments[0].style.display = 'block';", element)             
        #post image
        element.send_keys(random.choice(images))
        sleep(2)
        driver.find_element_by_xpath(reply_button).click()
        sleep(6)  
        comment_buttons[1].click()

bbappend 文件的内容

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

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