Debian 中 i915 硬件上的 VA-API

Debian 中 i915 硬件上的 VA-API

我有一台旧的 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.soDebian Buster 软件包不提供 。我尝试使用i965_drv_video.soiHD_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 叠加。

Arch Linux 有一些关于 XvMC 的信息但我只能找到有关 Debian 的模糊论坛帖子

答案2

你实际上没有 i915——这只是内核驱动程序的名称;同样的巨型i915.ko驱动程序处理过去 17 年左右制造的所有英特尔 GPU,尽管没有任何除了原始的 Intel GMA 9xx 系列(比 HD Graphics 早几代)之外,其他系列实际上都被称为“i915”。

然而,命名只是相似的,但内核驱动程序和各种类型的用户空间驱动程序之间并不相同,因此在内核端看到 i915.ko 但在 VAAPI 中看到 i965.so 是完全正常的。

例如,Mesa 项目针对不同代的英特尔 GPU 拥有单独的 DRI 驱动程序i915_dri.soi965_dri.so(以及crocus_driiris_dri)——所有这四个都需要在内核端与 i915.ko 对话。

VA-API 也是如此;i965_drv_video.soVA-API 驱动程序对于大多数较旧的英特尔 GPU 来说,这是正确的,而iHD_drv_video.so对于 Skylake 及更高版本来说,但它们仍将使用 i915.ko 内核驱动程序。

(据我所知,没有 i915_drv_video.so,因为实际的“i915” GPU 根本没有加速视频解码。)

相关内容