-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
NVIDIA VBIOS Step 1: How to extract or obtain your VBIOS Option 1 (preferred): Pull the rom 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: ./nvflash --save original.rom. Note1: This tool does not work when the nvidia proprietary driver is bound to the card. It will work with no driver bound, vfio-pci, or in some cases nouveau (sketchy). Note2: This can also be done with windows both native and virtualized using GPU-z's save vbios button. GPU-z uses nvflash internally Option 2: Download a rom 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. (edited) [10:30 PM]Aiber: NVIDIA VBIOS Step 2: Determining the start of the VBIOS within the ROM file NVIDIA rom files contain extra data (IFR, other firmware, etc.) at the start of the file. We can obtain the vbios portion of the rom by trimming off the unwanted bits. This 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 original.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. (edited) [10:30 PM]Aiber: NVIDIA VBIOS Step 3: Removing the headers If the value from step 2 is not zero, the extraneous data must be removed, 0x600 bytes in particular this case: $ dd if=original.rom of=vbios.rom bs=$((0x600)) skip=1 You may verify the result by redoing step 2 on the new 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 for the GPU video device add Qemu: -device vfio-pci,host=01:00.0,romfile=/path/to/vbios.rom (edited) August 26, 2018