Решил испробовать хабропост для сохранения рабочих заметок. Но можно ли эффективно нагадить в 1500 знаков? Как любителю минимализма очень интересно. Итак:
В своих попытках запустить вложенный weston из LXC контейнера заметил такую особенность: если на минимальном Devuan зайти рутом из консоли, то в /dev/dri
наблюдаем:
crw-rw---- 1 root video 226, 0 Dec 17 06:16 card0
Если зайти юзером, то видим плюсик
crw-rw----+ 1 root video 226, 0 Dec 17 06:16 card0
Ага, расширенные аттрибуты значит. Но откуда они? Причём они отображаются только юзеру, а рут их не видит.
Ответ был найден в разделе "Allowing regular users to use devices" вот тут https://wiki.archlinux.org/title/Udev:
The modern approach is to use… 660…, and then attach uaccess. This special tag makes udev… apply a dynamic user ACL, which coordinates with… to make the device usable to logged-in users.
Вау.
А я-то пытался сделать chgrp
. Ну, раз так, тогда
$ setfacl -m 501000:rw /dev/dri/card0
501000 -- uid юзера в непривелигированном контейнере.
Надо расшарить XDG_RUNTIME_DIR на хосте:
$ setfacl -m 501000:rwx /run/user/1000
$ setfacl -m 501000:rwx /run/user/1000/wayland-1
Разрешения на запись в /run/user/1000
необходимы потому что я не знаю как заставить вложенный вэйланд гадить в другое место без патча и праздника компиляции.
В конфиг контейнера добавляем
lxc.mount.entry = /dev/dri dev/dri none bind,create=dir 0 0
lxc.mount.entry = /run/user/1000 run/user/1000 none bind,create=dir 0 0
И чудо случится
$ WAYLAND_DISPLAY=wayland-1 weston