Préparation du conteneur (côté host)

Rajouter les lignes suivantes dans le fichier de conf du CT /etc/pve/lxc/123.conf

Les lignes idmap permettent de mapper les groupes video (44) et render (108) dans le CT. Petite subtilité, dans le CT, le groupe render porte le numéro 106, d’où le mappage lxc.idmap: g 106 108 1

lxc.idmap: u 0 100000 44
lxc.idmap: g 0 100000 44
lxc.idmap: u 44 44 1
lxc.idmap: g 44 44 1
lxc.idmap: u 45 100045 61
lxc.idmap: g 45 100045 61
lxc.idmap: u 106 108 1
lxc.idmap: g 106 108 1
lxc.idmap: u 107 100107 65429
lxc.idmap: g 107 100107 65429
lxc.cgroup.devices.allow: c 226:0 rwm
lxc.cgroup.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file

Mettre à jour les fichiers subuid et subgid en rajoutant les deux id des groupes :

# cat /etc/subuid
root:100000:65536
root:44:1
root:108:1
# cat /etc/subgid
root:100000:65536
root:44:1
root:108:1

Penser à faire un A/R du CT pour prise en compte des modifs.

Configuration du conteneur (côté CT)

Vérifier la présence des drivers vidéos dans le CT :

root@testing:~# ls -ls /dev/dri/
total 0
0 crw-rw---- 1 nobody video  226,   0 Jul 30 19:36 card0
0 crw-rw---- 1 nobody render 226, 128 Jul 30 19:36 renderD128

Ajouter le compte root dans les groupes video et render:

usermod -aG render root
usermod -aG video root

Installation de vainfo

apt-get install vainfo 

La commande vainfo doit retourner des lignes du genre:

root@testing:~# vainfo
error: can't connect to X server!
libva info: VA-API version 1.8.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_8
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.8 (libva 2.8.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 20.2.0 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileNone                   :	VAEntrypointStats
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointFEI
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointFEI
      VAProfileH264High               :	VAEntrypointEncSliceLP
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointFEI
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain               :	VAEntrypointFEI
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointEncSlice
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD

Si ce n’est pas le cas, il se peut que vainfo ou les pilotes logiciels ne soient pas à jour. Dans ce cas, il faut installer la version sid de ces paquets :

# rajout du dépôt sid dans /etc/apt/sources.list
deb http://ftp.fr.debian.org/debian/ sid main contrib non-free

apt update

#Installation des paquets depuis sid
apt-get -t sid install vainfo
apt-get -t sid install intel-media-va-driver-non-free

Une fois l’installation faite, penser à retirer le dépôt sid des sources, sous peine à la prochaine mise à jour d’avoir un système instable..