** VIDEO GUIDE - How to Easily Dump a vBIOS from any GPU directly from the Server for passthrough


Recommended Posts

Having trouble dumping vbios from the second GPU. The first one works perfectly, it’s a GTX 1070 and sitting in the main slot

Second one is a 1060 and sitting in the pcie_2. And getting this error.

 Any ideas?

 

Skärmavbild 2021-03-02 kl. 05.31.00.png

Link to comment
  • 2 weeks later...

Thank you! This is just what I was looking for.

 

Just one small bug that's easily worked around that affected both AMD cards I have: they are named Radeon RX 470/480/570/570X/580/580X/590 and Radeon RX 5500/5500M / Pro 5500M. This causes the script to try to save a file as eg. "/mnt/user/appdata/isos/vbios/Radeon RX 470/480/570/570X/580/580X/590" which of course on a linux based system doesn't work. The script then fails and causes a generic error, there's a few issues on the repo's GitHub page that look like they could be due to the same error as well.

 

The affected line is #294.

 

It's not like @SpaceInvaderOne didn't warn me via the Readme that it will try to make a name before I wasted about 20 mins on the wrong path 😅 Maybe next time I'll read the documentation more closely.

 

Until @SpaceInvaderOne has a chance to review it, all anyone with an AMD card needs to do is set the "vbiosname" variable to a suitable name.

Edited by lnxd
Link to comment
  • 3 weeks later...

Can you think of any way to track down why a VM won't start after using the Hex editor process you mention to "fix" a BIOS dumped from GPU-Z?

 

I have attached the original file dump and I removed everything above:

UªxëK7400éLwÌVI

 

ETA: I'm trying to figure out why I can use the file direct from TechPowerUp and the VM will boot but a reboot/shutdown of the VM crashes my entire server yet I can't edit the VBIOS that I've attached and have it allow my VM to function at all.

 

I get this when I change my GPU ID to the correct one and run the script from GitHub:

........

Removing the temp vm
Domain dumpvbios has been undefined
Okay dumping vbios file named GeForce GTX 1050 Ti to the location /mnt/user/isos/vbios/
cat: rom: Input/output error

........

 

ETA: I did bind the video and audio through the interface for VFIO and have rebooted the server several times.

 

ETA 3: I changed the forcereset setting to no and then it worked.

 

The working ROM has been attached for anyone needing it.  Now if I can just figure out why unRAID locks up when I restart /shutdown VM's with GPU Passthrough 😞

Inno3D.GTX1050Ti.4096.161227.rom

Edited by jlficken
  • Like 1
Link to comment
  • 2 weeks later...
On 1/14/2021 at 2:46 AM, Dava2k7 said:

Hi Space Invader I recently Dumped my new Asus Dual OC RTX 3070 8gb bios Rom with GPU-Z I have attached it below I couldn't remove the Nvidia header because it didn't look the same as was stated on your past video if you could have alook for me id appreciate it I'm not looking to put this in my server as of yet!! but may do in the future once I get a much bigger case hopefullly this will help other people with RTX 3070

Asus Dual OC RTX 3070.rom 976 kB · 0 downloads

 

@Dava2k7 Did you end up figuring it out? I have a new 3070 I am trying to add to my server and also can't find the line either.

Link to comment
On 4/12/2021 at 5:17 AM, MrWittel said:

 

@Dava2k7 Did you end up figuring it out? I have a new 3070 I am trying to add to my server and also can't find the line either.

No but Spaceinvaderone has got an updated video on things I think.... I just got another pc to game on rather then mess about with VM's

Link to comment

Great video. I used this method to dump a 2080ti bios and it got it working. I had to use the bind vfio method and was able to get a Windows 10 VM. Everything worked great at first and the VM survived several reboots. However when I rebooted Unraid I started getting error code 43s and no drivers. I watched the other video and manually updated the xml to multifunction and changed 4 devices to the same slot but still getting the error.
Any ideas? It worked before rebooting the Unraid server.

Link to comment
6 hours ago, rxnelson said:

Great video. I used this method to dump a 2080ti bios and it got it working. I had to use the bind vfio method and was able to get a Windows 10 VM. Everything worked great at first and the VM survived several reboots. However when I rebooted Unraid I started getting error code 43s and no drivers. I watched the other video and manually updated the xml to multifunction and changed 4 devices to the same slot but still getting the error.
Any ideas? It worked before rebooting the Unraid server.

Every time I've rebooted the server itself I have to redump. I think for some reason my unraid has to be disconnected from the gpu(1660 OC) to work again

Edited by Lunch
Link to comment
  • 2 weeks later...

