
我有一台舊的 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 僅支援英特爾® GMA X4500HD 及更高版本而你的英特爾GMA900可能只支持以前的化身稱為X 視訊運動補償(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 專案針對不同代的 Intel GPU 有單獨的 DRI 驅動程式i915_dri.so
和i965_dri.so
(以及crocus_dri
和iris_dri
)——所有四個驅動程式都希望在核心端與 i915.ko 進行通訊。
VA-API 也是如此; VA i965_drv_video.so
-API 驅動程式是對於大多數較舊的 Intel GPU 來說,正確的驅動程式是正確的,而iHD_drv_video.so
對於 Skylake 及更高版本來說是正確的,但它們仍然會使用 i915.ko 核心驅動程式。
(據我所知,沒有 i915_drv_video.so 因為實際的「i915」GPU 根本沒有加速視訊解碼功能。