[ubuntu-hardened] opengl backed graphics in virtualization needs more rules
Christian Ehrhardt
christian.ehrhardt at canonical.com
Mon Feb 11 16:14:23 UTC 2019
Hi,
some of you already worked with me on bug 1804766 which lead to [1].
But we knew back then this will only gonna be the start e.g. I
discussed with alex about using abstractions/X (got a nack thou).
I now got a testbed that I could use to do further tests and I have
identified quite a bunch of rules that I'll need. I attached them
below for your consideration.
My questions to you are the following:
1. still not abstractions/X but replicating much of those inside
libvirt (I expect yes)?
2. Of all of those in the list below except "things behind the
rendernode device"
- are those rules looking ok if I add those to a qemu guest using
GL enabled graphics
- I'd only add those to the guest when using gl is detected via
[1] or would you want them in the static libvirt-qemu abstractions?
3. Of all of those in the list below except "things behind the
rendernode device"
- I don't want to add /sys/devices/*/*/... but I see no good way to
reliable detect/map those
- do you know smart wildcard rules or have any prior art for
rendernodes to make this any easier?
I also need a trivial rule [3] for virt-aa-helper which should be fine IMHO
The bug I track this work is [2],
looking forward to your guidance on this - thanks in advance,
Christian
[1]: https://libvirt.org/git/?p=libvirt.git;a=commit;h=fb01e1a44daea773cd53f275cad6f031506c20db
[2]: https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1815452
[3]: https://launchpadlibrarian.net/410889754/usr.lib.libvirt.virt-aa-helper
# DRI device should be added by libvirt
/dev/dri/ r,
/dev/dri/** rw,
# DRI config
/usr/share/drirc.d/ r,
/usr/share/drirc.d/** r,
/etc/drirc r,
owner @{HOME}/.drirc r,
# EGL (seems not needed atm)
# /usr/lib/@{multiarch}/egl/*.so* mr,
# DRI mapping (parts of from abstractions/X)
/usr/lib/@{multiarch}/dri/** mr,
/usr/lib{,32,64}/dri/** mr,
/usr/lib/fglrx/dri/** mr,
# glvnd
/etc/glvnd/egl_vendor.d/{,*} r,
/usr/share/glvnd/egl_vendor.d/{,*} r,
# it needs things "behind" the rendernode device
# e.g. /sys/devices/pci0000:00/0000:00:02.0/uevent
# could maybe be reverse mapped via
/dev/dri/by-path/pci-0000:00:02.0-render -> ../renderD128 (or other
data source that we don't know yet)
/sys/devices/pci0000:00/0000:00:02.0/{uevent,vendor,device,subsystem_vendor,subsystem_device}
r,
/sys/devices/pci0000:00/0000:00:02.0/drm/renderD128/{uevent,vendor,device,subsystem_vendor,subsystem_device}
r,
# only occurs with gl enabled, maybe some libs ?
/var/lib/libvirt/.cache/ rw,
--
Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd
More information about the ubuntu-hardened
mailing list