Sometimes it is useful to have a set of units that get enabled or disabled for an image, but that aren't enabled by default during package installation.
The image-systemd.bbclass allows for adding a list of whitespace separated units to the SYSTEMD_UNITS_ENABLE, SYSTEMD_UNITS_DISABLE, or SYSTEMD_UNITS_MASK variables, in order to run the corresponding systemctl command only as a rootfs postprocess. Signed-off-by: Randy Witt <[email protected]> --- meta/classes/image-systemd.bbclass | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 meta/classes/image-systemd.bbclass diff --git a/meta/classes/image-systemd.bbclass b/meta/classes/image-systemd.bbclass new file mode 100644 index 0000000..f268a5c --- /dev/null +++ b/meta/classes/image-systemd.bbclass @@ -0,0 +1,26 @@ +# Runs systemctl commands on the units in the SYSTEMD_UNITS_ENABLE, +# SYSTEMD_UNITS_DISABLE, and SYSTEMD_UNITS_MASK variables. This bbclass +# is intended to be inherited by image generation recipes. + +SYSTEMD_UNITS_ENABLE ??= "" +SYSTEMD_UNITS_DISABLE ??= "" +SYSTEMD_UNITS_MASK ??= "" + +run_systemctl_commands() { +if type systemctl > /dev/null 2>&1; then + for unit in ${SYSTEMD_UNITS_ENABLE}; do + systemctl --root=${IMAGE_ROOTFS} enable ${unit} && continue + echo "WARNING: Could not enable unit ${unit}" + done + for unit in ${SYSTEMD_UNITS_DISABLE}; do + systemctl --root=${IMAGE_ROOTFS} disable ${unit} && continue + echo "WARNING: Could not disable unit ${unit}" + done + for unit in ${SYSTEMD_UNITS_MASK}; do + systemctl --root=${IMAGE_ROOTFS} mask ${unit} && continue + echo "WARNING: Could not mask unit ${unit}" + done +fi +} + +ROOTFS_POSTPROCESS_COMMAND += "run_systemctl_commands; " -- 1.8.1.4 _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
