R86S 到手也很久了,在ESXI平台上,其他功能都开发的差不多了,唯一的遗憾是没有搞定的是核显转码的问题,黑群晖等都尝试过了,后通过大佬的帖子得知,需要5.17以上的linux内核才能支持。
其他折腾内容见本人其他帖子:R86S-N5100进阶玩法ESXI7.03直通EMMC,添加音、视频输出,变身wifi6路由
随着linux 内核版本的不断更新,这一个问题终于得到了解决,现将相关经验分享给有需要的朋友。
本贴内容参考了许多大佬的文章,在此对他们表示感谢。本教程不是纯新手教程,需要有一定的折腾经验。
fedora linux的安装
我用的linux为Redhat旗下的fedroa linux,相关ubuntu、debian来说,原生内核5.17,且包含了解码需要的核显驱动,还有webui可以进行远程管理,有图形界面,非常方便新手,需要的输入的命令少。
我的ESXI版本为7.0U3sd-19482531
首先去官网下载fedora server版镜像,https://getfedora.org/en/server/download/ ,选择 Standard ISO image for x86_64,或者点击这个链接直接下载 https://download.fedoraproject.org/pub/fedora/linux/releases/36/Server/x86_64/iso/Fedora-Server-dvd-x86_64-36-1.5.iso
镜像下载好后,开始安装fedora:
1.1、虚拟机设置
虚拟机操作系统选 Redhat fedora(64位),cpu、内存、硬盘可以根据自己的实际来选,硬盘太小可能会影响转码的缓存,当然也可以将缓存映射到其他位置。引导选项中,选择EFI,安全引导不要打勾。
本帖隐藏的内容
1.2、fedora linux的安装
如第三步时,俩个红色感叹号的位置,需要进行确认,建议启用root用户,开启远程登陆。安装完成后,重启就可以看到系统的内核版本,以及远程管理地址了。
进入webui后,先进行一个安装所有更新吧,这个操作可以升级到最新的5.18内核及驱动程序。更新完内核可能不是最新版本,需要在启动时,手动选择一次。
1.3、核显驱动的确认,需要用到以下命令
- ls -l /lib/firmware/i915/ehl_guc_69*
- ls -l /lib/firmware/i915/ehl_huc_9*
- ls -l /lib/firmware/i915/icl_dmc_ver1_09*
复制代码
为了防止ip地址变动,导致管理不变,我们把fedora设置为固定ip(请根据自己的ip进行修改),后面的操作会使得fedora在esxi中不显示ui界面。
1.4、切换直通
先关闭虚拟机,切换核显为直通状态,启用ESXI的ssh服务,输入esxcli system settings kernel set -s vga -v FALSE
禁用ESXI对核显的调用。
- esxcli system settings kernel set -s vga -v FALSE
复制代码
接下来设置fedora虚拟机,预留内存全部锁定,添加jasperlake PCI设备。
在高级,编辑配置参数,将svga.present的值由true改成false,重启虚拟机可以看到窗口变成了空白状态。
进入webui,可以看到,核显已经直通到了fedroa虚拟机。
输入 ls -l /dev/dri 可以查看核显是否驱动起来了
- ls -l /dev/dri
复制代码
1.5、开启低功耗解码
输入:vim /etc/default/grub
- vim /etc/default/grub
复制代码
添加以下代码
- GRUB_CMDLINE_LINUX_DEFAULT=”intel_iommu=on i915.enable_guc=3 quiet”
复制代码
:wq,保存退出。
输入:grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg ,更新引导。
- grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
复制代码
然后输入reboot,重启生效。
重启后输入:
- journalctl -b -o short-monotonic -k | egrep -i “i915|dmr|dmc|guc|huc”
复制代码
有以下输出,表示相关功能已经开启。
1.6 、安装docker,可以用以下命令。也尝试过在fedora下直接按照jellyfin,但是遇到些问题,docker下倒是正常,以下内容为docker下jellfyin的安装教程。
- dnf update
- dnf install docker
- systemctl start docker
- systemctl enable docker
复制代码
docker 安装完成后,下拉jellyfin镜像,这里用N大的docker,采用以下命令 docker pull nyanmisaka/jellyfin
- docker pull nyanmisaka/jellyfin
复制代码
第一种挂载NFS共享,在群晖中为存放视频的文件夹开启NFS共享,在新增NFS规则中,服务器ip为fedora的ip地址。
在fedora的webui中挂在nfs共享,这里的ip填群晖的ip,挂载点填/media,和jellyfin保持一致,其他名称也可以用。
第二种方式,挂载smb共享,用到的是cifs,fedora默认已经安装好了,没有图形界面,需要输入命令行来实现。
- mkdir /mnt/media2
复制代码
在mnt文件夹下创建挂载点media2文件夹
- mount -t cifs -o username=xxx,password=xxx //ip/viedo文件夹/ /mnt/media2
复制代码
挂载smb共享文件夹
这种挂载方式属于一次性的,重启后就失效了,主要零时挂载,测试挂载路径及命令用。永久挂载需要修改以下文件。
- vim /etc/fstab
复制代码
增加以下代码
- //ip/video文件夹 /mnt/media2 cifs defaults,user=xxx,password=xxx 0 0
复制代码
然后:wq,保存重启,就可以自动挂载了。
镜像下拉完成后,用以下命令建立2个jellyfin的映射文件夹,方便后面修改。
- mkdir /etc/jellyfin
- mkdir /etc/jellyfin/config
- mkdir /etc/jellyfin/cache
复制代码
用NFS方式挂载的用以下命令,建立jellyfin容器
- docker run –privileged -d -v /etc/jellyfin/config:/config -v /etc/jellyfin/cache:/cache -v /media:/media –net=host –device=/dev/dri:/dev/dri –restart=always –name jellyfin nyanmisaka/jellyfin:latest
复制代码
如果是挂载的SMB文件夹,则用以下命令建立jellyfin容器,二者的区别是挂载路径不一样
- docker run –privileged -d -v /etc/jellyfin/config:/config -v /etc/jellyfin/cache:/cache -v /mnt/media:/media –net=host –device=/dev/dri:/dev/dri –restart=always –name jellyfin nyanmisaka/jellyfin:latest
复制代码
这样,docker环境下jellyfin已经按照好了,这时候通过ip:8096访问的话,会访问不到,那是英文防火墙没有开放相关端口。在防火墙添加以下自定义端口,局域网也可以直接关闭防火墙。
这时候就可以进行jellyfin设置了,添加媒体库,选择刚才映射的 /media文件夹,其他选项根据自己的需求添加。
完成设置后,播放一段,4k-h264视频,可以看到cpu占用70%,而且播放还不流畅,卡顿明显。
进入播放设置界面, 开启硬件解码,选择Intel QuickSync(QSV),其他选项看图。
设置完成后,再次播放刚才的视频,cpu占用明显降低,并且可以随意调节分辨率,都能流畅播放,说明核显转码成功。
对本图文教程有不明白的地方,需要看视频教程的,可以去油管搜索 “爱折腾的Mr Gao”,感谢他提供的方法。
Comments are closed, but trackbacks and pingbacks are open.