我在 Windows 11 下使用 WSL2 运行 Ubuntu 20.04.5,并尝试解决(并自我教育)与显示内核模块(我理解为设备驱动程序的 Linux 等效项)有关的问题。
我正在尝试从 Linux 终端在 Mplayer 和 VLC 上运行本地视频(一个.avi
和一个.mp4
)。两者都可以运行,但效果不佳,有很多断断续续的情况。
如果我从 Windows 运行相同的视频,它们运行完美。
我的显示驱动程序(从 Windows 11 来看)是Intel Iris Xe 版本 31.0.101.4091这是最新版本。
回复类似帖子询问Ubuntu问题是内核模块存储在 /lib/modules 中,但是当我查看该目录时,它是空的。
edablin@EdsSamsungLaptop:/lib/modules$ ls -alF
total 16
drwxr-xr-x 2 root root 4096 Apr 23 2020 ./
drwxr-xr-x 146 root root 12288 Feb 19 08:45 ../
edablin@EdsSamsungLaptop:/lib/modules$
edablin@EdsSamsungLaptop:/lib/modules$ ls -R /lib/modules/$(uname -r)/kernel/
ls: cannot access '/lib/modules/5.15.79.1-microsoft-standard-WSL2/kernel/': No such file or directory
这是我的机器:
处理器 第 11 代英特尔® 酷睿™ i7-1165G7 @ 2.80GHz 2.80 GHz
已安装 RAM 16.0 GB(可用 15.7 GB)
系统类型 64位操作系统,基于x64的处理器
版本 Windows 11 家庭版
版本 22H2
安装于 2023/02/14
操作系统内部版本 22621.1265
以下是我试图理解的一些回应:
[VO_XV] It seems there is no Xvideo support for your video card available.
[VO_XV] Run 'xvinfo' to verify its Xv support and read
[VO_XV] DOCS/HTML/en/video.html#xv!
[VO_XV] See 'mplayer -vo help' for other (non-xv) video out drivers.
[VO_XV] Try -vo x11.
和
************************************************
**** Your system is too SLOW to play this! ****
************************************************
那么,我认为显示内核模块不存在是因为 Windows 负责处理显示的设备驱动程序,这样对吗?有人能给我指出关于你的显卡不支持 Xvideo消息。如果没有解决方案,请告诉我需要去哪里查找。谢谢
答案1
所以我是否可以正确地认为显示内核模块不存在,因为 Windows 负责显示的设备驱动程序?
是的,有点。WSLg 中的“显示”实际上是 Wayland/XWayland/Weston 实现,它输出到 RDP(远程桌面协议),而不是物理显示器。是的,因为 RDP客户正在运行视窗,处理实际输出的是 Windows 驱动程序。
WSL 在启动时还会将一些库挂载到 Ubuntu 中,这些库可提供与 GPU 的一些交互。您可以在 中找到这些库/usr/lib/wsl/lib
。这些库与 Windows 端的等效 DLL 和驱动程序进行通信,以使 Windows GPU 功能可供 Ubuntu 使用。
虽然这些通常是用于 GPU 计算任务,但我也遇到过这则趣闻其中提到了最近添加的 GPU 加速视频解码(以及更多)。我还没有机会尝试这一点或深入了解细节。
/lib/modules 中没有显示内核模块
另请注意,默认的 WSL2 内核具有全部驱动程序静态编译,没有可加载模块。您可以使用以下命令查看当前正在使用的内核配置:
zless /proc/config.gz
no Xvideo support for your video card
有人能给我指出这条消息的正确方向吗
据我所知,这仅仅意味着 XVideo X 扩展在用于 WSLg 的 RDP 后端中不可用。
然而,RDP 后端做支持 OpenGL 加速,因此您可能找到更好的结果:
mplayer -vo gl <filename>
后端-vo sdl
也可能是一种可能性,但请注意,Mplayer 手册页说 SDL 后端“有缺陷/过时”。
也许还值得尝试一下mpv
,它是支持 Mesa 图形的 Mplayer 的一个分支。
Your system is too SLOW to play this!
不幸的是,我无法在我的系统上使用 2070 Super 重现这种情况,但是它(从我在基准评级中看到的情况来看)比 Iris Xe 快 5 倍左右。
但是,希望使用不同的输出后端和/或硬件加速视频解码(使用最新的 1.1.0 或更高版本的 WSL 和合适的播放器),您将能够克服这个问题。