Git Product home page Git Product logo

evdi's Introduction

Extensible Virtual Display Interface

Build Status

The Extensible Virtual Display Interface (EVDI) is a Linux® kernel module that enables management of multiple screens, allowing user-space programs to take control over what happens with the image. It is essentially a virtual display you can add, remove and receive screen updates for, in an application that uses the libevdi library.

The project is part of the DisplayLink Ubuntu development which enables support for DisplayLink USB 3.0 devices on Ubuntu. Please note that this is NOT a complete driver for DisplayLink devices. For more information and the full driver package, see DisplayLink Ubuntu driver.

This open-source project includes source code for both the evdi kernel module and a wrapper libevdi library that can be used by applications like DisplayLink's user mode driver to send and receive information from and to the kernel module.

How to use

See libevdi API documentation for details.

EVDI is a driver compatible with a standard Linux DRM subsystem. Due to this, displays can be controlled by standard tools, eg. xrandr or display settings applets in graphical environments eg. Unity, Gnome or KDE.

Minimum supported kernel version required is 4.2. DisplayLink have checked the module compiles and works with Ubuntu variants of kernels up to 4.20. Although other vanilla Linux kernel sources are used for Travis CI job, newer kernels, or kernel variants used by other distributions may require extra development. Please see below to see how you can help.

Future Development

This is a first release. DisplayLink are open to suggestions and feedback on improving the proposed architecture and will gladly review patches or proposals from the developer community. Please find a current list of areas we identify as requiring attention below.

  • Compatibility with distributions other than Ubuntu 16.04/18.04 LTS is not verified. Please let us know if you make it work on other distros - pull requests are welcome!
  • The communication between the EVDI kernel module and the wrapper libevdi library is not access-controlled or authenticated. This could be improved in future releases, making it harder to compromise the data EVDI is sending and receiving.
  • EVDI kernel module driver is currently a platform_driver, for multiple reasons; most importantly because virtual displays are not discoverable, i.e. cannot be enumerated at the hardware level. EVDI is also a generic device, not tied to any particular kind of device, transport layer or a bus.

Licensing

Please refer to the LICENSE information in module and library subfolders of this project.

More information

For more information, see our support page. Visit displaylink.com to learn more about DisplayLink technology.

© Copyright 2015-2019 DisplayLink (UK) Ltd.

Linux is a registered trademark of Linus Torvalds in the U.S. and other countries.

evdi's People

Contributors

displaylink-dkurek avatar displaylink-mlukaszek avatar daxtens avatar christianpasin avatar ajbogh avatar hadess avatar noraj avatar daugustin avatar edwardbetts avatar jkramarz avatar mateusduboli avatar thedrow avatar mrtsjolder avatar r-d-t avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.