Hardware configuration - Qrivi/KVM GitHub Wiki

My current build to flex as a reference, as some of the configuration is specific to my build.

Hardware Brand
Motherboard Gigabyte GA-Z270-HD3P Intel Z270 LGA 1151 (ATX, Socket H4)
CPU Intel Core i7 7700 Kaby Lake (8MB, 3.60/4.20 GHz)
RAM 4x Crucial 8GB DDR4-2400
GPU 1x Asus Expedition AMD Radeon RX 570 OC 4GB GDDR51x Asus ROG Strix Nvidia GeForce RTX 2070 SUPER OC 8GB GDDR6
NIC Apple Broadcom BCM94360CD (802.11 a/b/g/n/ac, Bluetooth 4.0)
PSU NZXT C750 80+ Gold 750W
Storage 1x WD Blue 1TB (SATA SSD)1x WD Blue 1TB (SATA HDD)1x Crucial MX300 275GB (SATA SSD)1x Kingston A400 240GB (SATA SSD)
Peripherals 1x OULLX USB 3.0 KVM Switch1x Logitech B910 HD USB Webcam & Microphone1x cheap USB mouse1x cheap USB keyboard

Setup

  • I am using the i7's iGPU to get display output on the host, whereas the RX 570 is passed through to a macOS KVM (natively supported AMD card) and the RTX 2070 to a Windows KVM.
  • The Broadcom card offers Wi-Fi over PCIe and Bluetooth over USB 2.0. I am passing through both modules to macOS in order to gain every continuity feature (handoff, unlock with Apple Watch, ...) on macOS.
  • The 1 TB SSD is my Manjaro installation disk on which I keep 100 GB expandable disk images onto which the guest systems are installed, so they are easily snapshottable. I am passing through 1 NTFS formatted SSD to the Windows KVM and the other APFS formatted one to the macOS KVM for near-native speeds, whereas the 1 TB HDD is mounted as a virtual network drive in both KVMs. This allows it to be formatted as Ext4 so host Linux, and guest Windows and guest macOS can all read from and write to the disk.
  • The KVM switch is a nice way to switch USB peripherals from one OS to the other: way cleaner than having multiple mice and keyboard attached, and will always work compared to software solutions.

Important Notes

  • You will need a CPU and motherboard that support virtualization and have VT-d and VT-x (Intel) or AMD-V (AMD) enabled in the BIOS.
  • Though a CPU with integrated graphics can be used as an iGPU for the host, it cannot be passed through to guest VMs. Make sure integrated graphics are enabled in the BIOS as often these are disabled when the latter detects a GPU.