PVE不需要设置核显直通,也能让PLEX硬解——使用PVE LXC容器安装PLEX
今天,我给大家介绍一个比较简单实现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界面,当升级完成后,点击重启即可。
2、换源
在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模板,单击模板选项。
在模板列表中选择最新的Ubuntu 22.04并下载。
下载完成后,关闭界面。
2、创建CT模板
在pve界面右上角点击创建CT。
现在开始创建CT模板。CT ID和主机名自定义,CT ID不要跟已有的重复,主机名不要有中文。在这里设置的密码,需要记住,此密码是本CT模板的root密码。最后,不要勾选无特权容器。
模板选择之前我们下载好的Ubuntu模板。
磁盘容量可以相对富裕一些,我个人设置了30GB。
核心数,根据自己设备的CPU核心数量划分即可,虚拟机上核心划分多少更多体现的是占用CPU的百分比和优先级,并不会实际划走这些核心给虚拟机使用。演示用的设备CPU是一块双核四线程奔腾G6405,所以我划了两个核心给模板使用。
内存大小,都填2048M即2G。Linux系统对内存占用不高,2G就足够使用。另外,LXC容器跟虚拟机很大不同的一点是LXC容器的内存是动态占用的,不会跟虚拟机一样永久占用pve上的内存,LXC容器设置的内存更多体现的是内存占用上限。
网络选项中,网络名称自拟。如果你的pve设备中有多个网卡,桥接选项选择连接内网的那张。IPv4选静态,不要照搬教程的ip地址,网络情况不一定相同。根据自身设备网段设置没有被占用的ip地址,并在后面加上掩码 /24 。网关设置为路由器的ip地址。其他的不用设置。
DNS选择上,设置成dns服务器ip地址即可,通常来说dns服务器ip地址跟路由器ip地址相同。其他选项不用设置。
最后点击完成,这样就创建好了CT模板。
第三步、编辑配置文件,配置容器环境
1、查询Intel核显代码
在PVE的shell界面(不是CT模板的shell界面),输入下列命令
ls -l /dev/dri
2、编辑配置文件
注意还是在PVE的shell界面,下面的CTID就是创建的CT模板的ID。输入下列命令
nano /etc/pve/lxc/CTID.conf
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驱动
1、创建文件夹,以保存驱动
依次输入下列命令
mkdir neo
cd neo
2.下载驱动(/intel/compute-runtime/releases)
由于是从国外某知名程序员交流网站下载驱动,所以
3、校验驱动是否完整
输入下列命令
sha256sum -c ww35.sum
此时第一个驱动可能会报错。类似这样,不用管,后边会解决。
4、安装驱动
输入下列命令安装
sudo dpkg -i *.deb
如果上边报错了,这次还会报错,等到后边解决即可。
第五步、安装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
4、安装plexmediaserver
输入下列命令
apt install plexmediaserver
如果之前报错了,在这里会继续报错,输入下列命令就能正常安装了。如果之前的不报错,无视即可。
apt --fix-broken install
输入后会询问是否继续,按Y继续
再次输入下列命令就可以正常安装
apt install plexmediaserver
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=挂载设备的密码
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
如果能显示出挂载的目录文件,那么就成功了。
以上做完,便设置完成了。
最后,验证硬解是否成功。
打开plex进行设置(plex默认地址是 设置CT模板的ip地址:32400/web),plex设置完成后检查是否开启硬解。
最后,我写这篇文章不只是个教程,更多是作为记录我解决问题的一个思路和我学习研究的过程。因此,作为教程略微有些勉强,个人能力有限,水平较低,如果有错误希望大家能指出来。同时希望这篇文章对大家有所帮助!
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
就是个大白
1VaXDVF18MGb2ewadxYdirg?pwd=pc4m
校验提示文案
四川男神李贝贝
校验提示文案
冯冯1992
校验提示文案
TangTeng
docker run \
-d \
--name plex \
-p 32400:32400/tcp \
-p 3005:3005/tcp \
-p 8324:8324/tcp \
-p 32469:32469/tcp \
-p 1900:1900/udp \
-p 32410:32410/udp \
-p 32412:32412/udp \
-p 32413:32413/udp \
-p 32414:32414/udp \
-e TZ="" \
-e PLEX_CLAIM="" \
-e ADVERTISE_IP="http://:32400/" \
-h \
-v :/config \
-v :/transcode \
-v :/data \
plexinc/pms-docker
不过我发现一个问题,就是安装之后没有本地媒体库,不知道为什么,文件夹我都挂载了。
校验提示文案
就是个大白
校验提示文案
就是个大白
校验提示文案
hogar
校验提示文案
心听半秋殇
校验提示文案
Hoooo
校验提示文案
值友4138290567
校验提示文案
JzJz8787
校验提示文案
darkwalker
校验提示文案
无敌空心菜
校验提示文案
米代
校验提示文案
达尔i
校验提示文案
达尔i
校验提示文案
米代
校验提示文案
无敌空心菜
校验提示文案
darkwalker
校验提示文案
JzJz8787
校验提示文案
TangTeng
docker run \
-d \
--name plex \
-p 32400:32400/tcp \
-p 3005:3005/tcp \
-p 8324:8324/tcp \
-p 32469:32469/tcp \
-p 1900:1900/udp \
-p 32410:32410/udp \
-p 32412:32412/udp \
-p 32413:32413/udp \
-p 32414:32414/udp \
-e TZ="" \
-e PLEX_CLAIM="" \
-e ADVERTISE_IP="http://:32400/" \
-h \
-v :/config \
-v :/transcode \
-v :/data \
plexinc/pms-docker
不过我发现一个问题,就是安装之后没有本地媒体库,不知道为什么,文件夹我都挂载了。
校验提示文案
值友4138290567
校验提示文案
冯冯1992
校验提示文案
四川男神李贝贝
校验提示文案
Hoooo
校验提示文案
心听半秋殇
校验提示文案
hogar
校验提示文案
就是个大白
校验提示文案
就是个大白
1VaXDVF18MGb2ewadxYdirg?pwd=pc4m
校验提示文案
就是个大白
校验提示文案