613 字
3 分钟
一次 Intel iGPU 硬件编码失效的排查:GuC / HuC / firmware 才是关键
前言
鄙人最近开始优化Homelab架构,打算做算存分离,遂把Jellyfin等容器开始移向我的N5095小主机上,但存在无法硬件编码的情况,排查了一下午,换了许多的镜像都无法成功,故折腾了一翻,才有了这篇文章,旨在帮助后人在再次遇到此类问题时能有些许帮助
正文
环境
硬件平台:
- CPU:Intel Jasper Lake N5095(Gen11 iGPU)
- 无独显
系统环境:
- Debian 13 (trixie)
- Kernel: 6.12.x
- Docker + docker-compose
服务:
- Jellyfin(nyanmisaka/jellyfin)
- 使用 QSV / VAAPI 硬件转码
现象描述
鄙人在转移服务时,发现同一套Jellyfin配置下,在QNAP-464C2(同样也是N5095)上可以正常运行硬件编码,但是在Debian13上无法播放,FFmpeg日志中只有一句:
FFmpeg exited with code 234在尝试关闭硬件编码后,一切正常,但性能很烂,QSV解码+软件编码在4K80Mbps HDR10 转码20Mbps SDR色调映射时转码帧率只有20,而且CPU打满影响其他容器,这肯定是无法满足正常需求的 已经确定的是:
- QSV解码能正常运行
/dev/dri/renderD128在容器中是存在的vainfo在容器中也是正常的intel_gpu_top也能正常看到有调用
一切都指向硬件解码是完好的,但硬件编码就是无法正常使用
突破点
我在QNAP上排查到这一步时:
sudo dmesg | grep -i gucsudo dmesg | grep -i huc结果中有部分是这样的:
[ 5.960585] [drm] GuC communication enabled[ 5.971545] i915 0000:00:02.0: [drm] GuC firmware i915/ehl_guc_33.0.4.bin version 33.0 submission:disabled[ 5.982316] i915 0000:00:02.0: [drm] HuC firmware i915/ehl_huc_9.0.0.bin version 9.0 authenticated:yes然后我在Debian上敲了一样的命令,发现什么都没有,感觉完全没有加载 查询了一下,Debian没有安装Intel的非自由固件
解决方案
- 安装固件包
sudo apt updatesudo apt install firmware-misc-nonfree firmware-intel-misc- 装完后查看
ls /lib/firmware/i915/ | grep ehl应当能看到
ehl_guc_70.1.1.binehl_huc_9.0.0.bin- 修改GRUB,添加
i915.enable_guc=3
GRUB_CMDLINE_LINUX_DEFAULT="quiet i915.enable_guc=3"- 更新GRUB并重启
sudo update-grubsudo reboot- 重启后再次查看dmesg,应当看到类似以下的内容
[ 34.982106] Setting dangerous option enable_guc - tainting kernel[ 36.726000] i915 0000:00:02.0: [drm] GT0: GuC firmware i915/ehl_guc_70.1.1.bin version 70.1.1[ 36.742212] i915 0000:00:02.0: [drm] GT0: GUC: submission enabled[ 36.742214] i915 0000:00:02.0: [drm] GT0: GUC: SLPC disabled[ 36.726021] i915 0000:00:02.0: [drm] GT0: HuC firmware i915/ehl_huc_9.0.0.bin version 9.0.0[ 36.741869] i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloadsJellyfin配置参考
docker-compose.yml:
services: jellyfin: image: nyanmisaka/jellyfin:latest container_name: Jellyfin privileged: true network_mode: host restart: unless-stopped devices: - /dev/dri/renderD128:/dev/dri/renderD128 volumes: - ./config:/config - ./cache:/cache - ./media:/media - /etc/localtime:/etc/localtime:ro environment: - TZ=Asia/Shanghaijellyfin:

一次 Intel iGPU 硬件编码失效的排查:GuC / HuC / firmware 才是关键
https://blog.zhenxuna.cn/posts/post-11/分享文章
生成精美分享图或复制链接,与更多人分享本文。
继续浏览
换条路线
从其他文章中稳定抽取
最后更新于 ,距今已过 4 天
部分内容可能已过时