Dear Andrei, dear Lennart,

Thank you very much for your answers.

Am 31.03.20 um 17:09 schrieb Lennart Poettering:
On Do, 19.03.20 20:24, Andrei Borzenkov (arvidj...@gmail.com) wrote:

19.03.2020 19:47, Paul Menzel пишет:

I am using Debian Sid/unstable with systemd 245.2 and Weston 8.0.0.

I amtrying to start a graphical desktop as soon as possible. Currently,
I use Weston, but unfortunately accessing `/dev/dri/card0` it gets a
permission denied error. The Weston service unit is ordered after
`systemd-logind.service`.

Weston now fails to start, because it gets a permission denied error
accessing `/dev/dri/card0` [1][2].

     drmModeSetCrtc(backend->drm.fd, output->crtc_id,
scanout_state->fb->fb_id, 0, 0, connectors, n_conn, &mode->mode_info);

Right before Weston starts, the permission and ownership are like below.

     $ ls -l /dev/dri:
     insgesamt 0
     crw------- 1 root root 226,   0 Mär 19 17:29 card0
     crw------- 1 root root 226, 128 Mär 19 17:29 renderD128

After udev applied the rules, it looks like below, meaning users in
group `video` are allowed to access the device.

     $ ls -l /dev/dri
     insgesamt 0
     drwxr-xr-x  2 root root         80 Mär 19 17:29 by-path
     crw-rw----+ 1 root video  226,   0 Mär 19 17:29 card0
     crw-rw----+ 1 root render 226, 128 Mär 19 17:29 renderD128

Is there a way to order a service in such a way, that it’s guaranteed
that udev rules to devices were applied?

After=device should work. udev announces device after all rules have
been processed.

After= only orders, but this doesn't pull the device unit into the job
queue. To do that, you need to add Wants= on the device unit as well.

Trying this,

    After=dev-dri-card0.device
    Wants=dev-dri-card0.device

the service times out waiting for the device.

    $ journalctl -a
    […]
Apr 01 14:15:42.672430 kodi systemd[1]: Reached target Multi-User System.
    […]
Apr 01 14:17:09.805001 kodi systemd[1]: dev-dri-card0.device: Job dev-dri-card0.device/start timed out. Apr 01 14:17:09.805839 kodi systemd[1]: Timed out waiting for device /dev/dri/card0. Apr 01 14:17:09.806464 kodi systemd[1]: dev-dri-card0.device: Job dev-dri-card0.device/start failed with result 'timeout'. Apr 01 14:17:09.809847 kodi systemd[1]: Starting Weston, a Wayland compositor, as a system service...
    […]
    $ ls -l /dev/dri/card0
    crw-rw---- 1 root video 226, 0 Apr  1 14:15 /dev/dri/card0


Kind regards,

Paul
_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to