我有一台旧的 Atom 笔记本电脑(VGA 设备 ID22B1),我想将其用作视频播放器。我依稀记得多年前我曾使用 Debian Stretch 加速视频,但我可能记错了。笔记本电脑目前安装了 Debian Buster,并i915.ko
加载了驱动程序,但 VA-API 拒绝工作:
user@machine:~/.config$ vainfo
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns -1
libva error: va_getDriverName() failed with unknown libva error,driver_name=(null)
vaInitialize failed with error code -1 (unknown libva error),exit
user@machine:~/.config$ LIBVADRIVERNAME=i915 vainfo
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns -1
libva info: User requested driver 'i915'
libva info: Trying to open /usr/lib/i386-linux-gnu/dri/i915_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
我知道i915_drv_video.so
Debian Buster 软件包不提供 。我尝试使用i965_drv_video.so
和iHD_drv_video.so
,但vainfo
报告“init failed”,考虑到我有 i915,这并不奇怪。
我不知道我有什么选择。升级到 Bullseye 值得一试吗?还是降级到 Stretch?据我所知,i915_drv_video.so
这些都不提供。
这是驱动程序的活动配置i915
:
user@machine:~/.config$ sudo systool -m i915 -av
Module = "i915"
Attributes:
coresize = "1331200"
initsize = "0"
initstate = "live"
refcnt = "3"
taint = ""
uevent = <store method only>
Parameters:
alpha_support = "N"
disable_display = "N"
disable_power_well = "1"
dmc_firmware_path = "(null)"
edp_vswing = "0"
enable_dc = "-1"
enable_dp_mst = "Y"
enable_dpcd_backlight= "N"
enable_fbc = "0"
enable_guc = "0"
enable_gvt = "N"
enable_hangcheck = "Y"
enable_ips = "1"
enable_ppgtt = "2"
enable_psr = "-1"
error_capture = "Y"
fastboot = "N"
force_reset_modeset_test= "N"
guc_firmware_path = "(null)"
guc_log_level = "0"
huc_firmware_path = "(null)"
invert_brightness = "0"
load_detect_test = "N"
lvds_channel_mode = "0"
mmio_debug = "0"
modeset = "-1"
nuclear_pageflip = "N"
panel_use_ssc = "-1"
prefault_disable = "N"
reset = "2"
vbt_firmware = "(null)"
vbt_sdvo_panel_type = "-1"
verbose_state_checks= "Y"
答案1
VAAPI 似乎仅支持Intel® GMA X4500HD 及以上版本虽然你的英特尔GMA900可能只支持以前的版本X-Video 运动补偿(XvMC)。
听起来好像可用的视频加速仅限于 MPEG-2。虽然你可以播放 DVD,但无法使用蓝光和现代网络视频的硬件加速。从英特尔GMA900维基百科信息:
与之前的英特尔集成显卡一样,GMA 900 硬件支持 MPEG-2 运动补偿、色彩空间转换和 DirectDraw 叠加。
答案2
你实际上没有 i915——这只是内核驱动程序的名称;同样的巨型i915.ko
驱动程序处理过去 17 年左右制造的所有英特尔 GPU,尽管没有任何除了原始的 Intel GMA 9xx 系列(比 HD Graphics 早几代)之外,其他系列实际上都被称为“i915”。
然而,命名只是相似的,但内核驱动程序和各种类型的用户空间驱动程序之间并不相同,因此在内核端看到 i915.ko 但在 VAAPI 中看到 i965.so 是完全正常的。
例如,Mesa 项目针对不同代的英特尔 GPU 拥有单独的 DRI 驱动程序i915_dri.so
和i965_dri.so
(以及crocus_dri
和iris_dri
)——所有这四个都需要在内核端与 i915.ko 对话。
VA-API 也是如此;i965_drv_video.so
VA-API 驱动程序是对于大多数较旧的英特尔 GPU 来说,这是正确的,而iHD_drv_video.so
对于 Skylake 及更高版本来说,但它们仍将使用 i915.ko 内核驱动程序。
(据我所知,没有 i915_drv_video.so,因为实际的“i915” GPU 根本没有加速视频解码。)