Is it even possible to pass through my primary GPU? What am i doing wrong?

Ok so my situation is this.
I have a 2950X on an ASRock Fatal1ty X399 mb with a GTX1080 and an RX580.
I am using unraid as my host OS and my goal is to have both a linux and a windows vm each with its own GPU passed through. I am asking about this here because i belive this is more of a general VFIO / QEMU issue than an unraid issue.

So far i have my linux VM working perfectly. Its what i am using to write this post.
The issue i am running into is because the 2950X has no IGPU the gpu in the top slot will always be the primary / default gpu and nomatter what i do i cant get it passed through to a VM. Both gpu’s have the vfio driver bound but nothing works.

I have already spent over a day working on this and i am completely out of ideas.
I have tried swapping the gpu’s because i know nvidia and amd can act differently in certain situations.
I have tried giving qemu the vbios for the card in the top slot.
i have tried the usual fixes for the nvidia code 43 error. (enabling multifunction and hyperv tweaks)

Without the vbios i get nothing but a black screen.
with amd in the top slot + vbios the display will turn on and with windows i will see the vm’s bios splash screen but then nothing. It just freezes there.
If i try a linux iso i get the grub boot screen but when i try to boot it also just freezes.

with nvidia in the top slot + vbios its very similar. I tried booting an actual installed linux instance and i get what looks like a boot loop. It would just print the first few lines of startup consoul output over and over.
But with windows i am actually able to boot but i get no drivers and the infamous error code 43. But all things considdered i’m pretty sure this isnt the “usual” error 43. There is something else seriously wrong.

Yesterday i spent hours screwing with this, swapping gpu’s, trying different vbios, trying differend os’s etc. In the end i decided to give up and install a third cheap gpu to use as the primary only to discover that isnt an option ether. Because the meshify C i am using does not support a double height card in the bottom slot and my gpu’s are way to thick to stack directly on top of each other. They are like 2.25 slot cards. They do fit together barly but the backplate of one is pressed hard against the fans of the other regardless of which order i put them in.

I’m really hoping someone here can help me out because at this point the only option i see is to get a different case that will allow me to use 3 GPU’s. But as much as it would be nice to have the ability to connect a display to the host i really dont want to have to have some random $20 gpu in this system. Not to mention the meshify C is a nice case that i dont want to have to replace.

I have mentioned this on this forum a few times. The only thing that really screwed me over with top slot passthrough is EFI framebuffer. It’s symptoms are exactly the same as yours. Passing vbios and all would boot loop windows and sometimes it would appear on screen sometimes not. For your kernel boot options add video=efifb:off. I would think that unraid does that but who knows. Checking that and making sure is a good practice. If all fails do journalctl -f , boot vm wait for about 1 min and post what it recorded.

2 Likes

Thank you. Do by any chance know where i need to put that in unraid? I know how to do that in a system that used grub but unraid does not use grub.

Unfortunately no, if it uses kernelstub then kernelstub -a “video=efifb:off” then bootctl update.
Edit: for passthrough you should have been doing immou on and other boot options. It’s the same place.
Edit2:


here there is a video. I had really quick look and at around 12 minutes he is messing about kernel boot options. If all fails just google “unraid kernel boot options add”

2 Likes

I found it. /boot/syslinux/syslinux.cfg And it worked!
For anyone else in this situation you just need go the the menu default block and change append initrd=/bzroot to append initrd=/bzroot video=efifb:off
Thank you Wolf
Edit: IOMMU is already enabled by default and unraid has a handy little script for binding vfio so i did not have to find this file for ether of those.

2 Likes

Good good. Happy to see a fellow vfio user having it work.

2 Likes