Hi all,

Just getting started with my Unraid Server.. thanks of course to SpaceInvaderOne for the tremendous efforts (and definitely deserving of a cut from LimeTech!)

 

Everything has gone very well apart from a bizarre issue around the GPU passthrough. The GPU is a simple Zotac GTX 1650 Low Profile and whilst I can actually boot into windows and operate the desktop fine, the moment I look to run any sort of DirectX game/test the software immediately crashes back to the Windows desktop.. there is no error message whatsoever.

 

I've tried switching from i441 to Q35 and a lot of different bios settings without luck and modified the XML to ensure the GFX+audio controllers are operating multi-function etc

 

My final thought was the vBios - I've been primarily using one from TechPowerUp (with the hex editor change) but figured dumping my own would be worthwhile trying.. despite the VFIO bindings set in the GUI (6.9.2) this script kept throwing off the error others have been getting.

 

So I figured I would try to actual turn off the VFIO bindings and low-and-behold the script apparently ran fine and dumped the rom..

 

However, the rom is showing only as 129KB versus 1MB for the TechPowerUp download - opening it up and it seems to start with the 'correct' text but appears to be ominously small in size!!

 

Other question was if to switch from i441 to Q35 I could create a new VM template but still use the same vdisk? (I am using a 500MB vdisk on a 1GB unassigned device SSD).

 

Thanks and any other ideas appreciated

Link to comment
  • 3 weeks later...

I'm trying to dump the Vbios but it seems not working for me :

 

Script location: /tmp/user.scripts/tmpScripts/dump/script
Note that closing this window will abort the execution of this script
You have selected this device to dump the vbios from
03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] (rev c1)

This does look like a valid GPU to me. Continuing .........


Checking if location to put vbios file exists
Vbios folder created at

mkdir: created directory '/mnt/user/isos/vbios/'
I will try and dump the vbios without disconnecting and reconnecting the GPU
This normally only works if the GPU is NOT the Primary or the only GPU
I will check the vbios at the end. If it seems wrong I will then retry after disconnecting the GPU

Defining temp vm with gpu attached
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

Starting the temp vm to allow dump
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

Waiting for a few seconds .....

Stopping the temp vm
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

Removing the temp vm
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory



Okay dumping vbios file named 6800xt.rom to the location /mnt/user/isos/vbios/
/mnt/user/isos/vbios/6800xt.rom is less than 70kb
This seems too small. Probably the GPU is Primary and needs disconnecting and reconnecting to get proper vbios

Running again
Disconnecting the graphics card
1
Entered suspended (sleep) state ......

PRESS POWER BUTTON ON SERVER TO CONTINUE

/tmp/user.scripts/tmpScripts/dump/script: line 254: echo: write error: Device or resource busy
Rescanning pci bus
1
Graphics card has now sucessfully been disconnected and reconnected
It is now ready to begin the dump vbios process

Defining temp vm with gpu attached
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

Starting the temp vm to allow dump
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

Waiting for a few seconds .....

Stopping the temp vm
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

Removing the temp vm
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory



Okay dumping vbios file named 6800xt.rom to the location /mnt/user/isos/vbios/
/mnt/user/isos/vbios/6800xt.rom is less than 70kb
This seems small but maybe its correct. Please try it. All done !

 

Link to comment
  • 3 weeks later...

I got to the point where it says "PRESS POWER BUTTON ON SERVER TO CONTINUE
" and then I press the power button the script doesn't continue just hangs


You have selected this device to dump the vbios from
2d:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)

This does look like a valid GPU to me. Continuing .........


Checking if location to put vbios file exists
Vbios folder created at

mkdir: created directory '/mnt/user/isos/vbios/'
I will try and dump the vbios without disconnecting and reconnecting the GPU
This normally only works if the GPU is NOT the Primary or the only GPU
I will check the vbios at the end. If it seems wrong I will then retry after disconnecting the GPU

Defining temp vm with gpu attached
Domain dumpvbios defined from /tmp/dumpvbios.xml

Starting the temp vm to allow dump
Domain dumpvbios started

Waiting for a few seconds .....

Stopping the temp vm
Domain dumpvbios destroyed

Removing the temp vm
Domain dumpvbios has been undefined

Okay dumping vbios file named rtx 1060.rom to the location /mnt/user/isos/vbios/
/mnt/user/isos/vbios/rtx 1060.rom is less than 70kb
This seems too small. Probably the GPU is Primary and needs disconnecting and reconnecting to get proper vbios

Running again
Disconnecting the graphics card
1
Entered suspended (sleep) state ......

