Skip to content

About

Fork of cyberus-technology/usbvfiod: virtual USB 2.0 hubs at port paths, devices served by another process, QEMU vfio-user-pci and Windows 11 guests

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Repository files navigation

Hercules CI

usbvfiod

This is a fork of cyberus-technology/usbvfiod, not affiliated with or supported by Cyberus Technology. It adds virtual USB 2.0 hubs with devices at port paths (Hubs and Port Paths), devices that another process serves (External Devices), QEMU's vfio-user-pci client (Using usbvfiod with QEMU) and what Windows 11 guests need (Windows Guests). A release holds static x86_64 Linux binaries of usbvfiod and remote: gh release download -R infinitygp/usbvfiod -p 'usbvfiod-*.tar.gz', unpack it and run ./install.sh, which puts them into ~/.local/bin. To build it from source, run cargo install --locked --git https://github.com/infinitygp/usbvfiod usbvfiod. The changes of the fork are licensed like upstream, under MIT or Apache-2.0. The rest of this README is upstream's.

usbvfiod is a Rust-based tool designed to enable USB device passthrough to Cloud Hypervisor virtual machines using the vfio-user protocol. Other VMMs might also work, but are currently not the main target.

This project is under active development. We are planning to work on this project in the following order:

  1. Validating our Assumptions (Done)
    • We are looking for suitable libraries to use and finalize our design.
  2. Towards USB Storage Passthrough (Done)
    • We build up a virtual XHCI controller and the necessary plumbing to pass-through USB devices from the host.
    • Our initial test target will be USB storage devices.
  3. Broaden Device Support (Done)
    • We broaden the set of USB devices we support and actively test.
    • Our current focus is enabling USB-2 devices and devices with interrupt endpoints.
  4. Hotplug Devices (Done)
    • We enable attach and detach of exposed devices during runtime.
  5. Stability & Error Recovery (Done)
    • We seek out points where we currently panic but should not have to panic.
  6. Windows Guest Support (🚧 Ongoing 🚧)
    • Enable all features required for the Windows xHCI driver to interact with devices through the controller.
  7. Everything Beyond
    • Many topics remain open. We stay flexible regarding upcoming features.
    • Missing features include isochronous endpoint support, non-Linux Host support, and support for other VMMs than Cloud Hypervisor.

If you want to use this code in production and need professional support, please get in touch.

Documentation

Find the overview of documentation here.

Funding

This open-source project was developed within the Edge Gateway Platform project and is sponsored by secunet Security Networks AG. This project has received public funding from the European Union NextGenerationEU within the Important Project of Common European Interest – Cloud Infrastructures and Services (IPCEI-CIS) under grant agreement 13IPC022.

Bundesministerium für Wirtschaft und Energie (BMWE)-EU and secunet funding logo

About

Fork of cyberus-technology/usbvfiod: virtual USB 2.0 hubs at port paths, devices served by another process, QEMU vfio-user-pci and Windows 11 guests

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages