修补 bitbake 以使用自定义 `wpa_supplicant.conf`

Patch bitbake to use custom `wpa_supplicant.conf`

我有一个 wpa_supplicant.conf 想要在第一次启动时使用。我尝试按如下方式修补 poky 的配方。这是我的 wpa_supplicant_2.6.bbappend:

FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
SRC_URI_append = " file://wpa_supplicant.conf"

我在 wpa_supplicant/wpa_supplicant.conf 中存储了相对于 bbappend 的 conf 文件。仍然原始的 poky conf 文件总是添加到图像中。

如何注入我的配置文件?

(我在分支 warrior

NOTE/EDIT: 为了快速有效地解决问题,我建议还讨论 IRC channel 中的问题(在这种情况下也发生过)。那里的人超级乐于助人!

首先,食谱名为 wpa-supplicant 而不是 wpa_supplicant,因此您需要将 bbappend 命名为 wpa-supplicant_2.6.bbapend 而不是 wpa_supplicant_2.6.bbappend。请记住,配方或包装名称中没有下划线,也没有大写字母。

可以使用 bitbake-layers show-appends wpa-supplicant 检查 bbappend 是否被解析。您会看到您的 bbappend 没有被考虑在内。

然后,通常应该使用 FILESEXTRAPATHS_prepend :=,因为您希望您的路径在所有其他路径之前被遍历。 FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"

最后,由于菜谱名为wpa-supplicant而不是wpa_supplicant${PN}将是wpa-supplicant,因此您需要将文件放在wpa-supplicant/ 而不是 wpa_supplicant.

要检查文件遍历路径的顺序,可以运行 bitbake -e wpa-supplicant | grep -e "^FILESPATH=",路径从最左到最右遍历。将采用与完整路径匹配的第一个文件。

在 IRC 上与您讨论后,我可以补充一点,我们还发现 wpa_supplicant.conf 安装在文档目录中,但 wpa_supplicant.conf-sane 将用作 wpa_supplicant.conf 在目标的最终图像中。因此需要将 wpa_supplicant.conf 文件命名为 wpa_supplicant.conf-sane 以便它替换最终图像中的 wpa_supplicant.conf 文件。

c.f。 https://git.yoctoproject.org/cgit.cgi/poky/tree/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.6.bb?h=thud#n88 and https://git.yoctoproject.org/cgit.cgi/poky/tree/meta/recipes-connectivity/wpa-supplicant/wpa-supplicant_2.6.bb?h=thud#n91