我需要配置 WireGuard 以在嵌入式 Linux 设备上启动 VPN。
我的食谱安装了一个/etc/wireguard/wg0.conf
非常类似于通过 Internet 找到的示例。
然后我尝试在我的 SystemD 上启用该服务,如下所示wireguard.bb
:
SYSTEMD_SERVICE = "wg-quick@wg0.service"
SYSTEMD_AUTO_ENABLE = "enable"
但是bitbake
给我一个错误:
ERROR: Function failed: SYSTEMD_SERVICE_my-conf value wg-quick@wg0.service does not exist
我检查了临时目录,文件wg0.conf
出现在正确的位置,但似乎 bitbakeSYSTEMD_SERVICE
不知道如何在@
签名后扩展“wg0”。
如果我尝试不使用接口名称(wg0
):
SYSTEMD_SERVICE = "wg-quick@.service"
Bitbake 很高兴并最终确定了我的食谱,但这不是systemd
预期的。在没有接口的情况下启动服务是没有意义的......
然后我尝试了另一种方法,将“wireguard”包本身从配置(“wireguard-conf”包)中拆分出来,并添加DEPENDS
到RDEPENDS
“wireguard”上。
由于我的wireguard-conf.bb
配方不包含“wg-quick@.service”文件(它来自依赖项“wireguard”),因此情况变得更糟。
好,
我不知道如何正确修复它,任何建议将不胜感激。
附加信息
我在这个项目中使用的是 Yocto 2.0.3(不希望更新它)。
感谢@TomasNovotny 的评论,我设法将我的“systemd.bbclas”与 Github 进行了比较,并注意到systemd_populate_packages()
似乎解决问题的变化。