* We need to add systemd udev device unit dependency to weston,
If the system is slow udev rules is up when weston want to start,
if the system is fast, udev rules may be down when weston want to start.
* TAG+="systemd" create a systemd device unit
* ENV{SYSTEMD_WANTS}="weston.service" add dependency (Like BindsTo).
Bug-AGL: SPEC-603
Change-Id: I45d6513ea64cd071a60b53afd98d782e9300cefa
Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/10209
Reviewed-by: Stéphane Desneux <stephane.desneux@iot.bzh>
Tested-by: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
ci-image-build: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
install -d ${D}${sysconfdir}/init.d
install -d ${D}${sysconfdir}/udev/rules.d
cat >${D}${sysconfdir}/udev/rules.d/zz-dri.rules <<'EOF'
install -d ${D}${sysconfdir}/init.d
install -d ${D}${sysconfdir}/udev/rules.d
cat >${D}${sysconfdir}/udev/rules.d/zz-dri.rules <<'EOF'
-SUBSYSTEM=="drm", MODE="0660", GROUP="${WESTONGROUP}", SECLABEL{smack}="*"
+SUBSYSTEM=="drm", MODE="0660", GROUP="${WESTONGROUP}", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service"
EOF
# user 'display' must own /dev/tty${WESTONTTY} for weston to start correctly
cat >${D}${sysconfdir}/udev/rules.d/zz-tty.rules <<'EOF'
EOF
# user 'display' must own /dev/tty${WESTONTTY} for weston to start correctly
cat >${D}${sysconfdir}/udev/rules.d/zz-tty.rules <<'EOF'
-SUBSYSTEM=="tty", KERNEL=="tty${WESTONTTY}", OWNER="${WESTONUSER}", SECLABEL{smack}="^"
+SUBSYSTEM=="tty", KERNEL=="tty${WESTONTTY}", OWNER="${WESTONUSER}", SECLABEL{smack}="^", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service"
EOF
# user 'display' must also be able to access /dev/input/*
cat >${D}${sysconfdir}/udev/rules.d/zz-input.rules <<'EOF'
EOF
# user 'display' must also be able to access /dev/input/*
cat >${D}${sysconfdir}/udev/rules.d/zz-input.rules <<'EOF'
-SUBSYSTEM=="input", MODE="0660", GROUP="input", SECLABEL{smack}="^"
+SUBSYSTEM=="input", MODE="0660", GROUP="input", SECLABEL{smack}="^", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service"
EOF
# user 'display' must also be able to access /dev/media*, etc.
cat >${D}${sysconfdir}/udev/rules.d/zz-remote-display.rules <<'EOF'
EOF
# user 'display' must also be able to access /dev/media*, etc.
cat >${D}${sysconfdir}/udev/rules.d/zz-remote-display.rules <<'EOF'
-SUBSYSTEM=="media", MODE="0660", GROUP="display", SECLABEL{smack}="*"
-SUBSYSTEM=="video4linux", MODE="0660", GROUP="display", SECLABEL{smack}="*"
+SUBSYSTEM=="media", MODE="0660", GROUP="display", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service"
+SUBSYSTEM=="video4linux", MODE="0660", GROUP="display", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service"
KERNEL=="uvcs", SUBSYSTEM=="misc", MODE="0660", GROUP="display", SECLABEL{smack}="*"
KERNEL=="rgnmm", SUBSYSTEM=="misc", MODE="0660", GROUP="display", SECLABEL{smack}="*"
EOF
KERNEL=="uvcs", SUBSYSTEM=="misc", MODE="0660", GROUP="display", SECLABEL{smack}="*"
KERNEL=="rgnmm", SUBSYSTEM=="misc", MODE="0660", GROUP="display", SECLABEL{smack}="*"
EOF