老高往期回顾:
上期咱们做了N5105在PVE和Hyper-V下多个系统的安装,发现N5105在PVE7.1-12下暂时不能直通核显给虚拟的Windows系统。分析了当时的Linux内核平台暂时无法对11代及以上的核显直通的情况,另辟蹊径:通过安装WinServer2019,在intel的win平台核显驱动加持下,成功吃上emby等媒体服务器的全部硬解解码器,可以正常硬解、推流和转码。
随着PVE的更新和Jellyfin大神nyanmisaka无私奉献下终于有了实质性进展。下面我们开始了……
您的订阅点赞分享充电打赏(三连投币分享)是对老高最大的支持和鼓励!看完片子,加爱折腾的群和讨论组:http://diyforfun.565856.xyz/
声明:爱折腾的老高视频及技术交流群仅供数码爱好者正规合法讨论技术交流。不涉及任何违法违规技术交流。请不要在评论或私聊中提及任何违法违规技术问题,一概不予回答谢谢合作。请各位朋友不在在群中讨论任何相关违法违规及风险问题,群规见群公告。所分享资源均来自互联网公开资源,均有其各自的作者和出处,尊重知识产权。相关设备和服务请购买正版。各厂商服务商请不要群内发广告、图片及二维码等。如有合作意向,敬请与老高联系:QQ 86549271
您的订阅关注点赞分享充电打赏(三连投币分享)是对老高最大的支持和鼓励!看完片子,加爱折腾的群和讨论组:https://diyforfun.565856.xyz/
pve的安装过程,请观看往期视频:https://www.bilibili.com/video/BV18L4y1F7gN/
我们采用的是jellyfin开发组 国人大神nyanmisaka的jellyfin版docker中集成了驱动,并且N大优化了很多。链接是:https://hub.docker.com/r/nyanmisaka/jellyfin
下面从安装完pve之后开始:
确保PVE已经升级到7.3-3及以上版本
1、更新PVE内核到5.19(2022-9-13官网更新)
apt update && apt install pve-kernel-5.19
2、检查PVE下915 guc huc dmc固件是否齐全(正常情况下PVE7.3-3默认系统自带)
cd /lib/firmware/i915 && ls ehl_guc.bin && ls ehl_huc.bin && ls icl_dmc*.bin
是否包含以下固件,如果齐全进步骤3
ehl_guc_70.1.1.bin
ehl_huc_9.0.0.bin
icl_dmc_ver1_09.bin
如不全,则补全缺少的915 guc huc dmc固件
mkdir -p /lib/firmware/i915 && cd /lib/firmware/i915
curl -LO https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/ehl_guc_70.1.1.bin
curl -LO https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/ehl_huc_9.0.0.bin
curl -LO https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/icl_dmc_ver1_09.bin
3、lxc模板安装debian 11,安装时一定把非特权容器前面的勾去掉,去掉,去掉。我们需要一个特权的容器。完成后不要启动!
4、在宿主PVE节点下指派核显及Docker相关权限映射给lxc下的debian
#查看核显
ls -l /dev/dri
nano /etc/pve/lxc/101.conf
# 粘贴
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.apparmor.profile: unconfined
lxc.cap.drop:
ctrl+x,y,回车
nano /etc/modprobe.d/i915.conf
#粘贴大补丸:
options i915 enable_guc=3
reboot 重启后验证低功耗编码HuC和GuC是否开启命令如下:
journalctl -b -o short-monotonic -k | egrep -i "i915|dmr|dmc|guc|huc"
返回信息中有以下HuC和GuC成功开启:
[ 3.862964] pve kernel: i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/icl_dmc_ver1_09.bin (v1.9)
[ 3.884978] pve kernel: i915 0000:00:02.0: [drm] GuC firmware i915/ehl_guc_70.1.1.bin version 70.1
[ 3.884987] pve kernel: i915 0000:00:02.0: [drm] HuC firmware i915/ehl_huc_9.0.0.bin version 9.0
[ 3.899160] pve kernel: i915 0000:00:02.0: [drm] HuC authenticated
[ 3.899505] pve kernel: i915 0000:00:02.0: [drm] GuC submission enabled
ctrl+x,y,回车
5、启动LXC的Debian,开启Debian远程root账号第三方SSH登录工具
nano /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
ctrl+x,y,回车
service ssh restart
Lxc下Debian更改国内源:
备份源存储文件:
mv /etc/apt/sources.list /etc/apt/sources.list.bk
nano /etc/apt/sources.list
添加国内源
中科大源
deb https://mirrors.ustc.edu.cn/debian/ bullseye main non-free contrib
deb-src https://mirrors.ustc.edu.cn/debian/ bullseye main non-free contrib
deb https://mirrors.ustc.edu.cn/debian-security/ bullseye-security main
deb-src https://mirrors.ustc.edu.cn/debian-security/ bullseye-security main
deb https://mirrors.ustc.edu.cn/debian/ bullseye-updates main non-free contrib
deb-src https://mirrors.ustc.edu.cn/debian/ bullseye-updates main non-free contrib
deb https://mirrors.ustc.edu.cn/debian/ bullseye-backports main non-free contrib
deb-src https://mirrors.ustc.edu.cn/debian/ bullseye-backports main non-free contrib
ctrl+x,y,回车
#更新
apt update && apt upgrade -y
5、挂载NAS NFS(smb)
PVE宿主机挂载SMB(NFS)
在PVE节点shell下运行
pct set 101 -mp0 /mnt/pve/share_nfs,mp=/mnt/share_nfs
LXC号 挂载点1 PVE下目录 LXC-debian下的存储目录
-mp2挂载点2
-mp3挂载点3
有群友问此命令什么意思,这里简单介绍一下:
100是机器号,也就是lxc建立的debian()括号里的号码
mp0是第一个挂载点。后面如果还有多个挂载点,按照顺序就是mp1,mp2,mp3
/mnt/pve/share_nfs 这是pve已经挂载好的目录(视频里有把smb/nfs挂载到pve的操作)
把这个pve挂载好的目录,映射给lxc,映射后在debian里面的位置是/mnt/share_nfs(以后安装在debian下的jellyfin设置媒体库的时候需要映射这个影音目录)
#重启后查看是否挂载正常
cd /mnt/share_nfs
ls -l
检查是否挂载完好
6、安装docker
一键安装Docker
apt install curl -y
curl -sSL https://get.docker.com/ | sh
启动docker服务
systemctl start docker
7、安装portainer
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name portainer portainer/portainer-ce
8、安装N大集成驱动的Docker版Jellyfin
nyanmisaka/jellyfin:latest
8096
8920
/media
/mnt/share_nfs
/dev/dri
注意:最近portainer新版貌似有点问题,导致安装报错,可以使用以下命令行安装N大jellyfin
docker run -d -p 8096:8096 -p 8920:8920 --volume jellyfin-config:/config --volume jellyfin-cache:/cache -v /mnt/share_nfs:/media --device=/dev/dri:/dev/dri --restart=always --name jellyfin nyanmisaka/jellyfin:latest
9、安装GPU监控应用
apt-get update && apt install intel-gpu-tools
intel_gpu_top
6、LXC开机自动修改解码器用户组权限
在LXC-Debian(ubuntu)下
先通过以下命令对systemd注入rc-local服务:
cat>>/etc/systemd/system/rc-local.service<<EOF
[Unit]
Description=/etc/rc.local
ConditionPathExists=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99
[Install]
WantedBy=multi-user.target
EOF
然后执行开机启动rc.local
systemctl enable rc-local.service
创建开始脚本
cat </etc/rc.local
!/bin/sh -e
#
#rc.local
#
#This script is executed at the end of each multiuser runlevel.
#Make sure that the script will "exit 0" on success or any other
#value on error.
#
#In order to enable or disable this script just change the execution
#bits.
#
#By default this script does nothing.
chmod 777 /dev/dri/*
sleep 30
systemctl restart docker
exit 0
EOF
并给文件赋权限
chmod +x /etc/rc.local
重启开机后检查权限是否自动更改解码器用户组为render
ls -l /dev/dri
重启开机后检查权限是否自动加权
reboot
您的订阅点赞分享充电打赏(三连投币分享)是对老高最大的支持和鼓励!看完片子,加爱折腾的群和讨论组:http://diyforfun.565856.xyz/