summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core
diff options
context:
space:
mode:
authorMuhammad Hamza <Muhammad_Hamza@mentor.com>2022-06-20 18:52:58 +0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-06-21 18:44:27 +0100
commitb4b004641a42dd6e5c8ae5e66c451f49f09282d1 (patch)
tree5f243662b18855559bdcd08d3a1ec7a71b2e79ba /meta/recipes-core
parent97a4c50fa3ed5ffbe212e7eed25b4427bebd546e (diff)
downloadpoky-b4b004641a42dd6e5c8ae5e66c451f49f09282d1.tar.gz
udev-extraconf: force systemd-udevd to use shared MountFlags
Automounting does not work cleanly in case systemd as well as udev rules are being used simultaneously and in most cases race conditions and unknown behavior can come up. In case we're running on top of systemd we need to make sure that systemd-udevd knows that udev is in play as well and mounting should be done using shared flags. Also as we're using mount from sources other than systemd-mount in current scripts this is the most manageable fix to automounting problems. (From OE-Core rev: 1e770416b4c9a0468404fb64d55114d93e84763b) Signed-off-by: Awais Belal <awais_belal@mentor.com> Signed-off-by: Muhammad Hamza <muhammad_hamza@mentor.com> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core')
-rw-r--r--meta/recipes-core/udev/udev-extraconf/systemd-udevd.service3
-rw-r--r--meta/recipes-core/udev/udev-extraconf_1.1.bb9
2 files changed, 11 insertions, 1 deletions
diff --git a/meta/recipes-core/udev/udev-extraconf/systemd-udevd.service b/meta/recipes-core/udev/udev-extraconf/systemd-udevd.service
new file mode 100644
index 0000000000..a9b86eb6e4
--- /dev/null
+++ b/meta/recipes-core/udev/udev-extraconf/systemd-udevd.service
@@ -0,0 +1,3 @@
1.include @systemd_unitdir@/system/systemd-udevd.service
2[Service]
3MountFlags=shared
diff --git a/meta/recipes-core/udev/udev-extraconf_1.1.bb b/meta/recipes-core/udev/udev-extraconf_1.1.bb
index 8213c1a930..ef6019259e 100644
--- a/meta/recipes-core/udev/udev-extraconf_1.1.bb
+++ b/meta/recipes-core/udev/udev-extraconf_1.1.bb
@@ -11,6 +11,7 @@ SRC_URI = " \
11 file://autonet.rules \ 11 file://autonet.rules \
12 file://network.sh \ 12 file://network.sh \
13 file://localextra.rules \ 13 file://localextra.rules \
14 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'file://systemd-udevd.service', '', d)} \
14" 15"
15 16
16S = "${WORKDIR}" 17S = "${WORKDIR}"
@@ -35,9 +36,15 @@ do_install() {
35 sed -i 's|@MOUNT_BASE@|${MOUNT_BASE}|g' ${D}${sysconfdir}/udev/scripts/mount.sh 36 sed -i 's|@MOUNT_BASE@|${MOUNT_BASE}|g' ${D}${sysconfdir}/udev/scripts/mount.sh
36 37
37 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts 38 install -m 0755 ${WORKDIR}/network.sh ${D}${sysconfdir}/udev/scripts
39
40 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
41 install -d ${D}${sysconfdir}/systemd/system
42 install ${WORKDIR}/systemd-udevd.service ${D}${sysconfdir}/systemd/system/systemd-udevd.service
43 sed -i 's|@systemd_unitdir@|${systemd_unitdir}|g' ${D}${sysconfdir}/systemd/system/systemd-udevd.service
44 fi
38} 45}
39 46
40FILES:${PN} = "${sysconfdir}/udev" 47FILES:${PN} = "${sysconfdir}/udev ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '${sysconfdir}/systemd/system/systemd-udevd.service', '', d)}"
41RDEPENDS:${PN} = "udev util-linux-blkid" 48RDEPENDS:${PN} = "udev util-linux-blkid"
42CONFFILES:${PN} = "${sysconfdir}/udev/mount.ignorelist" 49CONFFILES:${PN} = "${sysconfdir}/udev/mount.ignorelist"
43 50