Why the ongoing nvidia issues?
Let’s start at the beginning.
Most distributions require the user to manually install the nvidia drivers via either their package manager GUI or command line. The command line is not user-friendly, and Fedora does not have an official package manager GUI, and both gnome software and KDE-Discover do not fully support 32 bit package installation.
We created a custom script which detects Nvidia hardware, and performs the required steps without the user needing to enter commands.
Obviously a custom script requires debugging the script’s code. It was far from perfect in it’s first iteration. There were mistakes with missing package names, mistakes with PCIE device detection, mistakes with various different repositories, and so on.
We continued to resolve these as we hit them, but obviously in order to get the script in good working order, we -had- to perform trial and error.
Broken functionality in the existing options. First, we tried rpmfusion. After doing so we found that for basic gaming it was -ok-, but we were still hitting script bugs here and there. Eventually, we thought maybe there’s a driver issue, so we moved from rpmfusion drivers to the Negativo17 drivers, but the same user issues persisted even with those drivers. Eventually, we narrowed down part of the cause being due to an incorrect regex in the script that was not detecting some cards (this happened twice, once with only numerical detection being used for alphaneumerical PCI IDs, and a second time for asus-specific card names).
Once we fixed the regex issue and reverted everyone -back- to rpmfusion, everything was mostly peachy. Drivers worked great for a good few months.
Then it was brought to my attention that Davinci Resolve Studio was not providing H264/H265 encode options. Every other distro out there works fine with Nvidia drivers + Davinci resolve.. except Fedora.. with these drivers. Since rpmfusion drivers were not working.. we thought ok, let’s try negativo17 drivers again (this was tested internally this time, -not- pushed public).. but still no encoder options showed up. What in the world?
Then, reading the rpmfusion documentation we found that they recommend the official nvidia cuda drivers for full cuda support:
To make matters worse, the negativo17 drivers were supposed to already mimic the official drivers and provided their own cuda packages… which of course, did not work.
We then switched everyone to the nvidia official cuda driver repository. (3rd repo change now)… but our problems didn’t end there..
So, we switched to the official repo. Great. gnome works. Davinci Resolve works. However, SDDM failed to work. In fact it outright completely denied nvidia-smi from working at all, and nvidia-drm.modeset=1 was not being set for some users. Not only that, but the official repo force-disabled the ‘nvidia-driver’ module on fedora, which of course caused more chaos for people trying to either update on negativo17 or completely wipe + reinstall drivers. Furthermore, we found that even though negativo17 ‘states’ they are compatible with official’s repo, there were some package conflicts (notably nvidia-driver powerd), which prevented us from doing a mix of negativo17 + official. On top of that since negativo17 provided their own, broken cuda, it conflicted with Nvidia’s official, working one.
Thankfully negativo17 provides all of their package sources on github, so we’ve finally moved on to building and maintaining our own nvidia driver packages which work properly alongside the official cuda packages.
So now what we’ve done is built all of the nvidia driver packages and provided them from nobara-appstream, and copied -only- the required the official nvidia cuda packages to nobara’s nvidia-driver-official repo. This allows us to have the latest nvidia driver -and- working cuda thankfully. GDM and SDDM are both happily working now, as well as Davinci Resolve … for the time being.
Two bugs have been opened on the Negativo17 side:
Rpmfusion simply tells its users to use the official repo (which as explained, has problems), and does not provide full cuda support .