之前看到了论坛中另一篇帖子介绍同配置的路子,因此产生了继续优化完善的想法;
https://club.fnnas.com/forum.php?mod=viewthread&tid=35522&highlight=
本篇尝试全程使用iflow自动化操作,严谨抄作业,并不能保证每一步的正确性,过程仅供参考!!!
大佬可尝试将这篇转为正式教程,最近市面上amd成品nas相比intel的多得多,希望官方也尽快在官方系统中修复。
正片开始
第一步
首先根据原帖说明,先实现在飞牛中能选择到的,这一步同样使用iflow自动修复;
通过提示让AI根据本机配置检查并更新gpu驱动,总结为第一篇文档
VAAPI 硬件加速配置指南
系统环境
| 项目 |
信息 |
| 系统 |
Debian 12 (bookworm) |
| 内核 |
6.12.18-trim |
| CPU/GPU |
AMD Ryzen AI 9 HX PRO 370 with Radeon 890M |
| Mesa 初始版本 |
22.3.6 |
问题诊断
症状
vainfo
# 输出错误:
# amdgpu: unknown (family_id, chip_external_rev): (150, 20)
# vaInitialize failed with error code 2 (resource allocation failed)
原因分析
| 问题 |
说明 |
| GPU 过新 |
Radeon 890M (gfx1150) 是 2024 年新品,旧版 Mesa 不支持 |
| 驱动版本过低 |
Mesa 22.3.6 不包含 gfx1150 支持 |
| 库路径冲突 |
/usr/trim/lib/mediasrv/ 存在旧版本库,优先级高于系统库 |
解决方案
步骤 1:升级 Mesa 驱动
从 Debian backports 安装新版 Mesa:
apt install -t bookworm-backports mesa-va-drivers mesa-vulkan-drivers -y
升级结果:
- Mesa 版本:22.3.6 → 25.0.7
- libdrm 版本:2.4.114 → 2.4.123
步骤 2:替换旧驱动文件
系统存在旧版本库路径 /usr/trim/lib/mediasrv/,需要替换:
# 替换 VAAPI 驱动
cp /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so \
/usr/trim/lib/mediasrv/dri/radeonsi_drv_video.so
替换 libdrm_amdgpu 库
cp /usr/lib/x86_64-linux-gnu/libdrm_amdgpu.so.1.123.0
/usr/trim/lib/mediasrv/libdrm_amdgpu.so.1.0.0
步骤 3:设置环境变量
export XDG_RUNTIME_DIR=/tmp/runtime-root
mkdir -p $XDG_RUNTIME_DIR
验证结果
vainfo
成功输出:
vainfo: VA-API version: 1.22 (libva 2.12.0)
vainfo: Driver version: Mesa Gallium driver 25.0.7-2~bpo12+1
for AMD Radeon Graphics (radeonsi, gfx1150, ACO, DRM 3.61, 6.12.18-trim)
支持的编解码格式
| 格式 |
解码 (VLD) |
编码 (EncSlice) |
| H.264 (AVC) |
✓ |
✓ |
| HEVC (H.265) |
✓ |
✓ |
| HEVC 10-bit |
✓ |
✓ |
| VP9 |
✓ |
- |
| VP9 10-bit |
✓ |
- |
| AV1 |
✓ |
✓ |
| JPEG |
✓ |
- |
| 视频后处理 (VideoProc) |
✓ |
- |
FFmpeg 使用示例
环境准备
export XDG_RUNTIME_DIR=/tmp/runtime-root
export LIBVA_DRIVER_NAME=radeonsi
export LIBVA_DRIVERS_PATH=/usr/lib/x86_64-linux-gnu/dri
H.264 硬件编码
ffmpeg -i input.mp4 -c:v h264_vaapi -bf 0 output_h264.mp4
HEVC 硬件编码
ffmpeg -i input.mp4 -c:v hevc_vaapi output_hevc.mp4
HEVC 10-bit 编码
ffmpeg -i input.mp4 -c:v hevc_vaapi -profile:v main10 output_hevc10.mp4
AV1 硬件编码
ffmpeg -i input.mp4 -c:v av1_vaapi output_av1.mkv
硬件解码 + 硬件编码
ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 \
-i input.mp4 -c:v hevc_vaapi output.mp4
常见问题
Q: vainfo 报错 "can't connect to X server"
A: 这是警告信息,可忽略。在无头环境中 VAAPI 仍可正常工作。
Q: 编码时报错 "failed to encode"
A: 确保已设置环境变量:
export XDG_RUNTIME_DIR=/tmp/runtime-root
Q: 性能不如预期
A: 检查电源管理模式,确保 GPU 处于高性能状态:
cat /sys/class/drm/card0/device/power_dpm_force_performance_level
# 如需高性能模式:
echo high > /sys/class/drm/card0/device/power_dpm_force_performance_level
文件变更记录
| 文件路径 |
操作 |
/usr/trim/lib/mediasrv/dri/radeonsi_drv_video.so |
替换为新版本 |
/usr/trim/lib/mediasrv/libdrm_amdgpu.so.1.0.0 |
替换为新版本 |
参考信息
- Mesa 版本:25.0.7
- VA-API 版本:1.22
- GPU 架构:gfx1150 (RDNA 3.5)
- 驱动:radeonsi (ACO 编译器)
第二步
通过上述指令修复后,如原帖所说,可以在飞牛影视中设置开启硬件加速,但实际播放时选择硬件编码会出现开启硬件加速失败的提示,因此继续通过AI分析系统日志尝试多种修复方案;

