GPU Passthrough on Cassini

As I’ve noticed, EndeavourOS now uses dracut. But while trying to pass through a gpu on Cassini, I ran into issues.

First, this tutorial does not work for me. I’ve tried.

Second, I tried to go the other direction and use modules-load.d for my module loading. It managed to load two modules successfully (vfio and vfio-pci) but failed to load the other 2 (vfio_iommu_type1 and vfio_virqfd), which resulted in GPU audio device being passed through, but video device being left with nvidia driver. Not doing anything in modules-load.d and using just dracut alone has pretty much no effect on my GPU and leaves both video and audio devices without vfio-pci.

The point is, I can’t get gpu passthrough to work on EndevaurOS with dracut. I actually switched from manjaro, where I had it more or less working with mkinitcpio.

I discussed this in detail more in this GitHub thread.

I would be very thankful for your help, and I’m keen on helping you if this turns out to be some kind of a bug.


if it do work on mkinitcpio you can switch to use this… but they say the script should also support dracut…

would be interesting to see any log or error messages ?

Sure, tell me what I need to provide.

i do not know about the error shown when you tried the script …

This program definitely doesn’t appear to support EndeavourOS.

That being said, there shouldn’t be anything special to making passthrough work here.

However, if you would rather run mkinitcpio, you can easily switch back to that.

No, I mean, If you want to see something particular, like journalctl or dmesg or something.

As far as it goes, I’ve fround only this in my journalctl, I have:

dracut-pre-udev[393]: modprobe: FATAL: Module vfio-pci not found in directory /lib/modules/6.1.1-arch1-1

You can use command

eos-log-tool --enable-journal

and select logs that you consider useful. Be sure to include at least
System journal, most recent.
Finally click Share logs to the internet and show the Result URL here.

Yeah, I know, that was my bet.

I’m fine with using the newer approaches as long as they can work for me. So I’m trying my best to transition.

But if there’s no solution I’ll probably try and switch back to mkinitcpio.

Thanks for the logs. I’ll let them for the experts to see as I’m not familiar with GPU passthrough.

Edit: maybe this can help?
i tried out passtrhrough here once before… following this archwiki… but i was using with mkinitcpio in use … but i just see archwiki has instructions for dracut…

Yes I know, I actually followed them before, but these don’t seem to work. I mean it’s as if these modules don’t get loaded at all.

These are very similar, almost identical, to the Arch wiki ones I followed, up to the part where you need to change hooks and modules, because these are for mkinitcpio users.

and you where rebuilding kernel images ?

Yes but I was doing it using dracut -f (sometimes also -H, because that’s what was suggested here)

you should follow this:

for EndeavourOS dracut installs…

1 Like

If you use dracut -f, it will build the initrd in the wrong place so it won’t get used. You should use sudo dracut-rebuild if you are on grub.


Oh, my bad, I’ll try and do the same way I did before but using dracut-rebuild, I’ll report back results.

1 Like

Wonderful. I think it worked!

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106M [GeForce RTX 3060 Mobile / Max-Q] [10de:2560] (rev a1)
        Subsystem: Lenovo Device [17aa:3e85]
        Kernel driver in use: vfio-pci
        Kernel modules: nouveau, nvidia_drm, nvidia
01:00.1 Audio device [0403]: NVIDIA Corporation GA106 High Definition Audio Controller [10de:228e] (rev a1)
        Kernel driver in use: vfio-pci
        Kernel modules: snd_hda_intel

I’m very thankful to you for your help!