PRESS POWER BUTTON ON SERVER TO CONTINUE

Edited by antonio3427
Link to comment

@antonio3427 your server should enter sleep state, if that doesnt occur then the script wont work further.

 

looks like somehow your sleep function is may disabled ? did you may disable it in the bios somehow ? as you see in the log the way would be as your GPU is the primary one and looks bounded to unraid itself, server goes to sleep, you wake it up again by triggering the power buttom, on the startup (while the GPU is free) the script will try to dump the vbios.

 

in case you have no luck,  may take a look howto setup headless with 1 card and remotely run the script, then your server shouldnt need to go into sleep state which seems to not work on your current setup.

Link to comment
  • 2 weeks later...

Allegedly, from 465.xx.onwards nvidia drivers now support passthrough (GPU Passthrough), as passthrough was software hobbled in drivers to "force" upgrades/purchase of Tesla/Quadro.

 

However unable to passthrough EVGA 1080 GTX SC - 8GB successfully to a Win 10 VM - I czn see it in device manager but is a code 43 regardless.

 

Will attempt this script this week at some point if I get time.

Link to comment
Allegedly, from 465.xx.onwards nvidia drivers now support passthrough (GPU Passthrough), as passthrough was software hobbled in drivers to "force" upgrades/purchase of Tesla/Quadro.
 
However unable to passthrough EVGA 1080 GTX SC - 8GB successfully to a Win 10 VM - I czn see it in device manager but is a code 43 regardless.
 
Will attempt this script this week at some point if I get time.

Do you have a second GPU? Nvidia documentation still says you need two.

From your link-
Do you need to have more than one GPU installed or can you leverage the same GPU being used by the host OS for virtualization?
One GPU is required for the Linux host OS and one GPU is required for the Windows virtual machine.
Link to comment
  • 3 weeks later...

@rxnelson - Good Point, and most likely why it didn't work for me!

I had just moved my 1080 GTX from an i7 6700K based gaming rig to my Dual Xeon E5-2660 Unraid rig, and completely forgot that the Xeons don't have integrated graphics 🙄However I would be curious to know if it will work with an integrated or non-nvidia GPU?

 

Oh and apologies for late reply - I am not getting notifications for some reason!

Edited by Duggie264
Link to comment
@rxnelson - Good Point, and most likely why it didn't work for me!
I had just moved my 1080 GTX from an i7 6700K based gaming rig to my Dual Xeon E5-2660 Unraid rig, and completely forgot that the Xeons don't have integrated graphics However I would be curious to know if it will work with an integrated or non-nvidia GPU?
 
Oh and apologies for late reply - I am not getting notifications for some reason!

Pretty sure it will work with integrated graphics. I think I had a test machine set up on a 4790K using the integrated graphics.
Link to comment

Thought this method may help others 🙂


Struggled with getting my 1050ti to pass thru. Downloaded several so called 'Compatible' vbios from TechPowerup, edited out the header but all of them failed.

 

The key to my success was to, build a physical pc using the 1050ti then use gpuz to dump the vbios, edit out the header info, then pass thru. This method worked flawlessly

Link to comment
Thought this method may help others

Struggled with getting my 1050ti to pass thru. Downloaded several so called 'Compatible' vbios from TechPowerup, edited out the header but all of them failed.
 
The key to my success was to, build a physical pc using the 1050ti then use gpuz to dump the vbios, edit out the header info, then pass thru. This method worked flawlessly

Does it survive a reboot? I have to redump bios if I reboot.
  • Like 1
Link to comment
29 minutes ago, rxnelson said:


Does it survive a reboot? I have to redump bios if I reboot.

Same here....I thought it was just me that had to do that...every time I reboot the server I have to run space invaders plugin script(a lifesaver!!!) And then I can launch the VM. Otherwise it won't work

Link to comment
  • 2 weeks later...
  • 4 weeks later...
On 7/15/2021 at 7:56 PM, Lunch said:

Same here....I thought it was just me that had to do that...every time I reboot the server I have to run space invaders plugin script(a lifesaver!!!) And then I can launch the VM. Otherwise it won't work

@Lunch Unfortunately this is the same for me too with an MSI Trio RTX 3080ti in the top slot of x570 Taichi. Any luck since your last post? I'm away from my server at the moment, but want to experiment some more once back. I've had no issues with other GPUs in the same system booting to Windows10 (passthrough disk).

 

I tried booting to Windows, saving VBIOS via GPU-Z, editing out the top part, and saving as .rom and .dump --- unfortunately neither worked. Thankfully SIO has at least provided some kind of work around.

Edited by jmiller180
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.