我有一台旧的 Atom 笔记本电脑(VGA 设备 ID 22B1),我想将它用作视频播放器。我隐约记得很多年前我曾经使用 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
and 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"
您实际上并没有 i915——这只是内核驱动程序的名称;同一个巨型
i915.ko
驱动程序可以处理过去约 17 年左右制造的所有英特尔 GPU,尽管除了最初的英特尔 GMA 9xx 系列(比你的高清显卡早几代)实际上没有一个被称为“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 根本没有加速视频解码。)
看来 VAAPI 仅在英特尔® GMA X4500HD 及更高版本上受支持,而您的英特尔 GMA900可能仅支持称为X 视频运动补偿(XvMC) 的先前版本。
听起来任何可用的视频加速都仅限于 MPEG-2。虽然您将能够播放 DVD,但您将没有蓝光和现代网络视频的硬件加速。来自英特尔 GMA900维基百科信息:
Arch Linux 有一些关于 XvMC的信息,但我只能找到关于 Debian 的模糊论坛帖子。