22年7月份老高全网首发了ESXi7.0直通5105核显给Fedora硬解转码。光阴如箭半年过去了。不少群友小伙伴私信老高说新PVE核显硬解视频更新了,啥时候ESXi更新一波。我无耻的回答快了!今天来填个坑。顺便用视频回复下群友和支持老高的粉丝们,ESXi8.0也可,Linux6.1内核也可,准备好小板凳、瓜子、饮料和笔记本,下面开始啦!
ESXi+Debian中intel_gpu_top运行错误:
最后在intel—gpu-tools项目页面上查到有人反馈,貌似和核显的pcie通道id有关系,使用lspci -nn查看虚拟机Debian下的核显PCI ID为02:02(此时已经禁用虚拟显卡)而常规情况核显PCI ID为00:02
感谢您的关注订阅🙏,三连投币转发 充电是对我最大的支持和鼓励!🙏我会继续努力做出更多的高质量视频!加爱折腾的群和讨论组:https://diyforfun.565856.xyz/ 爱折腾的老高欢迎您加入和有着共同折腾爱好的朋友们一起:折腾的开心!开心的折腾!
声明:爱折腾的老高视频及技术交流群仅供数码爱好者正规合法讨论技术交流。不涉及任何违法违规技术交流。请不要在评论或私聊中提及任何违法违规技术问题,一概不予回答谢谢合作。请各位朋友不在在群中讨论任何相关违法违规及风险问题,群规见群公告。所分享资源均来自互联网公开资源,均有其各自的作者和出处,尊重知识产权。相关设备和服务请购买正版。各厂商服务商请不要群内发广告、图片及二维码等。如有合作意向,敬请与老高联系。
以下文字,需要边看视频边操作,看不懂的地方暂停,搞懂了继续。避免疏漏仔细看视频。
另外:后期可能会不断完善或者改进此文字版流程,比如更换更好的挂载方法,或者更稳的赋权方法等等,因为视频已经无法修改了,所以以此文字版的为准。不懂的地方可以群里求助,大家互帮互助,或者群里聊天半小时自己搜索5分钟!谢谢诸位支持~
1、开启Debian远程root账号第三方SSH登录工具
nano /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
ctrl+x,y,回车
service ssh restart
2、升级内核到目前最新的6.1.0-7 (群友反馈官网速度太慢,换成清华源)
mkdir kernel
cd kernel
wget https://mirrors.tuna.tsinghua.edu.cn/debian/pool/main/l/linux-signed-amd64/linux-image-6.1.0-7-amd64_6.1.20-1_amd64.deb
dpkg -i *.deb
3、ESXi中直通核显,并分配给此Debian虚拟机(注意直通必须预留全部内存勾选)
ESXI开机释放核显占用。操作后会黑屏不再显示。
主机——操作——开启SSH权限,使用ssh工具链接ESXI,运行命令如下:
esxcli system settings kernel set -s vga -v FALSE
注:注意此条命令用完后ESXI启动后会开在引导处(半黑屏不再继续跑码显示,这是正常的)。把ESXI开机占用的的核显权限释放,避免每次重启直通核显失效,被ESXI再次核显霸权。如果想比较完美的直通核显这条命令是必须的。
使用这条命令前确保ESXI正确联网,相关虚拟路由固件都已正常启动并设置,否则黑屏后不好操作。如以后需要取消此命令,运行以下命令即可。
esxcli system settings kernel set -s vga -v TRUE
4、禁用虚拟显卡
然后在虚拟机选项-高级-配置参数-编辑配置里,将svga.present由TRUE改为FALSE,保存并启动虚拟机。(如以后需要开启虚拟桌面可再改为TRUE)
查看核显是否已经加载:
ls -l /dev/dri
5、Debian11 需要补全缺少的915 guc huc dmc固件(以下bin适合5105/6005 其他U可能核显不同,所需要的bin不同,根据页面报错提示,缺少哪个下载哪个)
apt-get update && apt install curl -y
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
6、添加大补丸,开启核显低功耗编码
nano /etc/modprobe.d/i915.conf
#粘贴
options i915 enable_guc=3
ctrl+x,y,回车
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
7、挂载NAS NFS(SMB)
开启NAS(如群晖)中NFS服务,和NFS共享文件夹权限设置,共享文件夹路径
apt install nfs-common -y
mkdir /mnt/nas_nfs
mount -t nfs 192.168.8.200:/volume9/store/test /mnt/nas_nfs
开机自动挂载
cat << "EOF" >> /etc/fstab
192.168.8.200:/volume9/store/test /mnt/nas_nfs nfs x-systemd.automount,x-systemd.after=network-online.target 0 0
EOF
8、安装docker
一键安装Docker
curl -sSL https://get.docker.com/ | sh
开机自动运行
systemctl start docker
systemctl enable docker
安装portainer
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name portainer portainer/portainer-ce
安装N大的集成核显驱动的jellyfin
nyanmisaka/jellyfin:latest
8096
8920/media
/mnt/nas_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监控应用(此步Debian11运行intel_gpu_top报错)
apt-get update && apt install intel-gpu-tools -y
暂时安装htop用下,看下cpu的占用率和解码进程ffmpeg,结合jellyfin播放详细信息,来判断核显硬解是否成功。
apt install htop -y
10、登录jellyfin地址初始化安装:
http://localhost:8096
设置地区,语言,管理员账户及密码,设置硬解渲染器
设置媒体库,添加媒体库(/media映射的nas_nfs文件夹),并扫描媒体库文件
11、脚本实现:开机Docker延时启动,等待NFS先挂载完毕(这一部分,可以参照新视频docker直接挂载nfs教程,更方便,不用再写脚本:https://www.bilibili.com/video/BV1wx4y1K7gG/)
先通过以下命令对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.
sleep 30
systemctl restart docker
exit 0
EOF
并给文件赋权限
chmod +x /etc/rc.local
重启开机后nfs是否自动挂载,且docker(jellyfin)在nfs挂好之后延时启动
reboot
感谢您的关注订阅🙏,三连投币转发 充电是对我最大的支持和鼓励!🙏我会继续努力做出更多的高质量视频!加爱折腾的群和讨论组:https://diyforfun.565856.xyz/ 爱折腾的老高欢迎您加入和有着共同折腾爱好的朋友们一起:折腾的开心!开心的折腾!