Linux核外内核模块之EVDI
Linux核外内核模块之EVDI
概述
EVDI(Extensible Virtual Display Interface) :扩展虚拟显示接口是一个开源项目,它本质上是一个虚拟显示器,允许任何用户空间的Linux程序管理额外的显示器,并接收这些显示器的更新,为用户空间程序提供多屏管理和虚拟显示器控制功能。EVDI兼容标准Linux DRM子系统,可通过xrandr
等工具操作。该项目支持 DisplayLink USB 3.0 设备,最低要求Linux内核4.15版本,主要在Ubuntu系统上进行了测试。
这个开源项目包括evdi
内核模块和libevdi
库的源代码:
evdi
内核模块能够管理多个屏幕,允许用户空间程序控制图像的处理。libevdi
库可以被像 DisplayLink 这样的应用程序使用,以便与内核模块进行信息的发送和接收,支持添加、移除虚拟显示器及接收屏幕更新。
pyevdi
库是libevdi
的一个Python封装。
相关官方资料:
项目起源
EVDI is a project that was started by DisplayLink as a base for the development of DisplayLink’s Display driver for Ubuntu Linux, driving all current generation, USB 3.0 Universal Docking Stations and USB Display Adapters.
However, it soon became apparent that we’re making a generic interface that any other application could use - and that’s when DisplayLink decided to open-source the code and push it to GitHub.
EVDI是由DisplayLink启动的一个项目,作为开发Ubuntu Linux上DisplayLink显示驱动程序的基础,该驱动程序适用于所有当前USB 3.0通用扩展坞和USB显示适配器。
然而,很快我们意识到我们正在创建一个可以被任何其他应用程序使用的通用接口——这时DisplayLink决定将代码开源并推送到GitHub上。
使用
EVDI 是一个与标准 Linux DRM 子系统兼容的驱动程序。正因为如此,显示器可以通过标准工具进行控制,例如 xrandr 或图形环境中的显示设置小程序,如 Unity、Gnome 或 KDE。虚拟显示器也可以借助 pyevdi
创建。
EVDI模块最低支持的内核版本是 4.15
。DisplayLink 已验证该模块在 Ubuntu 内核版本最高到 6.15 的情况下可以编译并正常工作。
EVDI 通常与 DisplayLink 驱动程序结合使用,已经将其发布为 deb 软件包或与驱动程序配对的独立安装程序。访问 DisplayLink 页面(https://www.synaptics.com/products/displaylink-graphics/downloads/ubuntu)以获取最新版本。EVDI 并不是一个完整的 DisplayLink 设备驱动程序,要实现全部功能还需要完整的驱动程序。