最后尝试一种“彻底放手”的方法后,AI最终定位到了问题;通过飞牛的日志工具导出系统日志,并且将iflow定位到日志目录下,让自行分析所有日志文件;
查询当前目录gpu转码失败的相关日志并分析

最终总结出如下文档
视频转码失败问题 - 修复总结
一、问题现象
时间:2026年2月26日 12:16 以后
错误信息:
[error] av_hwdevice_ctx_create_derived error, device type vulkan, device /dev/dri/renderD128
[error] [ffmpeg] errno -19, msg 'No such device'
[error] init_video_stream_map error, errcode 68157450
错误来源:services/mediasrv.log
二、根本原因
| 项目 |
说明 |
| GPU |
AMD Radeon 890M (gfx1150) - 较新款显卡 |
| 问题 |
mediasrv 自带的 Vulkan 驱动版本过旧 |
| 具体原因 |
/usr/trim/lib/mediasrv/libvulkan_radeon.so 不识别 gfx1150 |
错误根源:
amdgpu: unknown (family_id, chip_external_rev): (150, 20)
三、诊断过程
3.1 系统环境
- CPU: AMD Ryzen AI 9 HX PRO 370
- GPU: Radeon 890M (gfx1150, family_id=150, chip_rev=20)
- 内核驱动: amdgpu 3.61.0 ✅ 正常加载
- 内核版本: 6.12.18-trim
3.2 验证测试
| 测试环境 |
结果 |
| 系统 Vulkan |
✅ 正常识别 AMD Radeon Graphics (RADV GFX1150) |
| mediasrv Vulkan 库 |
❌ 报错 unknown (family_id, chip_external_rev): (150, 20) |
3.3 文件对比
| 文件 |
大小 |
MD5 |
状态 |
系统 /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so |
13,851,832 字节 |
0ed6b7eb77fa8d5b27a5999ad036c68a |
✅ 支持 gfx1150 |
mediasrv /usr/trim/lib/mediasrv/libvulkan_radeon.so |
11,717,776 字节 |
**099c15455929ceff4ae05df2ad2d |
❌ 不支持 gfx1150 |
四、修复方案
4.1 修复步骤
# 1. 备份原文件
cp /usr/trim/lib/mediasrv/libvulkan_radeon.so /usr/trim/lib/mediasrv/libvulkan_radeon.so.bak
2. 替换为系统驱动
cp /usr/lib/x86_64-linux-gnu/libvulkan_radeon.so /usr/trim/lib/mediasrv/libvulkan_radeon.so
3. 重启服务
systemctl restart mediasrv
4.2 验证结果
修复后 Vulkan 正确识别 GPU:
deviceName = AMD Radeon Graphics (RADV GFX1150)
driverID = DRIVER_ID_MESA_RADV
driverInfo = Mesa 25.0.7-2~bpo12+1
五、回滚方法
如需回滚修复:
cp /usr/trim/lib/mediasrv/libvulkan_radeon.so.bak /usr/trim/lib/mediasrv/libvulkan_radeon.so
systemctl restart mediasrv
六、附加信息
6.1 相关日志文件
services/mediasrv.log - mediasrv 主日志,包含转码错误
system/vainfo.log - VA-API 支持信息
system/syslog - 系统日志,包含 amdgpu 驱动信息
6.2 系统状态
- VA-API: ✅ 正常工作
- Vulkan (系统): ✅ 正常工作
- Vulkan (mediasrv): ✅ 修复后正常
修复日期:2026-02-26
上述执行完成后,重新尝试影视播放硬解成功!

