Build Configuration: BB_VERSION = "1.18.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "Fedora-18" TARGET_SYS = "x86_64-poky-linux" MACHINE = "qemux86-64" DISTRO = "poky" DISTRO_VERSION = "1.4" TUNE_FEATURES = "m64" TARGET_FPU = "" meta meta-yocto meta-yocto-bsp = "dylan:61c6a8a93ec76ad4e6d98a06df489c8ae75e39c6" 1 - add to local.conf DISTRO_FEATURES_append = " systemd" VIRTUAL-RUNTIME_init_manager = "systemd" 2 - bitbake core-image-sato - mouse and keyboard work in X 3 - remove the lines added to local.conf 4 - bitbake core-image-sato - mouse and keyboard don't work anymore in X What happens here is that: - udev-utils package for the systemd image installs udevadm in /bin/udevadm - udev-utils for a _clean_ build (wipe tmp) with sysvinit installs udevadm in /usr/bin/udevadm - but when building the second (above) core-image-sato udevadm remains in /bin/udev but in the sysvinit version udevadm is run from /etc/init.d/udev where the path is hardcoded as /usr/bin/udevadm [stefans@firebird poky]$ grep -ir udevadm * meta/recipes-core/udev/udev/init: /usr/bin/udevadm control --env=STARTUP=1 meta/recipes-core/udev/udev/init: /usr/bin/udevadm trigger --action=add --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform meta/recipes-core/udev/udev/init: (/usr/bin/udevadm settle --timeout=3; /usr/bin/udevadm control --env=STARTUP=)& meta/recipes-core/udev/udev/init: /usr/bin/udevadm trigger --action=add meta/recipes-core/udev/udev/init: /usr/bin/udevadm settle meta/recipes-core/udev/udev.inc:FILES_udev-utils = "${bindir}/udevadm" meta/recipes-core/systemd/systemd/init: udevadm control --env=STARTUP=1 meta/recipes-core/systemd/systemd/init: udevadm trigger --action=add --subsystem-nomatch=tty --subsystem-nomatch=mem --subsystem-nomatch=vc --subsystem-nomatch=vtconsole --subsystem-nomatch=misc --subsystem-nomatch=dcon --subsystem-nomatch=pci_bus --subsystem-nomatch=graphics --subsystem-nomatch=backlight --subsystem-nomatch=video4linux --subsystem-nomatch=platform meta/recipes-core/systemd/systemd/init: (udevadm settle --timeout=3; udevadm control --env=STARTUP=)& meta/recipes-core/systemd/systemd/init: udevadm trigger --action=add
Ross gave a pretty good explaintion of this. The issue is the package overlap between the systemd and the udev recipes. When you remove systemd from DISTRO_FEATURES, not all the packages from systemd get removed from the sysroot and this breaks things. We have *never* claimed to support changing DISTRO_FEATURES on an existing build directory so this use case is not supported. We should however release note it. Its possible the changes needed for 4102 may allow this usecase to work better too but this is 1.5 enhancement material.
This is not a supported use case!
.