Plex dans proxmox + nuc
Plex ou Kodi, cette question je ne vais pas l’aborder… Dans cet article, nous allons voir :
– comment créer un conteneur LXC sur proxmox,
– activer l’accélération graphique intel dedans,
– le connecter au stockage NFS gros volume créé précédemment,
– installer et configurer plex
1 – Création d’un conteneur pour Plex
Si necessaire, vous pouvez suivre le guide de création de container sur ce site
Voici les valeurs que j’utilise sur mon conteneur Plex perso :
- IMPORTANT : Pour permettre l’accélération graphique de plex DECOCHEZ « Unprivilege container »
- Ubuntu 19.04
- 1Go de Ram
- 4Go de drive (les médias sont chez moi dans un stockage réseau partagé NFS)
- Notez l’id de création (pour moi c’était 105)
2 – L’accélération graphique !
Pour plex l’accélération graphique est primordiale pour l’encodage vidéo. Intel a un CGU intégré dans le nuc, mais il faut préparer le debian qui porte proxmox. C’est un peu fastidieu, mais ca soulagera énormément le cpu !
Voici comment faire :
1 – L’accélération graphique dans le host PROXMOX
Ouvrez un shell sur votre PVE
Ajoutez le driver intel et l’outil pour tester que tout a fonctionné. Enfin, lancez l’outil
apt-get install i965-va-driver
apt-get install vainfo
vainfo
Récupérez les informations de bus de la cg
ls -l /dev/dri
Notez les IDs :
card0 : 226, 0
renderD128 : 226,128
2 – Utiliser l’accélération graphique dans notre container
Maintenant, nous allons utiliser ces informations dans le conteneur créé ci-dessus ! Selon l’ID choisi (pour moi 105, donc 105.conf)
nano /etc/pve/lxc/105.conf
Ajoutez en fin de fichier toutes ces lignes (toujours changer l’id 105 par le votre si nécessaire à la fin)
lxc.cgroup.devices.allow = c 226:0 rwm
lxc.cgroup.devices.allow = c 226:128 rwm
lxc.cgroup.devices.allow = c 29:0 rwm
lxc.autodev: 1
lxc.hook.autodev:/var/lib/lxc/105/mount_hook.sh
La dernière ligne est un script shell qui permettra de faire le mount à chaque démarrage du container. Nous allons maintenant éditer ce script. (Encore une fois remplacez 105 par votre id)
nano /var/lib/lxc/105/mount_hook.sh
Ajoutez les lignes suivantes :
mkdir -p ${LXC_ROOTFS_MOUNT}/dev/dri
mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/card0 c 226 0
mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/renderD128 c 226 128
mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/fb0 c 29 0
Voilà, le conteneur est prêt, vous pouvez le lancer !
Attention : si le conteneur démarre pas, assurez-vous qu’il est bien identifié en tant que container privilégié en étape 1. Si ce n’est pas le cas, la technique est de backup le conteneur, de le restore immédiatement par dessus en décochant « unprivilege »
3 – Connecter le container au NFS
Allez dans la console du container
Installez le package nfs-common
apt install nfs-common
Créez un point de montage cible :
mkdir -p /dataStorage
Ajoutez dans ce point de montage dans fstab (nano /etc/fstab ou la ligne de commande suivante)
Note : l’ip du serveur est celle de notre proxmox, si vous avez suivi mon guide NFS
Note 2 : Soyez sur d’avoir créé un profile with-nfs pour apparmor et de l’utiliser pour le container de Plex
sed -i '$a 192.168.86.125:/mnt/dataStorage /dataStorage nfs rw 0 0' /etc/fstab
mount -a
4 – Installer et configurer plex
Téléchargez la dernière version en cours de plex. Puis installez la
Exemple ubuntu 16.04+ 64 bit :
wget https://downloads.plex.tv/plex-media-server-new/1.18.1.1973-0f4abfbcc/debian/plexmediaserver_1.18.1.1973-0f4abfbcc_amd64.deb
sudo dpkg -i plexmediaserver*.deb
Démarrez plex et relancez-le automatiquement au reboot :
sudo systemctl enable plexmediaserver.service
sudo systemctl start plexmediaserver.service
Bonus : Pour prévoir l’update de plex via apt package, il faut ajouter le repo
dpkg -L plexmediaserver
sudo nano /etc/apt/sources.list.d/plexmediaserver.list
Décommenter la dernière ligne
Ajoutez la signature et le repo
apt-get install gnupg
wget -q https://downloads.plex.tv/plex-keys/PlexSign.key -O - | sudo apt-key add -
sudo apt update
Enfin, connectez-vous à votre serveur plex (remplacez l’ip par la votre)
http://192.168.86.130:32400/web/
Dernier point concernant l’accélération matérielle, allez dans Paramètres>transcoder et vérifiez que vous avez accès aux options avancées. Cocher enfin la case « Utiliser l’accélération matérielle »