PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

Docker11个月前更新 ydddj
15 0

今天,我给大家介绍一个比较简单实现plex硬件转码的方法,使用PVE LXC容器安装PLEX。

通常来讲,在pve上实现plex硬件转码的方法有两种。第一种方法,也是比较正统的方法是通过pve把核显硬件直通给宿主机(nas系统)。然后在nas上安装docker,在docker上安装plex容器,最后把直通给nas系统的核显再直通给docker容器中的plex。这种方法的优点是,如果设置无误运行比较稳定,不会干扰pve和nas上运行的其他服务。缺点也很明显,核显被独占不能给别的虚拟机使用。而且层层套娃,设置非常繁琐,如果设置错误排除故障会非常麻烦。

第二种方法则比较直观。直接在pve上安装plex。或者在pve上安装docker以后,在docker上安装plex,把核显直接直通给plex。该方法的优点是相对简单直观,缺点则是直接在pve上安装会影响其稳定性。

这次我介绍的方法就比这两种方法相对简单,而且也比较直观。原理很简单,通过pve上自带lxc容器安装预制好的CT模板,在模板上直接安装plex。这种方法不需要直通硬件,也不用太多设置就能实现plex的硬件转码。目前我体验下来发现的唯一缺点就是,plex不能实时扫描资料库文件变化,需要手动扫描或设置成定时扫描。

ps:本文默认你使用的是Intel核显。我手里没有空余的amd核显和nvdia显卡,无法测试是否适用本教程。

第一步,更换CT模板源

由于pve系统自带的源服务器不在国内,访问速度太慢。我们需要更换默认CT模板的源。

1、更新pve

单击刷新,然后点击升级。会弹出一个shell界面,当升级完成后,点击重启即可。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

2、换源

在pve系统中的shell界面输入下列命令,更换源为清华大学镜像源。

pve中shell界面

cp /usr/share/perl5/PVE/APLInfo.pm /usr/share/perl5/PVE/APLInfo.pm_back

sed -i ‘s|http://download.proxmox.com|https://mirrors.tuna.tsinghua.edu.cn/proxmox|g’ /usr/share/perl5/PVE/APLInfo.pm

3、重启服务,使新源生效

输入下列命令

systemctl restart pvedaemon.service

第二步,下载并创建CT模板

1、下载源中预设的模板。

在pve界面上,点击local,选择CT模板,单击模板选项。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

在模板列表中选择最新的Ubuntu 22.04并下载。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

下载完成后,关闭界面。

下载完成

2、创建CT模板

在pve界面右上角点击创建CT。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

现在开始创建CT模板。CT ID和主机名自定义,CT ID不要跟已有的重复,主机名不要有中文。在这里设置的密码,需要记住,此密码是本CT模板的root密码。最后,不要勾选无特权容器。

不要勾选无特权容器!

模板选择之前我们下载好的Ubuntu模板。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

磁盘容量可以相对富裕一些,我个人设置了30GB。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

核心数,根据自己设备的CPU核心数量划分即可,虚拟机上核心划分多少更多体现的是占用CPU的百分比和优先级,并不会实际划走这些核心给虚拟机使用。演示用的设备CPU是一块双核四线程奔腾G6405,所以我划了两个核心给模板使用。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

内存大小,都填2048M即2G。Linux系统对内存占用不高,2G就足够使用。另外,LXC容器跟虚拟机很大不同的一点是LXC容器的内存是动态占用的,不会跟虚拟机一样永久占用pve上的内存,LXC容器设置的内存更多体现的是内存占用上限。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

网络选项中,网络名称自拟。如果你的pve设备中有多个网卡,桥接选项选择连接内网的那张。IPv4选静态,不要照搬教程的ip地址,网络情况不一定相同。根据自身设备网段设置没有被占用的ip地址,并在后面加上掩码 /24 。网关设置为路由器的ip地址。其他的不用设置。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

DNS选择上,设置成dns服务器ip地址即可,通常来说dns服务器ip地址跟路由器ip地址相同。其他选项不用设置。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

最后点击完成,这样就创建好了CT模板。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

第三步、编辑配置文件,配置容器环境

1、查询Intel核显代码

在PVE的shell界面(不是CT模板的shell界面),输入下列命令

ls -l /dev/dri

2、编辑配置文件

注意还是在PVE的shell界面,下面的CTID就是创建的CT模板的ID。输入下列命令

nano /etc/pve/lxc/CTID.conf

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

配置文件编辑界面

3、添加核显代码,填写下列参数并保存

前三行配置文件需要修改,加粗的地方是需要填入刚才查询的核显代码的地方。最后保存(保存方法:按住 ctrl+x 然后按 y 然后按回车)

lxc.cgroup2.devices.allow: c 226:0 rwm

lxc.cgroup2.devices.allow: c 226:128 rwm

lxc.cgroup2.devices.allow: c 29:0 rwm

lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir

lxc.mount.entry: /dev/fb0 dev/fb0 none bind,optional,create=file

lxc.apparmor.profile: unconfined

登陆界面

4、验证核显是否启用成功

