如何在PVE的LXC容器中为Jellyfin启用硬解码

2025-03-26 15:49:28 2点赞 10收藏 8评论
如何在PVE的LXC容器中为Jellyfin启用硬解码

最近入手了一台N150的小主机,安装好PVE后可以流畅运行Win11、iStoreOS和跑一些docker,不过想要充分释放硬件性能的潜力,还需要在PVE中开启硬件共享加速。

在PVE(Proxmox Virtual Environment)的LXC容器中开启Jellyfin的硬解码功能,可以有效提升视频转码和播放的性能,利用显卡(GPU)的计算能力分担处理器CPU)的负载。如果你拥有一个支持虚拟化的CPU,又恰好使用了PVE,那绝不能浪费这个硬件性能优势!

一、PVE宿主机操作步骤

1. 更新内核和安装必要组件

1.1 更新内核

查看当前内核版本:

uname -r

列出所有已安装的内核版本:

dpkg --list | grep pve-kernel

找到最新内核版本(例如 6.11.11-2-pve),运行以下命令更新:

apt-get install -y pve-kernel-6.11.11-2-pve

解释:安装最新的 Proxmox 内核以支持更好的 GPU 驱动,有些新出的CPU使用默认内核时安装不了驱动的,别问我怎么知道的,因为我都试过了如何在PVE的LXC容器中为Jellyfin启用硬解码

1.2 安装内核头文件

安装内核头文件以确保内核模块可构建成功:

apt-get install -y pve-headers-6.11.11-2-pve

解释:内核头文件是编译模块的必要文件,这里要填写你刚才选择使用的内核版本号哈。

完成后重启主机以加载新内核:

reboot

2. 修改 GRUB 配置,启用IOMMU支持

运行以下命令编辑 GRUB 配置文件:

nano /etc/default/grub

找到GRUB_CMDLINE_LINUX_DEFAULT,更改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1"

说明

不要问我如果硬件不同,里面的参数要不要改!只要你是intel的CPU里面的设置参数都是一样滴如何在PVE的LXC容器中为Jellyfin启用硬解码

# intel_iommu=on:开启 Intel 的 IOMMU 支持。

# iommu=pt:启用直通模式以减少性能开销。

# i915.enable_gvt=1:启用 Intel GVT-g(GPU 虚拟化支持)。

保存文件后,更新 GRUB:

update-grub

完成后重启主机:

reboot

3. 加载内核模块

运行以下命令编辑 /etc/modules 文件:

nano /etc/modules

添加以下内容:

plaintext

vfio

vfio_iommu_type1

vfio_pci

kvmgt

说明

不要问我如果硬件不同,里面的参数要不要改!只要你是intel的CPU里面的设置参数都是一样滴如何在PVE的LXC容器中为Jellyfin启用硬解码

# vfio:虚拟功能输入输出(VFIO)核心模块。

# vfio_iommu_type1:为 VFIO 启用 IOMMU 支持。

# vfio_pci:为 VFIO 加载 PCI 设备支持。

# kvmgt:启用 KVM-GT(GPU 虚拟化技术)。

保存后,更新内核镜像:

update-initramfs -u -k all

完成后重启主机:

reboot

4. 检查驱动加载状态

验证核显驱动是否加载:

dmesg | grep i915

再三说明:不要问我如果硬件不同,里面的参数要不要改!只要你是intel的CPU设置都是一样滴如何在PVE的LXC容器中为Jellyfin启用硬解码

检查是否有核显驱动加载的信息。如果没有,可以在/etc/modprobe.d/i915.conf中添加:

options i915 enable_guc=3

添加后更新和重启宿主机。

也可以使用下面命令查看已加载模块:

lsmod | grep i915

解释:确认 i915 模块是否成功加载。

检查设备节点:

ls -l /dev/dri

解释:确保设备节点 card0 和 renderD128 已正确生成。

5. 验证 GPU 是否正常工作

安装工具:

apt-get install -y intel-gpu-tools

解释:intel-gpu-tools 包含用于测试 GPU 工作的工具。

运行 GPU 监控工具:

intel_gpu_top

解释:实时查看 GPU 的负载和运行情况。

二、LXC 容器操作步骤

1. 编辑容器配置文件

假设容器的 ID 为 100,编辑其配置文件:

nano /etc/pve/lxc/100.conf

在最下方添加以下内容:

lxc.cgroup2.devices.allow: c 226:0 rwm

lxc.cgroup2.devices.allow: c 226:128 rwm

lxc.mount.entry: /dev/dri/card0 dev/dri/card0 none bind,optional,create=file

lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file

解释:允许容器访问宿主机的 GPU 设备节点。还是那句话,不要问我如果硬件不同,里面的参数要不要改!只要你是intel的CPU里面的设置参数都是一样滴如何在PVE的LXC容器中为Jellyfin启用硬解码

2. 重启lxc容器

3. 在容器中验证 GPU 支持

进入容器,输入命令:

ls -l /dev/dri

解释:确认容器内是否成功挂载设备节点。

安装 GPU 工具:

apt-get update

apt-get install -y intel-gpu-tools

解释:安装容器内的 GPU 测试工具。

运行 GPU 监控工具:

intel_gpu_top

解释:测试 GPU 在容器中是否正常运行。

三、启用 Jellyfin 硬件解码

1. 安装必要的软件

进入 Jellyfin 容器或服务系统,运行以下命令:

apt-get update

apt-get install -y vainfo intel-media-va-driver

说明

# vainfo:验证 VA-API 支持。

# intel-media-va-driver:Intel 显卡的 VA-API 驱动。

2. 验证 VA-API 支持

运行以下命令验证 VA-API 是否启用:

vainfo

解释:如果输出显示支持的解码器和编码器,说明 VA-API 已正确启用。

3. 配置 Jellyfin

在 Jellyfin 管理界面中:

1. 进入管理仪表板。

2. 选择“播放”设置。

3. 启用硬件加速解码(选择 VA-API)。

4. 如果可能,还可以启用硬件加速编码。

保存设置并重新启动 Jellyfin。

四、验证硬件加速

  1. 播放媒体文件:使用支持的媒体文件播放,确认是否触发硬件加速。

  2. 检查 Jellyfin 日志:确认硬件解码是否启用。

  3. 运行 GPU 监控工具

intel_gpu_top

解释:实时监控 GPU 的工作负载,验证硬件加速是否正常运行。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
8评论

  • 精彩
  • 最新
  • 我拿我的NAS打个比方,我是赛扬4650t,我把核显已经直通给虚拟机win10了,我还可以把它共享加速给别的LXC虚拟机?

    校验提示文案

    提交
    可以用iGPU虚拟化

    校验提示文案

    提交
    选择直通给某台虚拟机,资源就直接分配过去了,其他虚拟机是无法使用的。不过如今大部分设备(如 Windows 11、手机、平板)都支持Direct Play,Jellyfin会选择直接播放,不会启用硬件加速来转码。所以如果你用win10比较多的话,保留直通独享就好了。

    校验提示文案

    提交
    还有5条回复
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章

值得隆咚锵

值!值!值! 哟!哟!哟! 一起High起来!Put Your Hands Up! 分享最新数码科技,评测智能设备,探索未来科技趋势

关注 打赏
最新文章 热门文章
10
扫一下,分享更方便,购买更轻松