{"id":13611171,"url":"https://github.com/cyberus-technology/virtualbox-kvm","last_synced_at":"2026-04-04T10:52:56.425Z","repository":{"id":221776980,"uuid":"744515892","full_name":"cyberus-technology/virtualbox-kvm","owner":"cyberus-technology","description":"KVM Backend for VirtualBox. With our current development model, we cannot easily accept pull requests here. If you'd like to contribute, feel free to reach out to us, we are happy to find a solution.","archived":false,"fork":false,"pushed_at":"2026-02-01T11:24:21.000Z","size":210025,"stargazers_count":1103,"open_issues_count":6,"forks_count":124,"subscribers_count":31,"default_branch":"dev","last_synced_at":"2026-04-04T10:52:48.704Z","etag":null,"topics":["gpu-virtualization","kvm","linux","virtualbox","virtualization"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cyberus-technology.png","metadata":{"files":{"readme":"README.intel-sriov-graphics.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"cyberus-technology"}},"created_at":"2024-01-17T13:11:20.000Z","updated_at":"2026-04-03T11:37:54.000Z","dependencies_parsed_at":"2024-03-25T11:52:27.892Z","dependency_job_id":"99452b0e-25ec-48c3-8ab3-8352be9813d8","html_url":"https://github.com/cyberus-technology/virtualbox-kvm","commit_stats":null,"previous_names":["cyberus-technology/virtualbox-kvm"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/cyberus-technology/virtualbox-kvm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberus-technology%2Fvirtualbox-kvm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberus-technology%2Fvirtualbox-kvm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberus-technology%2Fvirtualbox-kvm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberus-technology%2Fvirtualbox-kvm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cyberus-technology","download_url":"https://codeload.github.com/cyberus-technology/virtualbox-kvm/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cyberus-technology%2Fvirtualbox-kvm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31397055,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gpu-virtualization","kvm","linux","virtualbox","virtualization"],"created_at":"2024-08-01T19:01:52.484Z","updated_at":"2026-04-04T10:52:56.398Z","avatar_url":"https://github.com/cyberus-technology.png","language":null,"readme":"# Introduction\n\nThis document describes how to setup and use Intel SR-IOV graphics\nvirtualization with the KVM backend for VirtualBox. The hardware graphics\nacceleration is not integrated in the GUI yet and requires manual setup. Yet, we\ndeem it good enough for people to try this.\n\nThis is a feature which is currently under active development, everything noted here should be\nconsidered experimental.\n\n**Note**: [dev-20240828](https://github.com/cyberus-technology/virtualbox-kvm/releases/tag/dev-20240828) was the last\nrelease of our KVM backend supporting SR-IOV graphics. Make sure to use that for SR-IOV graphics experiments.\n\n# Requirements\n\n- Intel CPU with SR-IOV graphics support\n   - [Intel Knowledge Base Article]( https://www.intel.com/content/www/us/en/support/articles/000093216/graphics/processor-graphics.html#primary-content)\n- Ubuntu 22.04 as host OS\n- VT-d must be enabled in BIOS.\n- IOMMU must be enabled in the host Linux kernel.\n- A Windows 10 or Windows 11 VM with __all__ updates installed\n- Make sure the SR-IOV capability is present:\n    - `lspci | grep VGA`, remember the BDF for the device, we use 0:2.0 in this tutorial\n    - `sudo lspci -s 0:2.0 -v | grep SR-IOV`\n\n# Host Setup\n\nThe host needs a special Linux kernel which includes the SR-IOV graphics patches from Intel. These patches\nhave not been upstreamed yet. In addition, the kernel needs to be booted with custom command line\noptions in order for SR-IOV graphics to function properly.\n\n## Installation with pre-built kernel packages\n\nWe currently don't provide binary kernel packages. You can find older versions\nfor quick testing in a [previous\nrelease](https://github.com/cyberus-technology/virtualbox-kvm/releases/tag/dev-20240307). Note\nthat these packages are built for Ubuntu 22.04 and have not been tested with any\nother Linux distribution. These images are not signed.\n\n## Installation with self-compiled kernel\n\n- `sudo apt install flex bison elfutils dwarves dpkg-dev debhelper libelf-dev`\n- `mkdir kernel-intel-sriov`\n- `cd kernel-intel-sriov`\n- `git clone https://github.com/intel/linux-intel-lts.git --branch lts-v6.6.15-linux-240219T085932Z --single-branch`\n- `cd linux-intel-lts`\n- `make olddefconfig`\n- execute:\n    - `scripts/config --disable SYSTEM_TRUSTED_KEYS`\n    - `scripts/config --disable SYSTEM_REVOCATION_KEYS`\n- `make deb-pkg LOCALVERSION=\"-sriov\" -j$(nproc)`\n- `cd ..`\n- `sudo dpkg -i *.deb`\n\n## Preparing the Linux kernel for SR-IOV graphics\n\n- Edit `/etc/defaults/grub`\n- Add `i915.enable_guc=3 i915.max_vfs=7 split_lock_detect=off` to `GRUB_CMDLINE_LINUX`\n- Set `GRUB_DEFAULT` to `Advanced options for Ubuntu\u003eUbuntu, with Linux 6.6.15-sriov`\n- Execute `update-grub` as root\n- Edit `/etc/security/limits.conf` (required because VFIO needs more locked memory than configured as default)\n\t- add:\n\t  - `*  soft  memlock  unlimited`\n\t  - `*  hard  memlock  unlimited`\n- Reboot\n\n## Verify Host Setup\n\nMake sure you have booted the correct Linux kernel; `uname -r` should provide the following output: `6.6.15-sriov`.\nCheck `sudo dmesg` for the following output which indicates that SR-IOV has been set up successfully:\n\n```\ni915 0000:00:02.0: enabling device (0006 -\u003e 0007)\ni915 0000:00:02.0: Running in SR-IOV PF mode\ni915 0000:00:02.0: [drm] VT-d active for gfx access\n```\n\n# Setting up the vGPUs\n\n- Execute the following commands as root:\n    - `lspci | grep VGA`, remember the BDF for the device, we use 0:2.0 in this tutorial\n    - `lspci -s 0:2.0 -n`, remember device/vendor id\n    - `echo \"\u003cvendor-id\u003e \u003cdevice-id\u003e\" \u003e /sys/bus/pci/drivers/vfio-pci/new_id`\n    - `echo 7 \u003e /sys/class/drm/card0/device/sriov_numvfs`\n    - `lspci -v -s 0:2.1`, verify vfio-pci driver is in use\n    - `chmod 0666 /dev/vfio/*`\n\n# Configuring vGPUs\n\n- Configure ICH9 Chipset: `VBoxManage modifyvm \u003cvm name\u003e --chipset=ICH9`\n- Attach the vGPU: `VBoxManage modifyvm \u003cvm name\u003e --attachvfio /sys/bus/pci/devices/0000\\:00\\:02.1` (no trailing slash)\n- Change display adapter: `VBoxManage modifyvm \u003cvm name\u003e --graphicscontroller vga-virtiogpu`\n- Boot the VM\n- Verify that there are 2 new display adapters in device manager\n- Install latest Intel GPU driver or wait for Windows to install it automatically\n- Verify in Task Manager that GPU0 is present (Performance Tab)\n- Download and extract [the Intel Display Virtualization Drivers](https://www.intel.com/content/www/us/en/download/806254/nswe-display-virtualization-drivers-for-meteor-lake-ps-pv-meteor-lake-u-h-pv-and-raptor-lake-ps-beta.html)\n- Open Powershell as Admin\n- Change the execution policy: `Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser`\n- Execute `DVInstaller.ps1`\n- VM will reboot\n- Verify in Device Manager that both \"Intel Iris Xe Graphics\" and \"DVServerUMD\" are present in display adapters\n- Enjoy your GPU-accelerated VM ;)\n\n# Limitations\n\n- Host suspend/resume while GPU acceleration is in use is unsupported and will result in broken VM graphics\n- PIIX3 chipset is unsupported\n- Multiple virtual monitors are unsupported\n- Automatic display resizing is not supported\n\n# Troubleshooting\n\n- A vGPU can be removed from a VM via:\n    - `VBoxManage modifyvm \u003cvm name\u003e --detachvfio /sys/bus/pci/devices/0000\\:00\\:02.1` (no trailing slash)\n    - `VBoxManage modifyvm \u003cvm name\u003e --graphicscontroller vboxsvga`\n- After host suspend/resume, the graphics may recover when pressing `Win + Ctrl + Shift + B`. Some windows may stay black, in which case minimizing/maximizing may fix the problem.\n","funding_links":["https://github.com/sponsors/cyberus-technology"],"categories":["Resources and Solutions","Others"],"sub_categories":["Virtualization"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyberus-technology%2Fvirtualbox-kvm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcyberus-technology%2Fvirtualbox-kvm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcyberus-technology%2Fvirtualbox-kvm/lists"}