**Description:**
Adds support for Intels GVT-d feature to passthrough an integrated graphics device to a bhyve-guest.
No dedicated graphic card is neccessary to use this feature. If there is no dedicated graphic card build in, the FreeBSD host runs headless after booting the guest.
**Prerequisites:**
- Intel CPU with VT-d
- BIOS option "PM Support" set to Enabled
- This patch uses features from D24066. Therefore first of all apply D24066.
**How to enable GVT-d:**
Use the new "gvt-d" device to passthru the integrated graphics device. For example "-s 2,gvt-d,0/2/0".
//Caution:// This adds a pci-device at 0:1f.0 which is neccessary for the Intel GOP-driver to work.
A working bhyve config could be:
```
bhyve -c 2 -m 4G -A -H -S -w \
-s 0,hostbridge \
-s 2,gvt-d,0/2/0 \
-s 4,virtio-blk,/root/win/win10.img \
-s 5,virtio-net,tap10 \
-s 30,lpc \
-l com1,stdio \
-l bootrom,/usr/local/share/uefi-firmware/BHYVE_UEFI.fd \
win10
```
**Tested Scenarios:**
| **OS** | |
| Windows | Working |
| Debian | Working with "pci=nocrs" as kernel cmdline option |
| FreeBSD | Working (13.0-CURRENT - 20200903 snapshot) |
Tested with Windows as a guest:
| **Architecture** | |
| Sandy Bridge | Not Working (Windows reports that the device works properly but there's no correct display output) |
| Ivy Bridge | Working |
| Haswell | Working |
| Kabylake | Working |
**Installation Steps:**
1. Install your VM on the "old" way with GVT-d disabled
2. Boot into your VM with GVT-d enabled and install the graphics driver
- debian:
- Install i915 driver
- Add "pci=nocrs" option as kernel parameter:
- add "pci=nocrs" to GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub
- "sudo update-grub"
- Windows:
- Do not use a "fbuf" device in your bhyve cmd. It crashes your VM while installing graphics driver. Use Remote-Desktop instead.
- Install igfx driver (download [[ https://downloadcenter.intel.com/de/product/80939 | here ]])
3. Boot your VM with GVT-d enabled
**Known Limitations:**
- The bhyve-edk2 doesn't contain the Intel GOP driver. Therefore, there is no graphical output while booting. First graphical output is displayed when the Guest-OS driver is loaded. This also means that there is no graphical output while installing an Guest-OS.