HNIZDO: Je to DRM v GeForce driver, ktere slouzilo k vymahani licencniho omezeni GeForce karet v datacentru.Byly tam i naznaky vGPU/SR-IOV, ale to bohuzel nedostaneme.
Puvodni metoda:
<kvm>
<hidden state='on'/>
</kvm>
OMVF:
NVIDIA VBIOS Step 1: How to extract or obtain your VBIOS
Option 1: Extract the VBIOS via nvidia's proprietary tool nvflash (https://www.techpowerup.com/download/nvidia-nvflash/). The download is a zipped binary (not source), simply unzip it, chmod +x, and run it. The ROM can be extracted as such: ./nvflash --save vbios.rom.
Note1: This tool does not work when the nvidia proprietary driver is bound to the card. It will work with vfio-pci, nouveau, or no driver bound.
Option 2: Download a VBIOS from Techpowerup's database that matches your PCI ID's and Subsystem ID's. Here is an example with a GT 710:
$ lspci -nnk
(...)
0a:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208B [GeForce GT 710] [10de:128b] (rev a1)
Subsystem: Micro-Star International Co., Ltd. [MSI] GK208B [GeForce GT 710] [1462:8c93]
The ID's are 10de:128b and 1462:8c93. Google techpowerup + these numbers and download a rom that matches. Double check that all ID's match.
NVIDIA VBIOS Step 2: Determining the start of the ROM within the VBIOS file
NVIDIA rom files contain extra data (IFR, USB firmware, etc.) at the start of the file that isnt part of the rom proper. These must be removed before passing it to a VM.
Use rom-parser (https://github.com/awilliam/rom-parser) and look for the first entry Valid ROM signature found @XXXXh:
$ rom-parser vbios.rom
Valid ROM signature found @600h, PCIR offset 190h
PCIR: type 0 (x86 PC-AT), vendor: 10de, device: 128b, class: 030000
PCIR: revision 0, vendor revision: 1
Valid ROM signature found @fc00h, PCIR offset 1ch
PCIR: type 3 (EFI), vendor: 10de, device: 128b, class: 030000
PCIR: revision 3, vendor revision: 0
EFI: Signature Valid, Subsystem: Boot, Machine: X64
Last image
The header size is the hexadecimal value @600h which is 1536 bytes in decimal.
NVIDIA VBIOS Step 3: Removing the headers
If the value from step 2 is not zero, the extraneous data must be removed.
$ dd if=vbios.rom of=vbios.fixed.rom bs=$((0x600)) skip=1
You may verify the result by redoing step 2 on the new fixed file to confirm the rom now starts at @0h (the beginning of the file.)
NVIDIA VBIOS Step 4: Passing a VBIOS to the VM
Libvirt: Under <hostdev> for the GPU video device add <rom file='/path/to/vbios.fixed.rom'/>
Qemu: -device vfio-pci,host=01:00.0,romfile=/path/to/vbios.fixed.rom