GPU passthrough does not work, os won't boot anymore

I am trying to pass through my GPU to use with virtual machines but after editing my configuration I am unable to boot anymore as it gets stuck (on the screen connected to my iGPU) on “[OK] Started Hostname Service”.
I shouldnt have the quiet option on yet I am not getting any error. Its just… Stuck.

I am running the lts version of the kernel, and I have edited my configuration the following way:
Enabled intel iommu (intel_iommu=on) to etc/default/grub (in the “GRUB_CMDLINE_LINUX_DEFAULT” section) along with vfio-pci.ids=the ids of vga controller, audio device, usb controller and serial bus controller of my gpu.
Added the modules “vfio vfio_iommu_type1 vfio_pci vfio_virqfd nouveau” and the “modconf” hook to my /etc/mkinitcpio.conf
Created the file /etc/modprobe.d/vfio.conf with options vfio-pci ids=the same ids as before. Then reconfigured grub and rebuilded initramfs.

Please let me know if you need any more info

Can you access a tty? like ctrl+alt+F2? If not you’ll need a live disk to arch-chroot into your system. First thing I would do is remove the vfio-pci=ids in your Grub command line and the modprobe.d/vfio.conf then rerun your mkinitcpio -P that should hopefully get you back to a working system.

Also, for your awareness, having the vfio-pci ids in both the grub commandline and the modprobe.d file is redundant. You only need one or the other. Most people use the grub commandline until they are sure they have their ids correct, because it’s easy to edit the commandline on boot than rerun mkinitcpio

Also, if I recall correctly, if you have to bind early, you should only need to bind the gpu early.

This is the guide you’re going to want to read through:
https://wiki.archlinux.org/title/PCI_passthrough_via_OVMF
Once you’ve read through that you can get additional info/help from this Reddit:
https://www.reddit.com/r/VFIO/wiki/index/
And additional info/help from this Discord:
https://www.reddit.com/r/VFIO/comments/5b5znr/click_here_to_join_the_vfio_discord_server/

I have managed to solve my own issue and posting it here if anyone encounters this problem: Make sure your iGPU init adaper is set to ICD and not PEG! In my own specific case, the PEG adapter forced me to use the multimonitor function which caused the issue (disabling multimonitor would disable iGPU as well). With ICD my iGPU stays on without this function and allows GPU passthrough.

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.