ESXi7黑群晖为Jellyfin开启NVIDIA显卡硬件加速硬解,使用NVIDIA显卡加速Jellyfin设置
这是一片没有人的领地,基本没有现成的文章和教程,参考了网络上几乎所有相关教程,总结如下。
关于实现之后的效果,可以参考:https://www.lxg2016.com/54176.html
简单来说,有几个要点:
直通NVIDIA显卡时需要加参数
hypervisor.cpuid.v0=FALSE
从而让显卡认为自己在物理机上。
可以使用NFS挂载群晖下的文件夹存放数据
Jellyfin的硬解需要安装ffmpeg,ubuntu下可以
sudo apt install ffmpeg
后用
which ffmpeg
查看位置,填写到jellyfin中
watch -n 1 nvidia-smi
可以查看显卡状态;htop查看cpu和内存状态
我的配置:
Xeon W-2140b, X11SRM-VF, GTX1650
安装ESXi7,并安装ubuntu 20.04.1,直通显卡
略,其他文章已经很多了
参考:http://www.singleye.net/2019/07/vmware-ESXi-6.7.0-update2-%E4%BD%BF%E7%94%A8-gpu-passthrough-%E6%A8%A1%E5%BC%8F%E7%9A%84%E5%9D%91/
注意:
1、直通显卡需要把VGA和声卡都添加进去,也就是需要添加两个PCI设备
2、设置直通的文章已经很多了,此处略去
3、直通需要设置内存预留
4、需要添加参数hypervisor.cpuid.v0=FALSE,让显卡以为还是在物理机中
安装Ubuntu的显卡驱动和CUDA
这就是一个黑洞……很多文章的方法会出现各种各样的问题,这里我只介绍一种方法。通过这种方式,我成功了。
此处参考了博客:https://morningd.github.io/2018/07/20/esxi-ubuntu-install-nvidia-driver/,特别感谢大佬
安装Ubuntu的显卡驱动和CUDA步骤
禁用 nouveau
nouveau 是 ubuntu 系统自带的开源驱动,所以先要把他禁用掉。
sudo vim /etc/modprobe.d/blacklist.conf
添加一行
blacklist nouveau
执行
sudo update-initramfs -u
重启后如果
lsmod | grep nouveau
没有输出,说明已经禁用了 nouveau 了。
禁用 X 服务:我的ubuntu没有这个服务,但执行一遍也没问题
sudo service lightdm stop
键盘 Ctrl+Alt+F1 进入 tty1,登录。
安装驱动文件
执行
sudo ./NVIDIA-Linux-x86_64-384.66.run --no-opengl-files
安装驱动文件,注意参数。
安装过程中 dkms 选择 yes,其余 continue 就好了。
如果全程没有出错,重启,运行
sudo apt install ffmpeg0
将会输出显卡信息,恭喜你安装成功了。如果你遇到了编译错误,请接着往下看。
这时,使用sudo apt install ffmpeg0就应该可以出现这个界面了。
安装CUDA套件
其实也就两行:
sudo apt install ffmpeg1
注:不同版本的行不行我不是很清楚,需要进一步实验
安装Jellyfin
sudo apt install ffmpeg2
以上就安装好了,在网页配置jellyfin的部分略过不表,自己打开IP:8096一步一步来就行了很简单
控制指令:
sudo apt install ffmpeg3
注意:这篇文章后面的硬件加速教程并不适用,稍后会有说明
挂载NFS文件夹
目的在于可以将媒体服务器和NAS解绑,从而让硬件加速成为可能(群晖DSM不支持额外的GPU,至少DS918的系统在6.22下是不支持的,能开机但不能驱动)
设置完成后,我将群晖的/video文件夹映射到了/home/vision/mnt/video文件夹,并在jellyfin中添加了这个文件夹作为Movie的所在地,没有出现问题。(反观windows下的jellyfin不能添加网络文件夹,而且如何让应用把网络文件夹当做本地文件夹的方法全网也没有找到,只能用linux这边的解决方案了)
以下内容可以直接去上面贴出的博客连接
安装并设置客户端
首先,在 Ubuntu 18.04 的机器上执行以下命令来安装 NFS Client。复制
sudo apt install ffmpeg4
安装好以后,我们就可以通过 “showmount” 的命令来查看在指定机器 (IP 地址) 上已经共享的 NFS 文件。比如:
sudo apt install ffmpeg5
就可以看到刚才在 NAS 上共享的文件夹。
如果需要访问 NAS 上的文件夹,首先需要挂载 (mount) 该共享文件夹到本地。
首先在本地建立一个文件夹,比如建立一个名为 nfs_music 的文件夹复制
sudo apt install ffmpeg6
然后执行以下命令挂载:复制
sudo apt install ffmpeg7
“/volume1/music” 是共享文件夹在 NAS 上的目录。
为查看挂载的效果,可以使用 sudo apt install ffmpeg8 命令复制
sudo apt install ffmpeg8
你将得到类型下面的系统输出:复制
sudo apt install ffmpeg9
设置开机自动挂载 NFS
执行以上步骤后,如果重启客户端机器,需要再次执行 mount 命令来挂载 NFS 共享目录,如果希望在开机时自动挂载,需要编辑 /etc/fstab 文件,执行:复制
which ffmpeg0
在文件末尾加上如下的行:复制
which ffmpeg1
用你的 IP 地址和目录名替换掉命令中相应的内容,编辑完以后,保存退出。 这样在机器重启时也能自动挂载 NFS 共享目录了。
为Jellyfin开启显卡加速
这就是这篇文章的关键部分了,似乎这个需求非常小众,单独买一张显卡为了解码也并不是大多数人会做的选择。(但就是想All in One)
这里需要安装FFmpeg
这是NVIDIA官方关于FFMpeg的页面:https://developer.nvidia.com/ffmpeg
重点在于这一部分:
这个方法看起来很正规,但比较复杂,我并没有采用。
我选择了一种非常简单的安装方法:
sudo apt update sudo apt install ffmpeg
ok,这就可以了
然后使用:
which ffmpeg
查看安装路径,我安装到的是 /usr/bin/ffmpeg,记下这个位置
然后去web页面,如下配置:
这里可以勾选上所有的硬件解码选项,因为GTX1650都可以硬解这些视频
硬解能力参考:https://developer.nvidia.com/video-encode-decode-gpu-support-matrix
可以看到,能买到桌面版的最便宜的,功耗最低的,全都能解码的就是GTX1650了,这也是我购买GTX1650作为解码卡的原因
2021.1.25补充一点:GTX1650的NVENC/NVDEC使用的是Volta架构,而从GTX1660开始才是Turing架构,买新不买旧建议1660,当然如果想要一点Volta遗物的话,1650也是可以的:)
点击链接加入群聊三群:751529538
点击链接加入群聊二群:376877156
点击链接加入群聊【路由器交流群:622891808已满】
本站附件分享,如果附件失效,可以去找找看
饿了么红包