我有两个不同的图像,它们使用了很多常见的包。其中一个是wpa-supplicant,它提供默认配方安装的文件wpa_supplicant.conf
。但是,我希望安装自己的wpa_supplicant.conf
。
我通过在我的图层中添加.bbappend
来解决此问题。但是现在我只想在编译其中一个图像时应用这个附加,而不是另一个。
简而言之:根据编译的图像,有没有办法启用/禁用.bbappend
?
备注:
我见过类似的this answer,但创建一个安装我文件的新软件包不起作用:许多软件包会尝试安装相同的文件而Bitbake会返回错误。
谢谢!
答案 0 :(得分:2)
嗯,正如您链接到的答案中所述,您不能让图像影响任何其他配方。原因是每个配方都是独立于您正在构建的图像而构建的。
是否要将不同的图像安装在同一MACHINE
上?否则,每个wpa_supplicant.conf
可能会有不同的MACHINE
。
对于相同的MACHINE
:
ROOTFS_POSTPROCESS_COMMAND
是解决此问题的一种方法wpa_supplicant.conf
- 文件(具有不同的名称)并为pkg_post_inst_${PN}(){xxx}
添加wpa-supplicant
脚本,在rootfs创建时,检测正在构建的图像,并选择corretct wpa_supplicant.conf
。wpa_supplicant.conf
包中删除wpa-supplicant
。创建两个新的包wpa-supplicant-conf1
和wpa-supplicant-conf2
,其中只包含相应的wpa_supplicant.conf
。理想情况下,这两个应该有一个 wpa-supplicant-conf1
:
RCONFLICTS_${PN} = "wpa-supplicant-conf2"
和wpa-supplicant-conf2
RCONFLICTS_${PN} = "wpa-supplicant-conf1"
在他们的食谱中。