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.soはどの Debian Buster パッケージでも提供されていないことは承知しています。i965_drv_video.soとを使用しようとしましたiHD_drv_video.soが、vainfo「init に失敗しました」と報告されます。これは、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は、以下のOSでのみサポートされているようです。Intel® GMA X4500HD以上あなたのインテル GMA900以前のバージョンのみをサポートする可能性がありますX-ビデオモーション補正(XvMC)。

また、利用可能なビデオアクセラレーションはMPEG-2に限定されているようです。DVDの再生は可能ですが、ブルーレイや最新のWebビデオ用のハードウェアアクセラレーションは利用できません。インテル GMA900Wikipedia情報:

以前の Intel 統合グラフィックス パーツと同様に、GMA 900 は MPEG-2 モーション補正、カラー スペース変換、および DirectDraw オーバーレイのハードウェア サポートを備えています。

Arch LinuxにはXvMCに関する情報がいくつかある、しかし、私は見つけることができるDebianに関する曖昧なフォーラム投稿

答え2

実際にはi915は存在しません。これはカーネルドライバーの名前に過ぎません。同じ巨大なi915.koドライバーが、過去17年ほどの間に作られたすべてのIntel GPUを扱っています。なしオリジナルの Intel GMA 9xx シリーズ (HD グラフィックスより数世代前) を除くそれらのほとんどは、実際には「i915」と呼ばれています。

しかし、名前は似ている、ただし、カーネル ドライバーとさまざまな種類のユーザー空間ドライバーは同一ではないため、カーネル側では i915.ko が表示され、VAAPI では i965.so が表示されるのは完全に正常です。

たとえば、Mesa プロジェクトには、さまざまな世代の Intel GPU 用に個別の DRI ドライバーi915_dri.soi965_dri.so(およびcrocus_dri)がありiris_dri、これら 4 つはすべてカーネル側で i915.ko と通信することを想定しています。

VA-APIについても同様です。VA i965_drv_video.so-APIドライバこれはほとんどの古い Intel GPU には正しいものですが、iHD_drv_video.soSkylake 以降には正しいものです。ただし、それらはすべて i915.ko カーネル ドライバーを使用します。

(私が知る限り、i915_drv_video.soは存在しない。実際の「i915」GPU にはビデオ デコードの高速化がまったくありませんでした。

関連情報