Nvidia driver doesnt work after kernel change (Manjaro Cinnamon)

Hi,

i was doing the vfio (the lts 4.19 one) and acs override patch (which worked) with a fresh install of Manjaro but I couldnt for the life of me make it work AND still be able to get to my desktop.
it would hang before X, manually starting via startx revealed that no displays are found.
via journalctl -r i get
systemd[1]: Failed to start Light Display Manager.
and further down
systemd-modules-load[394]: Failed to find module ‘nvidia-drm’
systemd-modules-load[394]: Failed to find module ‘nvidia’
Using the default 4.19 Kernel still works flawlessly.
When I upgrade the Kernel to 4.20.1 via pacman -Syu the problem is the same as with the vfio Kernel.
What can I do about this?

And unrelated side question: Why is the vfio 4.20 marked out of date?

From what i have read on here a few times, nVidia stuff will freak out if you change the kernel underneath it. Looks like whats happened here.

The more I read about Linux and Nvidia, the more I understand why Linus said what he said to them :smiley:

5 Likes

It works well, and that is the majority of the time but they are odd about their support.

Someone here will help but sadly I am not them, not linux using or nVidia owning.

What version of the Nvidia driver are you using?

1 Like

Right now its extra/linux419-nvidia
I didnt thought about checking that until now. is it really as easy as installing linux420-nvidia?

Give it a shot if you have that option. I’m not familiar with majaro, but usually when my graphics driver breaks after a kernel upgrade I can fix it easily by either upgrading my driver or reinstalling it.

Thanks so far!
I’ll give you the result as soon as I have time to try this :slight_smile:

On Manjaro with the nvidia driver you have to run mkinitcpio after you change or update the driver. Same thing if you update the kernel. It’s weird.

Take a look at this Wiki article about setting it up, it should help.

https://wiki.manjaro.org/index.php?title=Configure_NVIDIA_(non-free)_settings_and_load_them_on_Startup#Troubleshooting:_X-Server_Failed_to_Start_and_Install

2 Likes

It only worked half way. the second part where i install the driver again installs another kernel. At least I’m now on the desktop with the vfio kernel. Software rendering is terribly slow :smiley:
how do I get the nvidia driver to load on the vfio kernel?

I think you have to specify it when you are running the mkinitcpio command.

I don’t use Manjaro so I don’t know what it would be exactly, but it would probably be your kernel+vfio or something similar.

You can look in /etc/mkinitcpio.d/ to see what is available.

It looks like they might have the steps out of order too, not sure why. Run the mkinitcpio after you run the command to install the non-free driver.

You might also need to add the nvidia, nvidia_modeset, nvidia_uvm, and nvidia_drm kernel modules.

I don’t know if the Manjaro tool / non-free driver install does this automatically or not.

Their documentation also talks about being able to install the driver from the Manjaro Settings Manager, you could try it from there once you are booted on the vfio kernel.

Doesnt work :confused:
Here someone had the same problem: https://www.reddit.com/r/VFIO/comments/87sti2/problem_with_acspatched_kernel_and_driver/
and and older thread in the manjaro forum:
https://forum.manjaro.org/t/how-to-get-display-drivers-working-with-custom-kernels/5681
Is it me or is this stupid?

You could try installing the nvidia driver manually from the packaged provided by nvidia.

It should install the modules for whatever kernel version is currently running.

Again, I think you might need the nvidia, nvidia_modeset, nvidia_uvm, and nvidia_drm kernel modules, or at least nvidia and nvidia_drm, because in your original post that is why the display driver wasn’t loaded. But I don’t know if it’s because they weren’t told to be loaded or if it’s because they simply don’t exist for that kernel. I checked and if you saw the systemd-modules-load it was because you had the nvidia and nvidia_drm modules in your config, but they didn’t exist on disk. At least according to systemd documentation.

"systemd-modules-load.service is an early boot service that loads kernel modules based on static configuration."

It really seems like the manjaro nvidia installer isn’t installing the kernel modules for your vfio kernel.

recommend against downloading and installing from nvidia site

pacman will upgrade kernel 4.19 (currently 4.19.16) with nvidia driver to match
but does not update to next version number 4.20

suggest go to Settings > Manjaro Settings Manager > Kernel
and install 4.19 kernel if needed (this is the latest 'Long Term Supported kernel)
can have more than one kernel installed, i keep 2 installed in case of problems

My plan was to have FreeNAS in a vm with the sata controller passed through. Now that this isnt easy because of the “special” vfio kernel + nvidia suckery, i decied against that.
The only features i need are zfs, samba and nfs anyways.
I’ve been reading a lot on zfs the last few days and already have a fantastic 10x8TB (shucked easystores) RAIDZ2 running :slight_smile:

Edit.: And yes, i have ECC (Thanks AMD! ;D)

Hey so forgive me if I do not understand.

It is strange, the behavior in you first post sounds like vfio-pci is grabbing your one and only (or main) gpu.

If I am correct you are not trying to pass through your GPU, and you are trying to pass your Sata controller to the vfio-pci driver and this happens?

If you only need ZFS, Samba, and NFS, could you get by with nouveau instead of the proprietary version?

I have some experience with different methods of installing proprietary Nvidia drivers, I can offer my experiences with that. I haven’t used manjaro, or any arch based distro :frowning: though.

I have passed through some PCI devices without first giving them to the vfio driver, I only do this for my GPUs. I don’t know if you typically do it with sata controllers or not.

I have my drives hooked up to the chipset sata controller. This controller is in one IOMMU Group with other stuff I need on my host system. To split them up I have to use the vfio kernel with the acs patch applied. Passthrough then worked fine and freenas did everything i wanted, but since my host system is still going to be used for gpu intensive stuff (blender and gaming) i wanted to use the better performing non-free driver. This driver seems to not work with something other than the mainline kernels. Thats why I ditched the idea of using freenas in a vm and turned my head to the basically only feature of freenas i actually need: zfs.

:slight_smile:

Did you already try a previous version of the Nvidia driver?
Like 415?

yeah, problem is that some versions then want to install the fitting kernel

This may not be of help, but here is my personal workflow. It requires a second GPU, or headless host system.

I occasionally want and need to use proprietary nvidia drivers. I pass my nvidia card into its own VM. There are a lot of great resources on gpu passthrough on this forum.

Done right you get the following advantages:

  • separation of host kernel and guest kernel with nvidia drivers (talking about in a version sense, not tinfoil hat security sense)
  • snapshotting VM once you get GPU acceleration for whatever task up and running
  • can run whatever host distro you prefer, and run whatever distro is most convenient for the gpu accelerated task (usually Ubuntu) as guest
  • can run an older guest (Ubuntu 16.04 tends to work much better for some stuff I do than 18.04 at this point)

Idk sorry if that’s an impractical option for you. As far as nvidia driver install methods go, I personally prefer adding their PPA’s. Ubuntu’s own repos will place their stuff in a different place. With the runfile you must run again after every kernel upgrade or change (but good choice if in a VM that you’re okay with keep outdated).