选中刚才创建的模板,点击启动,并登陆。账号名:root 密码是设置CT模板的密码。

输入下列命令

ls -l /dev/dri

启用成功

5、更新系统

输入下列命令,更新并安装系统组件

apt update && apt upgrade -y

6、下载并安装plex所需要的 curl、gnupg

依次输入下列命令

apt install curl -y

apt-get install gnupg -y

第四步、安装Intel驱动(plex最新版本不需要安装驱动了)

1、创建文件夹,以保存驱动

依次输入下列命令

mkdir neo

cd neo

2.下载驱动(/intel/compute-runtime/releases)

由于是从国外某知名程序员交流网站下载驱动,所以PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

2、下载驱动
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.11702.1/intel-igc-core_1.0.11702.1_amd64.1.deb
wget https://github.com/intel/intel-graphics-compiler/releases/download/igc-1.0.11702.1/intel-igc-opencl_1.0.11702.1_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/22.35.24055/intel-level-zero-gpu-dbgsym_1.3.24055_amd64.ddeb
wget https://github.com/intel/compute-runtime/releases/download/22.35.24055/intel-level-zero-gpu_1.3.24055_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/22.35.24055/intel-opencl-icd-dbgsym_22.35.24055_amd64.ddeb
wget https://github.com/intel/compute-runtime/releases/download/22.35.24055/intel-opencl-icd_22.35.24055_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/22.35.24055/libigdgmm12_22.1.3_amd64.deb
3、校验驱动完整
wget https://github.com/intel/compute-runtime/releases/download/22.35.24055/ww35.sum

3、校验驱动是否完整

输入下列命令

sha256sum -c ww35.sum

此时第一个驱动可能会报错。类似这样,不用管,后边会解决。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

4、安装驱动

输入下列命令安装

sudo dpkg -i *.deb

如果上边报错了,这次还会报错,等到后边解决即可。

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

=======================================

在linux中,intel 8代以上的核显驱动升级了,不再是之前的i965-va-driver,而是使用新的intel-media-va-driver。

使用apt update && apt install intel-media-va-driver-non-free vainfo

接下来使用export LIBVA_DRIVER_NAME=iHD”,否则vainfo会报错,想重启之后也有效,需要添加到/etc/profile

使用vainfo查看是否正常,就像这样

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX
=======================================

第五步、安装plex

1、更改核显权限,让plex可以调用

输入下列命令

/bin/chgrp video /dev/dri

/bin/chmod 755 /dev/dri

/bin/chmod 660 /dev/dri/*

2、添加官方存储库

依次输入下列命令

cd

echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list

curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add –

添加成功

3、启用官方存储库

输入下列命令

apt-get update

启用后会多一条plex的源

4、安装plexmediaserver

输入下列命令

apt install plexmediaserver

如果之前报错了,在这里会继续报错,输入下列命令就能正常安装了。如果之前的不报错,无视即可。

apt –fix-broken install

输入后会询问是否继续,按Y继续

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

再次输入下列命令就可以正常安装

apt install plexmediaserver

plex安装成功

5、验证plex是否正常添加到Video & Syslog

输入下列命令

cat /etc/group | grep plex

正确添加的状态

第六步、创建新用户,安装并挂载smb

1、安装SMB组件并创建共享目录

共享目录名自选,我设置的目录名字是 plex_share

依次输入下列命令

apt install cifs-utils -y

mkdir /mnt/plex_share

2、创建储存smb账户和密码的文件

文件名自选,我设置的简单就叫 smbpassword

输入下列命令

nano ~/.smbpassword

将下列内容复制到文件中。注意:smb的账户和密码是需要从要挂载的设备上创建的,不是在这里创建的。这里只是把要挂载设备的smb账户和密码填上,并保存(保存方法:按住 ctrl+x 然后按 y 然后按回车)

username=挂载设备的smb用户名

password=挂载设备的密码

PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX

3、设置自动挂载smb

由于smb默认每次开机需要手动挂载,所以要改成自动挂载。输入下列命令,并按要求更改后保存(保存方法:按住 ctrl+x 然后按 y 然后按回车)。

nano /etc/fstab

将下列内容复制到文件中

//你的nas ip/要共享的目录名 /mnt/smb共享目录名称 cifs credentials=/root/.储存smb账户密码的文件名,iocharset=utf8 0 0

还不懂,我就没办法了

4、重启容器,使设置生效

输入下列命令

reboot

5、检查smb挂载成功与否

重新登录以后,输入依次下列命令

cd /mnt/plex_share

ls

如果能显示出挂载的目录文件,那么就成功了。

smb挂载成功

以上做完,便设置完成了。

最后,验证硬解是否成功。

打开plex进行设置(plex默认地址是 设置CT模板的ip地址:32400/web),plex设置完成后检查是否开启硬解。

硬解开启成功

最后,我写这篇文章不只是个教程,更多是作为记录我解决问题的一个思路和我学习研究的过程。因此,作为教程略微有些勉强,个人能力有限,水平较低,如果有错误希望大家能指出来。同时希望这篇文章对大家有所帮助!

© 版权声明

相关文章