{"id":16494541,"url":"https://github.com/portellam/deploy-vfio","last_synced_at":"2025-03-21T07:31:56.393Z","repository":{"id":47404820,"uuid":"487491542","full_name":"portellam/deploy-VFIO","owner":"portellam","description":"Effortlessly deploy changes to enable virtualization, hardware-passthrough (VFIO), and quality-of-life enhancements for a seamless VFIO setup on a Linux desktop machine.","archived":false,"fork":false,"pushed_at":"2024-05-23T05:58:35.000Z","size":710,"stargazers_count":13,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-23T06:28:00.920Z","etag":null,"topics":["automated","bash","bash-script","debian","evdev","grub","hugepages","libvirt-hooks","looking-glass","pci-passthrough","scream","script","ubuntu","vfio","vfio-passthrough","vfio-pci","vfio-setup","virtual-machine","virtualization","zram-swap"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/portellam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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}},"created_at":"2022-05-01T09:08:10.000Z","updated_at":"2024-05-27T23:29:22.704Z","dependencies_parsed_at":"2023-12-18T03:28:25.301Z","dependency_job_id":"2f7c5c51-6d22-46cc-9717-e5a007263f90","html_url":"https://github.com/portellam/deploy-VFIO","commit_stats":null,"previous_names":["portellam/deploy-vfio"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/portellam%2Fdeploy-VFIO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/portellam%2Fdeploy-VFIO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/portellam%2Fdeploy-VFIO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/portellam%2Fdeploy-VFIO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/portellam","download_url":"https://codeload.github.com/portellam/deploy-VFIO/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244758206,"owners_count":20505605,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["automated","bash","bash-script","debian","evdev","grub","hugepages","libvirt-hooks","looking-glass","pci-passthrough","scream","script","ubuntu","vfio","vfio-passthrough","vfio-pci","vfio-setup","virtual-machine","virtualization","zram-swap"],"created_at":"2024-10-11T14:14:18.729Z","updated_at":"2025-03-21T07:31:55.936Z","avatar_url":"https://github.com/portellam.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Deploy VFIO\n### v1.0.1\nEffortlessly deploy a hardware-passthrough (VFIO) setup for Virtual Machines\n(VMs) on a Linux desktop. Includes quality-of-life features that you didn't\nthink you need!\n\n## [Download](#5-download)\n\n[codeberg-releases]: https://codeberg.org/portellam/deploy-VFIO/releases/latest\n[github-releases]:   https://github.com/portellam/deploy-VFIO/releases/latest\n\n## Table of Contents\n- [1. Why?](#1-why)\n- [2. Related Projects](#2-related-projects)\n- [3. Documentation](#3-documentation)\n- [4. Host Requirements](#4-host-requirements)\n    - [4.1. Operating System](#41-operating-system)\n    - [4.2. Software](#42-software)\n    - [4.3. Hardware](#43-hardware)\n- [5. Download](#5-download)\n- [6. Usage](#6-usage)\n    - [6.1. Verify Installer is Executable](#61-verify-script-is-executable)\n    - [6.2. `installer.bash`](#61-installerbash)\n    - [6.3. `deploy-VFIO`](#62-deploy-vfio)\n- [7. Features](#7-features)\n    - [7.1. Pre-Setup](#71-pre-setup)\n    - [7.2. Main Setup](#72-main-setup)\n    - [7.3. Post-Setup](#73-post-setup)\n- [8. Filenames and Pathnames Modified by deploy-VFIO](#8-filenames-and-pathnames-modified-by-deploy-vfio)\n    - [8.1. Pre-Setup](#81-pre-setup)\n    - [8.2. Main Setup](#82-main-setup)\n    - [8.3. Post-Setup](#83-post-setup)\n    - [8.4. Binaries and Files](#84-binaries-and-files)\n- [9. Graphics Hardware (GPUs)](#9-graphics-hardware-gpus)\n    - [9.1. How to Query Host Machine for Graphics Hardware](#91-how-to-query-host-machine-for-graphics-hardware)\n    - [9.2. Troubleshooting Graphics Hardware](#92-troubleshooting-graphics-hardware)\n    - [9.3. List of UEFI-compatible Graphics Hardware](#93-list-of-uefi-compatible-graphics-hardware)\n    - [9.4. Alternatives to BIOS-only Graphics Hardware](#94-alternatives-to-bios-only-graphics-hardware)\n    - [9.5. Apple macOS](#95-apple-macos)\n    - [9.6. Linux](#96-linux)\n    - [9.7. Microsoft Windows](#97-microsoft-windows)\n- [10. Disclaimer](#10-disclaimer)\n- [11. Contact](#11-contact)\n- [12. References](#12-references)\n\n## Contents\n\n### 1. Why?\n1. **Separation of Concerns:** Independently operate your workstation, gaming,\nand school Operating Systems (OS), as [Virtual Machines](#19) (VMs), under one\nHost machine.\n\n2. **No Need for a Server**\n    - **Keep your Host's desktop experience intact;** turns your Host into a\n  Type-2 [Hypervisor](#18).\n    - Servers like Microsoft Hyper-V, Oracle VM, and Proxmox Linux are considered\n  Type-1 or bare-metal Hypervisors.\n\n3. **Securely run a an OS**\n    - Limited access to real hardware means greater security.\n    - The benefits extend to untrusted or legacy OSes.\n\n4. **Ease of use:** support for automation by use of the\n[Command Line Interface](#6-usage) (CLI).\n\n5. **PCI Passthrough:** prioritize real hardware over emulation.\n\n6. **Quality of Life**: utilize multiple common-sense [features](#7-features) that\nare known to experienced users.\n\n7. **Your Host OS is [supported](#4-host-requirements).**\n\n**Note:** For even greater security, use [me_cleaner](#9) alongside a VFIO\nsetup.\n\n### 2. Related Projects\n| Project                             | Codeberg          | GitHub          |\n| :---                                | :---:             | :---:           |\n| **Deploy VFIO**                     | [link][codeberg1] | [link][github1] |\n| Auto X.Org                          | [link][codeberg2] | [link][github2] |\n| Generate Evdev                      | [link][codeberg3] | [link][github3] |\n| Guest Machine Guide                 | [link][codeberg4] | [link][github4] |\n| Libvirt Hooks                       | [link][codeberg5] | [link][github5] |\n| Power State Virtual Machine Manager | [link][codeberg6] | [link][github6] |\n\n[codeberg1]: https://codeberg.org/portellam/deploy-VFIO\n[github1]:   https://github.com/portellam/deploy-VFIO\n[codeberg2]: https://codeberg.org/portellam/auto-xorg\n[github2]:   https://github.com/portellam/auto-xorg\n[codeberg3]: https://codeberg.org/portellam/generate-evdev\n[github3]:   https://github.com/portellam/generate-evdev\n[codeberg4]: https://codeberg.org/portellam/guest-machine-guide\n[github4]:   https://github.com/portellam/guest-machine-guide\n[codeberg5]: https://codeberg.org/portellam/libvirt-hooks\n[github5]:   https://github.com/portellam/libvirt-hooks\n[codeberg6]: https://codeberg.org/portellam/powerstate-virtmanager\n[github6]:   https://github.com/portellam/powerstate-virtmanager\n\n### 3. Documentation\n- [What is VFIO?](#19)\n- [VFIO Discussion and Support](#13)\n- [Hardware-Passthrough Guide](#12)\n- [Virtual Machine XML Format Guide](#22)\n\n### 4. Host Requirements\n#### 4.1. Operating System\n  | Linux Distributions  | Tested | Supported  |\n  | :------------------- | :----: | :--------: |\n  | Arch                 | No     | N/A        |\n  | Debian\u003csup\u003e[1]\u003c/sup\u003e | Yes    | 11, 12     |\n  | Gentoo               | No     | N/A        |\n  | Red Hat Enterprise   | No     | N/A        |\n  | SUSE                 | No     | N/A        |\n\n[1]: (#1-debian-derivatives-include-linux-mint-pop-os-and-ubuntu)\n\n##### 1. Debian derivatives include Linux Mint, Pop! OS, and Ubuntu.\n#### 4.2. Software\nRequired software packages (for this script):\n  `xmlstarlet`\n  - To install packages:\n  - Debian Linux: `sudo apt install -y xmlstarlet`\n\nOther requirements:\n  - `GRUB` to execute command lines at boot (if chosen).\n  - `systemd` for system services.\n\n#### 4.3. Hardware\nThe following firmware options are supported and enabled (motherboard and CPU):\n- IOMMU\n    - For AMD machines:\u0026nbsp;`AMD-Vi`\n    - For Intel machines:\u0026ensp;\u0026nbsp;`VT-d`\n    - ARM (`SMMU`) and other CPU architectures are not **explicitly** supported by\n  this script.\n\n### 5. Download\n- Download the Latest Release:\u0026ensp;[Codeberg][codeberg-releases],\n[GitHub][github-releases]\n\n- Download the `.zip` file:\n    1. Viewing from the top of the repository's (current) webpage, click the\n        drop-down icon:\n        - `···` on Codeberg.\n        - `\u003c\u003e Code ` on GitHub.\n    2. Click `Download ZIP` and save.\n    3. Open the `.zip` file, then extract its contents.\n\n- Clone the repository:\n    1. Open a Command Line Interface (CLI).\n        - Open a console emulator (for Debian systems: Konsole).\n        - Open a existing console: press `CTRL` + `ALT` + `F2`, `F3`, `F4`, `F5`,  or\n        `F6`.\n            - **To return to the desktop,** press `CTRL` + `ALT` + `F7`.\n            - `F1` is reserved for debug output of the Linux kernel.\n            - `F7` is reserved for video output of the desktop environment.\n            - `F8` and above are unused.\n    2. Change your directory to your home folder or anywhere safe:\n        - `cd ~`\n    3. Clone the repository:\n        - `git clone https://www.codeberg.org/portellam/deploy-VFIO`\n        - `git clone https://www.github.com/portellam/deploy-VFIO`\n\n[codeberg-releases]: https://codeberg.org/portellam/deploy-VFIO/releases/latest\n[github-releases]:   https://github.com/portellam/deploy-VFIO/releases/latest\n\n### 6. Usage\n#### 6.1. Verify Installer is Executable\n1. Open the CLI (see [Download](#5-download)).\n\n2. Go to the directory of where the cloned/extracted repository folder is:\n`cd name_of_parent_folder/deploy-VFIO/`\n\n3. Make the installer script file executable: `chmod +x installer.bash`\n    - Do **not** make any other script files executable. The installer will perform\n  this action.\n    - Do **not** make any non-script file executable. This is not necessary and\n  potentially dangerous.\n\n#### 6.2. `installer.bash`\n- From the project folder, execute: `sudo bash installer.bash`\n  ```xml\n  -h, --help               Print this help and exit.\n  -i, --install            Install deploy-VFIO to system.\n  -u, --uninstall          Uninstall deploy-VFIO from system.\n  ```\n    - The installer will place all script files in `/usr/local/bin`.\n    - The installer will place all configuration/text files in `/usr/local/etc`.\n\n#### 6.3. `deploy-VFIO`\n- From anywhere, execute: `sudo bash deploy-VFIO`\n    - The CLI's shell (bash) should recognize that the script file is located in\n  `/usr/local/bin`.\n```\n-h, --help               Print this help and exit.\n-q, --quiet              Reduce verbosity; print only relevant questions and\nstatus statements.\n-u, --undo               Undo changes (restore files) if script has exited early\nor unexpectedly.\n  --ignore-distro        Ignore distribution check for Debian or Ubuntu system.\n\nSpecify the database to reference before parsing IOMMU groups:\n  --xml [filename]       Cross-reference XML file. First-time, export if VFIO is\n  not setup. Consecutive-times, imports if VFIO is setup.\n  [filename]             Reference specific file.\n  --no-xml               Skips prompt.\n\nSpecify the IOMMU groups to parse:\n-p, --parse [groups]     Parse given IOMMU groups (delimited by comma).\n  all                    Select all IOMMU groups.\n  no-vga                 Select all IOMMU groups without VGA devices.\n  [x]                    Select IOMMU group.\n  [x-y]                  Select IOMMU groups.\n\nExample:\n  --parse no-vga,14      Select IOMMU group 14 and all non-VGA groups.\n  --parse 1,14-16        Select IOMMU groups 1, 14, 15, and 16.\n\nPre-setup:\n-c, --cpu                Allocate CPU.\n-e, --evdev              Setup a virtual KVM switch.\n-h, --hugepages [ARGS]   Create static hugepages (pages greater than 4 KiB) to\nallocate RAM for Guest(s).\n  --skip-pre-setup       Skip execution.\n  --uninstall-pre-setup  Undo all changes made by pre-setup.\n\nHugepages:\n  2M, 1G                 Hugepage size (2 MiB or 1 GiB).\n  [x]                    Amount of Hugepages (maximum amount is total memory\n  subtracted by 4 GiB).\n\nExample:\n--hugepages 1G 16        1 GiB hugepage 16   == 16 GiB allocated to hugepages.\n--hugepages 2M 8192      2 MiB hugepage 8912 == 16 GiB allocated to hugepages.\n\nVFIO setup:\n-m, --multiboot [ARGS]   Create multiple VFIO setups with corresponding GRUB\nmenu entries. Specify default GRUB menu entry by VGA IOMMU group ID.\n-s, --static [ARGS]      Single VFIO setup. Specify method of setup.\n--skip-vfio-setup        Skip execution.\n--uninstall-vfio-setup   Undo an existing VFIO setup.\n\nMultiboot VFIO:\n  [x]                    The ID of the valid excluded VGA IOMMU group.\n  default                Default menu entry excludes VFIO setup.\n  first                  Prefer the first valid excluded VGA IOMMU group.\n  last                   Prefer the last valid excluded VGA IOMMU group.\n\nStatic VFIO:\n  file                   Append output to system configuration files.\n  grub                   Append output to GRUB; single GRUB menu entry.\n```\n\n### 7. Features\n#### 7.1. Pre-Setup\n1. **Isolate CPU**\n    - **Statically** isolate Host CPU threads before allocating to Guest(s).\n    -  Reduces Host overhead, and improves both Host and Guest performance.\n    -  If installed, the **dynamic** [Libvirt hook](#6) will skip its\n  execution, to preserve the Static isolation.\n\n2. **Huge pages**\n    - **Statically** isolate Host memory (RAM) into **[Huge memory pages](#5)**\n    before allocating to Guest(s).\n    - Reduces Host overhead, and improves both Host and Guest performance.\n    - Eliminates the need to defragment RAM before allocation to Guest(s)\n    (as in the case with **transparent hugepages**).\n\n3. **Virtual Keyboard Video Mouse (KVM) switch**\n    - Create a virtual KVM switch by [Evdev](#11) (Event Devices).\n    - Allow a user to swap a group of Input devices (as a whole) between active\n    Guest(s) and Host.\n    - Use a defined macro.\n        - Default macro: `L-CTRL` + `R-CTRL`.\n        - Change the macro for each VM in the [XML configuration](#23).\n    - Implementation is known as [Generate Evdev](#3).\n    - **Note:** Using guest PCI USB alone is good. Using both implementations is\n  better.\n\n#### 7.2. Main Setup\n- **Multi-boot VFIO Setup**\n    - Create multiple VFIO setups with corresponding GRUB menu entries.\n    **More flexibility.**\n    - Select a GRUB menu entry with a VGA device excluded from VFIO.\n        - Default menu entry is without VFIO setup.\n    - Best for systems with two or more PCI VGA devices, without an integrated VGA\n    device (iGPU).\n\n    - **Ad:** For best results, use [Auto X.Org](#2).\n\n- **Static VFIO Setup**\n    - Specify method:\n        - Append output to GRUB (single GRUB menu entry).\n        - Append output to system configuration files.\n    - **Less flexible than either setups.**\n    - Best for systems with one or more PCI VGA device(s) and one integrated VGA\n  device (iGPU).\n\n- **Dynamic VFIO Setup** (To be implemented in a future release)\n    - Use Libvirt hooks to bind or unbind devices at Guest(s) start or stop.\n    - Most responsibility; best for more experienced users.\n    - Most flexibility; Libvirt hooks allow Host to allocate and release resources\n  dynamically.\n    - For an existing script of similar scope, you may try the project\n  [VFIO-Tools](#20).\n\n#### 7.3. Post-Setup (To be implemented in a future release)\n1. **Auto X.Org** system service to find and set a valid Host boot [VGA](#21)\ndevice for X.Org.\n\n2. **Guest Audio Capture**\n    - Create an [audio loopback](#1) to output on the Host audio device Line-Out.\n    - Listen on Host audio device Line-In (from Guest PCI Audio device Line-Out).\n    - Useful for systems with multiple audio devices.\n    - For virtual implementation, see *Virtual Audio Capture*.\n\n3. **Libvirt Hooks**\n    - Invoke [hooks](#6) or scripts for all or individual Guests.\n    - Switch display input (video output) at Guest start.\n    - **Dynamically** allocate CPU cores and prioritize CPU scheduler.\n    - **Libvirt-nosleep**: per Guest system service, to prevent Host sleep while\n    Guest is active.\n\n4. **RAM as Compressed Swapfile/partition**\n    - Create a compressed Swap device in Host memory, using the [lz4](#8) algorithm\n  (compression ratio of about 2:1).\n    - Reduce swapiness to existing Host swap devices.\n    - Reduce chances of Host memory exhaustion (given an event of memory\n    over-allocation).\n    - Implementation is known as [zram-swap](#24).\n\n5. **Virtual Audio Capture**\n    - Setup a virtual audio driver for Windows that provides a discrete audio\n  device and passthrough from a Guest to Host.\n    - Passthrough audio by direct-memory-access (DMA).\n    - Passthrough audio by a [virtual Local Area Network (LAN) device](#17).\n    - Implementation is known as [Scream](#15).\n\n6. **Virtual Video Capture**\n    - Setup DMA of a PCI VGA device output (video and audio) from a Guest to Host.\n    - Implementation is known as [Looking Glass](#7).\n    - **Disclaimer:** Only supported for Guests running Windows 7 and later\n  (Windows NT 6.1+).\n\n### 8. Filenames and Pathnames Modified by deploy-VFIO\n##### 8.1. Pre-Setup\n  - `/etc/apparmor.d/local/abstractions/libvirt-qemu`\n    - `/etc/libvirt/qemu.conf`\n\n##### 8.2. Main Setup\n  - `/etc/default/grub`\n  - `/etc/grub.d/proxifiedScripts/custom`\n  - `/etc/initramfs-tools/modules`\n  - `/etc/modprobe.d/pci-blacklists.conf`\n  - `/etc/modprobe.d/vfio.conf`\n  - `/etc/modules`\n\n##### 8.3. Post-Setup\n  - `/etc/libvirt/hooks/`\n  - `/usr/local/bin/`\n  - `/etc/systemd/system/`\n\n##### 8.4. Binaries and Files\n  - `/usr/local/bin/deploy-VFIO`\n  - `/usr/local/etc/deploy-VFIO.d/`\n\n### 9. Graphics Hardware (GPUs)\n**Note:** Unfortunately, most or all GPUs without UEFI firmware (BIOS-only) are\nnot currently compatible with VFIO. If your GPU does work, please share your\nsuccess with [this project](#11-contact) and/or\n[the VFIO community](#3-documentation).\n\n#### 9.1. How to Query Host Machine for Graphics Hardware\n`lspci -nnk | grep --extended-regexp --ignore-case \"vga|graphics\"`\n\n**Example:**\n```\n01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA104 [GeForce RTX 3070] [10de:2484] (rev a1)\n04:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Cayman PRO [Radeon HD 6950] [1002:6719]\n```\n\n#### 9.2. Troubleshooting Graphics Hardware\nSome VGA devices, such as NVIDIA, may not be recognizable in a VM, as the video\nBIOS or VBIOS is *tainted* at Host OS start-up. This is usually the case if a\ngiven VGA device is used for the Host BIOS/UEFI booting process. To remedy this,\nyou must obtain a clean copy of the VBIOS. You may review either\n[NVIDIA-vBIOS-VFIO-Patcher](#10), or the [ArchWiki](#12).\n\n#### 9.3. List of Supported Firmware by Graphics Hardware\n**Note:** Vendors that are unlisted are more than likely legacy graphics\nhardware. Therefore, it is safe to assume such hardware is BIOS-only.\n\n| Vendor | Model                             | Firmware  |\n| :----- | :-------------------------------- | :-------: |\n| 3dfx   | any                               | BIOS      |\n| AMD    | Radeon HD 7750,7970 and newer     | UEFI      |\n| AMD    | Radeon HD 7000-series and older   | BIOS      |\n| ATI    | any                               | BIOS      |\n| Intel  | Gen5 (HD Graphics) and newer      | UEFI      |\n| Intel  | Gen4 and older                    | BIOS      |\n| NVIDIA | GeForce GTX 700 to 1000-series    | UEFI      |\n| NVIDIA | GeForce GTX 600-series and older  | BIOS      |\n\n#### 9.4. Alternatives to BIOS-only Graphics Hardware\n##### 9.4.1. GPU Emulation\nFor emulating graphics hardware on old, legacy operating systems (such as\nWindows 98), try [SoftGPU](#16). Modern CPUs are more than powerful enough to\nemulate such hardware. Fortunately, this implementation is not software\nrendering. You may use whichever graphics API which is supported by the emulated\nGPU (example: Glide for 3dfx).\n\n#### 9.5. Apple macOS\n##### 9.5.1. [AMD and NVIDIA GPU compatibility list](#4)\n##### 9.5.2. [More detailed NVIDIA GPU compatibility list](#14)\n\n#### 9.6. Linux\nTypically, Linux is compatible with GPUs dating back to the end of the 20th\ncentury. However, GPU-compatibility may vary among different Linux\ndistributions. Please review the documentation of your Linux distribution.\n\n#### 9.7. Microsoft Windows\n| Legacy Windows version | Vendor | Model                             |\n| :--------------------- | :----- | :-------------------------------- |\n| XP / NT 4 and older    | AMD    | Radeon HD 7970 and older          |\n| XP / NT 4 and older    | NVIDIA | GeForce GTX 900-series            |\n| 7 / NT 6.1             | AMD    | Radeon R9 200-series and newer    |\n| 7 / NT 6.1             | NVIDIA | GeForce GTX 3000-series and older |\n\n### 10. Disclaimer\nUse at your own risk. Please review your system's specifications and resources.\n\n### 11. Contact\nDid you encounter a bug? Do you need help? Please visit the **Issues page**\n([Codeberg][codeberg-issues], [GitHub][github-issues]).\n\n[codeberg-issues]: https://codeberg.org/portellam/deploy-VFIO/issues\n[github-issues]:   https://github.com/portellam/deploy-VFIO/issues\n\n### 12. References\n#### 1.\n**portellam/audio-loopback**. Codeberg. Accessed June 18, 2024.\n\u003csup\u003ehttps://codeberg.org/portellam/audio-loopback.\n\n**portellam/audio-loopback**. GitHub. Accessed June 18, 2024.\n\u003csup\u003ehttps://github.com/portellam/audio-loopback.\n\n#### 2.\n**portellam/auto-xorg**. Codeberg. Accessed June 18, 2024.\n\u003csup\u003ehttps://codeberg.org/portellam/auto-xorg.\n\n**portellam/auto-xorg**. GitHub. Accessed June 18, 2024.\n\u003csup\u003ehttps://github.com/portellam/auto-xorg.\n\n#### 3.\n**portellam/generate-evdev**. Codeberg. Accessed June 17, 2024.\n\u003csup\u003ehttps://codeberg.org/portellam/generate-evdev.\u003c/sup\u003e\n\n**portellam/generate-evdev**. GitHub. Accessed June 17, 2024.\n\u003csup\u003ehttps://github.com/portellam/generate-evdev.\u003c/sup\u003e\n\n#### 4.\n**Graphics card compatibility for Final Cut Pro, Motion, and Compressor**. Apple\nSupport. October 31, 2023. Accessed June 18, 2024.\n\u003csup\u003ehttps://support.apple.com/en-us/102734.\u003c/sup\u003e\n\n#### 5.\n**Hugepages**. Debian Wiki. Accessed June 17, 2024.\n\u003csup\u003ehttps://wiki.debian.org/Hugepages.\u003c/sup\u003e\n\n**Huge memory pages**. PCI passthrough via OVMF - ArchWiki. Accessed June 14,\n2024.\n\u003csup\u003ehttps://wiki.archlinux.org/title/PCI_passthrough_via_OVMF#Huge_memory_pages.\u003c/sup\u003e\n\n#### 6.\n**portellam/libvirt-hooks**. Codeberg. Accessed June 18, 2024.\n\u003csup\u003ehttps://codeberg.org/portellam/libvirt-hooks.\u003c/sup\u003e\n\n**portellam/libvirt-hooks**. GitHub. Accessed June 18, 2024.\n\u003csup\u003ehttps://github.com/portellam/libvirt-hooks.\u003c/sup\u003e\n\n#### 7.\n**Looking Glass**. Looking Glass. Accessed June 17, 2024.\n\u003csup\u003ehttps://looking-glass.io/\u003c/sup\u003e\n\n#### 8.\n**LZ4/LZ4**. GitHub. Accessed June 17,\n2024.\n\u003csup\u003ehttps://github.com/lz4/lz4.\u003c/sup\u003e\n\n#### 9.\n**corna/me_cleaner**. GitHub. Accessed June 17, 2024.\n\u003csup\u003ehttps://github.com/corna/me_cleaner.\u003c/sup\u003e\n\n**dt-zero/me_cleaner**. GitHub. Accessed June 17, 2024.\n\u003csup\u003ehttps://github.com/dt-zero/me_cleaner.\u003c/sup\u003e\n\n#### 10.\n**Matoking/NVIDIA-vBIOS-VFIO-Patcher**. GitHub. Accessed June 18, 2024.\n\u003csup\u003ehttps://github.com/Matoking/NVIDIA-vBIOS-VFIO-Patcher.\u003c/sup\u003e\n\n#### 11.\n**4.5 Passing Keyboard/Mouse via Evdev**. PCI passthrough via OVMF - ArchWiki.\nAccessed June 14, 2024.\n\u003csup\u003ehttps://wiki.archlinux.org/title/PCI_passthrough_via_OVMF.\u003c/sup\u003e\n\n#### 12.\n**PCI passthrough via OVMF**. ArchWiki. Accessed June 14, 2024.\n\u003csup\u003ehttps://wiki.archlinux.org/title/PCI_passthrough_via_OVMF.\u003c/sup\u003e\n\n#### 13.\n**VFIO Discussion and Support**. Reddit. Accessed June 14, 2024.\n\u003csup\u003ehttps://www.reddit.com/r/VFIO/.\u003c/sup\u003e\n\n#### 14.\n**tonymacx86 - Will my Nvidia Graphics Card work with macOS ? List of Desktop**\n**Cards with Native Support**. Archive.org. Accessed June 18, 2024.\n\u003csup\u003ehttps://web.archive.org/web/20230926193339/https://www.tonymacx86.com/threads/will-my-nvidia-graphics-card-work-with-macos-list-of-desktop-cards-with-native-support.283700/.\n\n#### 15.\n**duncanthrax/scream**. GitHub. Accessed June 17, 2024.\n\u003csup\u003ehttps://github.com/duncanthrax/scream.\u003c/sup\u003e\n\n#### 16.\n**JHRobotics/SoftGPU**. GitHub. Accessed June 17, 2024.\n\u003csup\u003ehttps://github.com/JHRobotics/SoftGPU.\u003c/sup\u003e\n\n#### 17.\n**Using Scream Over LAN**. Looking Glass. Accessed June 17, 2024.\n\u003csup\u003ehttps://looking-glass.io/wiki/Using_Scream_over_LAN.\u003c/sup\u003e\n\n#### 18.\n**Type 1 vs. Type 2 hypervisors**. IBM. Accessed June 18, 2024.\n\u003csup\u003ehttps://www.ibm.com/topics/hypervisors.\u003c/sup\u003e\n\n#### 19.\n**VFIO - ‘Virtual Function I/O’ - The Linux Kernel Documentation**.\nThe linux kernel. Accessed June 14, 2024.\n\u003csup\u003ehttps://www.kernel.org/doc/html/latest/driver-api/vfio.html.\u003c/sup\u003e\n\n**Virtualization technology**. OpenSUSE Leap 15.5. Accessed June 18, 2024.\n\u003csup\u003ehttps://doc.opensuse.org/documentation/leap/virtualization/html/book-virtualization/chap-virtualization-introduction.html.\u003c/sup\u003e\n\n#### 20.\n**PassthroughPOST/VFIO-Tools**. GitHub. Accessed June 18, 2024.\n\u003csup\u003ehttps://github.com/PassthroughPOST/VFIO-Tools.\u003c/sup\u003e\n\n#### 21.\n**Video Graphics Array**. Wikipedia. August 18, 2002. Accessed June 18, 2024.\n\u003csup\u003ehttps://en.wikipedia.org/wiki/Video_Graphics_Array.\u003c/sup\u003e\n\n#### 22.\n**XML Design Format**. GitHub - libvirt/libvirt. Accessed June 18, 2024.\n\u003csup\u003ehttps://github.com/libvirt/libvirt/blob/master/docs/formatdomain.rst.\u003c/sup\u003e\n\n#### 23.\n**XML Design Format: Input Devices**. GitHub - libvirt/libvirt.Accessed June 18,\n2024.\n\u003csup\u003ehttps://github.com/libvirt/libvirt/blob/master/docs/formatdomain.rst.\u003c/sup\u003e\n\n#### 24.\n**foundObjects/zram-swap**. GitHub. Accessed June 17, 2024.\n\u003csup\u003ehttps://github.com/foundObjects/zram-swap.\u003c/sup\u003e\n\n**New zram tuning benchmarks**. Reddit. Accessed June 17, 2024.\n\u003csup\u003ehttps://web.archive.org/web/20220201101923/https://old.reddit.com/r/Fedora/comments/mzun99/new_zram_tuning_benchmarks/.\u003c/sup\u003e\n\n**zramswap**. Arch Linux User Repository. Accessed June 17, 2024.\n\u003csup\u003ehttps://aur.archlinux.org/packages/zramswap.\u003c/sup\u003e","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fportellam%2Fdeploy-vfio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fportellam%2Fdeploy-vfio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fportellam%2Fdeploy-vfio/lists"}