[yocto] Enable systemd service with parameter

Mateusz Majchrzycki majchrzycki.mateusz at gmail.com
Sun Nov 17 11:44:10 PST 2019


Hi!
I have a pretty unusual problem. I need to enable a systemd service
(openvpn) with a profile as a parameter (typically you do it by 'systemctl
enable openvpn at profile'). But the profile on build time doesn't exist (it
is just symlink to non existing file).
My recipe bb looks like (I'm omitting SUMMARY etc.):

inherit systemd
SYSTEMD_SERVICE_${PN} = "openvpn at clientprofile.service"
SYSTEMD_AUTO_ENABLE = "enable"
DEPENDS = "openvpn"
SYSTEMD_PACKAGES = "${PN}"

do_install() {
install -d ${D}${sysconfdir}/openvpn/
ln -sf /data/etc/openvpn/clientprofile.conf
${D}${sysconfdir}/openvpn/clientprofile.conf
}

Unfortunately, on build I get the following error:
ERROR: openvpn-client-1.0-r3 do_package: SYSTEMD_SERVICE_openvpn-client
value openvpn at clientprofile.service does not exist
ERROR: openvpn-client-1.0-r3 do_package: Function failed:
systemd_populate_packages

What am I doing wrong? I suppose the symlink is not a problem as normally
systemctl enables service with non-existent file as a parameter (it fails
on start, but not enabling).

Best regards,
Mateusz
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20191117/a88ffb48/attachment.html>


More information about the yocto mailing list