FreeBSD使用Intel显卡的Sway环境
我现在在 ThinkPad X220笔记本 笔记本上运行FreeBSD 15: 笔记本使用Intel内置的GPU,所以需要针对Intel显卡进行Sway适配
Sway环境初始化
默认在 FreeBSD Sway桌面 部署时已经完成如下安装步骤
Intel显卡VA-API库
为了加速 mpv 适配播放不卡顿且不占用过高CPU,需要配置 显卡硬件加速(VA-API)
早期Intel显卡(集成显卡),即Intel CPU第7代及更早,例如我的 ThinkPad X220笔记本 使用Intel Core i5-2410M Processor是第二代Sandy Bridge,安装
libva-intel-driver
libva-intel-driversudo pkg install libva-intel-driver
对于较新的Intel CPU(第 8 代以后),建议安装 libva-intel-media-driver
验证
安装
libva-utils软件包,并运行vainfo:
libva-utils 运行 vainfosudo pkg install libva-utils
vainfo
在没有安装 libva-intel-driver 之前, vainfo 显示缺乏驱动报错:
vainfo 显示缺乏驱动Trying display: wayland
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/local/lib/dri/iHD_drv_video.so
libva info: va_openDriver() returns -1
libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit
安装了 libva-intel-driver 之后, vainfo 就正确显示了支持度驱动版本:
vainfo 显示支持的Intel显卡Trying display: wayland
libva info: VA-API version 1.22.0
libva info: Trying to open /usr/local/lib/dri/iHD_drv_video.so
libva info: va_openDriver() returns -1
libva info: Trying to open /usr/local/lib/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_22
error: failed to resolve wl_drm_interface(): Undefined symbol "wl_drm_interface"
/usr/local/lib/dri/hybrid_drv_video.so init failed, got status -1.
Not using hybrid_drv_video.so
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.22 (libva 2.22.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Sandybridge Mobile - 2.4.4
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
注意,上述显示信息中:
libva info: va_openDriver() returns 0表明驱动加载成功VAProfileH264High : VAEntrypointVLD表明显卡支持H.264视频硬件解码wl_drm_interface是Wayland 下 DRM(直接渲染管理器)的一个旧接口,较新的 Wayland 合成器(如 Sway 使用的 wlroots)和 Mesa 库正在逐步淘汰这个接口,转而使用更现代的 linux-dmabuf 协议来传输数据由于我的 i5-2410M 属于第二代酷睿,使用的是 i965 驱动。这个驱动在尝试通过旧的 DRM 方式与 Wayland 通讯时找不到对应的符号
这个报错可以忽略。因为报错后,VA-API 会自动尝试其他路径,最终成功打开了驱动
备注
由于 i5-2410M 是一款 2011 年的处理器,仅支持 H.264 (AVC)、MPEG2、VC-1, 不支持 HEVC (H.265)、VP9、AV1。所以为了避免YouTube上观看4K视频(通常是 VP9 或 AV1 编码),可以在FireFox中安装 enhanced-h264ify 强制YouTube 只提供 H.264 格式的视频