Fedora 40 xfce Steam games 2nd monitor

they probably need a patch to support kernel 6.10.x.

Download a newer version from koji and use that. I installed 550.90 on Sunday to check for some regression. You can also get the SRPMs for 550.107 (el9) and use rpmbuild to create your own rpm packages for f40. It’s not difficult to do. You can experiment with rpmbuild in a container or VM.

Proton 9: just an idea, have you tried to set the internal display to 1600x900?
Perhaps proton prefers the display with the higher desktop resolution?

I thought the same thing at first, but when I looked they’re basically the same. Whatever generates the log appears to take the bottom ~30 lines, strips the line prefix and prepends to the start of the log.

Here’s the bottom ~12 lines of the log. With the exception of the "date time akmodsbuild: ", prefix, it’s basically the same as portion I previously posted (which was from the TOP of the log file). Actually, I no longer have the log I posted before, because I reran the akmods command, but I did compare the top and bottom of the current log and they’re the same.

I’m happy to post the entire log if you like.

2024/09/11 18:21:32 akmodsbuild:   437 | void nv_ibmnpu_cache_flush_numa_region(nv_state_t *nv)
2024/09/11 18:21:32 akmodsbuild:       |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2024/09/11 18:21:32 akmodsbuild: make[2]: *** [/usr/src/kernels/6.10.8-200.fc40.x86_64/Makefile:1946: /tmp/akmodsbuild.eGHtUZ81/BUILD/nvidia-kmod-550.67/_kmod_build_6.10.8-200.fc40.x86_64] Error 2
2024/09/11 18:21:32 akmodsbuild: make[1]: *** [Makefile:252: __sub-make] Error 2
2024/09/11 18:21:32 akmodsbuild: make[1]: Leaving directory '/usr/src/kernels/6.10.8-200.fc40.x86_64'
2024/09/11 18:21:32 akmodsbuild: make: *** [Makefile:85: modules] Error 2
2024/09/11 18:21:32 akmodsbuild: error: Bad exit status from /var/tmp/rpm-tmp.Qvvb4U (%build)
2024/09/11 18:21:32 akmodsbuild: 
2024/09/11 18:21:32 akmodsbuild: RPM build errors:
2024/09/11 18:21:32 akmodsbuild:     Bad exit status from /var/tmp/rpm-tmp.Qvvb4U (%build)
2024/09/11 18:21:32 akmodsbuild: 
2024/09/11 18:21:32 akmods: Building rpms failed; see /var/cache/akmods/nvidia/550.67-1-for-6.10.8-200.fc40.x86_64.failed.log for details

ok… I’ll take a look at that.

I haven’t… I’ll give it try.

It’ll be easier and quicker to download the newer 550.90 drivers from koji.rpmfusion.org. At some point these drivers were distributed by the rpmfusion-nonfree-updates repository. I understand you want this to test Proton 8.

that was the idea, but it seems the top leftmost coordinate starts at 0,0. There are no negative coordinates. The last time I dealt with xfree.conf was in the mid 90’s when I created a modline for my then new 17" Multisync monitor to get a desktop with almost 1152x900 on a NetBSD/Amiga. :slight_smile:

OK. In fact I already downloaded the rpms for 550.76, 550.78 and 550.90 from koji.rpmfusion.org, before I did the 550.67 install. I wanted to start with the easiest solution first, then if needed try the alternates. So… my new plan is:

# dnf remove '*nvidia*' --exclude nvidia-gpu-firmware --noautoremove
(reboot?????)
# dnf install nvidia-550.90.07.fc40/*rpm
(wait for akmod)
# reboot

Questions:

  1. Should I use --noautoremove or not?

  2. Should I reboot after removing 550.67 but before installing 550.90.07?

  3. I assume akmod will still run even though I’m installing the 550.90.07 version of the akmod-nvidia package directly from a local .rpm file. It certainly seems logical to me that it would.

Also, just an FYI. I have a complete backup of the F40 partition from just before I did the 550.67 install just in case things really get wonked up. If necessary, I can boot to the F37 partition and recreate the F40 partition as it was.

OK. In that case I won’t try that idea. Thanks. I will still try setting the internal display to 1600x900 and see if that makes a difference.

  1. it depends. try w/o and see what dnf would want to autoremove. But as you plan to have nvidia drivers installed , then it’s probably good idea to keep the other packages installed.
  2. no reboot needed
  3. akmod does not know and don’t care how it was installed. In the end rpm is always involved anyway.

for the local install, download only the rpms you need and require, compare with the installed packages. Or provide all rpm filenames in the cmd line e.g. dnf install ./akmod*rpm ./xorg-x11-drv... nvidia-modprobe*.rpm etc.

UPDATE: You can do a dnf upgrade. You have an older driver installed right now.
so a dnf upgrade dir/*rpm --disablerepo=fedora-nonfree-updates is all you need

This is correct but is missing one critical part.
When upgrading with a local rpm you must tell dnf which rpm to use, not just the *rpm but exactly which rpm unless you are upgrading to the latest version in that location.

You also must not have the rpmfusion-nonfree-nvidia-driver repo enabled (which many do) or disable that one as well

that is the idea… dnf upgrade nvidia-550.90.07.fc40/*rpm

1 Like

So that didn’t work.

First I’m assuming you meant “rpmfusion-nonfree-updates” not “fedora-nonfree-updates”?

I already have “rpmfusion-nonfree-updates” permanently disabled

# dnf repolist
repo id                        repo name
brave-browser                  Brave Browser
fedora                         Fedora 40 - x86_64
fedora-cisco-openh264          Fedora 40 openh264 (From Cisco) - x86_64
rpmfusion-free                 RPM Fusion for Fedora 40 - Free
rpmfusion-free-tainted         RPM Fusion for Fedora 40 - Free tainted
rpmfusion-free-updates         RPM Fusion for Fedora 40 - Free - Updates
rpmfusion-nonfree              RPM Fusion for Fedora 40 - Nonfree
updates                        Fedora 40 - x86_64 - Updates

and just to show what’s currently installed and the rpms I downloaded:

# dnf list installed '*nvidia*'
Installed Packages
akmod-nvidia.x86_64                      3:550.67-1.fc40      @rpmfusion-nonfree
nvidia-gpu-firmware.noarch               20240909-1.fc40      @updates          
nvidia-modprobe.x86_64                   3:550.67-1.fc40      @rpmfusion-nonfree
nvidia-persistenced.x86_64               3:550.67-1.fc40      @rpmfusion-nonfree
nvidia-settings.x86_64                   3:550.67-1.fc40      @rpmfusion-nonfree
xorg-x11-drv-nvidia.x86_64               3:550.67-1.fc40      @rpmfusion-nonfree
xorg-x11-drv-nvidia-cuda.x86_64          3:550.67-1.fc40      @rpmfusion-nonfree
xorg-x11-drv-nvidia-cuda-libs.i686       3:550.67-1.fc40      @rpmfusion-nonfree
xorg-x11-drv-nvidia-cuda-libs.x86_64     3:550.67-1.fc40      @rpmfusion-nonfree
xorg-x11-drv-nvidia-kmodsrc.x86_64       3:550.67-1.fc40      @rpmfusion-nonfree
xorg-x11-drv-nvidia-libs.i686            3:550.67-1.fc40      @rpmfusion-nonfree
xorg-x11-drv-nvidia-libs.x86_64          3:550.67-1.fc40      @rpmfusion-nonfree
xorg-x11-drv-nvidia-power.x86_64         3:550.67-1.fc40      @rpmfusion-nonfreee

# ls -1 nvidia-550.90.07/*.rpm
nvidia-550.90.07/akmod-nvidia-550.90.07-1.fc40.x86_64.rpm
nvidia-550.90.07/nvidia-modprobe-550.90.07-1.fc40.x86_64.rpm
nvidia-550.90.07/nvidia-persistenced-550.90.07-1.fc40.x86_64.rpm
nvidia-550.90.07/nvidia-settings-550.90.07-1.fc40.x86_64.rpm
nvidia-550.90.07/xorg-x11-drv-nvidia-550.90.07-1.fc40.x86_64.rpm
nvidia-550.90.07/xorg-x11-drv-nvidia-cuda-libs-550.90.07-1.fc40.i686.rpm
nvidia-550.90.07/xorg-x11-drv-nvidia-cuda-libs-550.90.07-1.fc40.x86_64.rpm
nvidia-550.90.07/xorg-x11-drv-nvidia-kmodsrc-550.90.07-1.fc40.x86_64.rpm
nvidia-550.90.07/xorg-x11-drv-nvidia-libs-550.90.07-1.fc40.i686.rpm
nvidia-550.90.07/xorg-x11-drv-nvidia-libs-550.90.07-1.fc40.x86_64.rpm
nvidia-550.90.07/xorg-x11-drv-nvidia-power-550.90.07-1.fc40.x86_64.rpm

So… I first tried this:

# dnf upgrade nvidia-550.90.07/*.rpm
Last metadata expiration check: 0:05:01 ago on Thu 12 Sep 2024 07:56:49 PM PDT.
Dependencies resolved.

 Problem: problem with installed package xorg-x11-drv-nvidia-cuda-3:550.67-1.fc40.x86_64
  - package xorg-x11-drv-nvidia-cuda-3:550.67-1.fc40.x86_64 from @System requires nvidia-modprobe(x86-64) = 3:550.67, but none of the providers can be installed
  - package xorg-x11-drv-nvidia-cuda-3:550.67-1.fc40.x86_64 from rpmfusion-nonfree requires nvidia-modprobe(x86-64) = 3:550.67, but none of the providers can be installed
  - cannot install both nvidia-modprobe-3:550.90.07-1.fc40.x86_64 from @commandline and nvidia-modprobe-3:550.67-1.fc40.x86_64 from @System
  - cannot install both nvidia-modprobe-3:550.90.07-1.fc40.x86_64 from @commandline and nvidia-modprobe-3:550.67-1.fc40.x86_64 from rpmfusion-nonfree
  - cannot install the best update candidate for package nvidia-modprobe-3:550.67-1.fc40.x86_64
===========================================================================================================================================================================================================================================
 Package                                                    Architecture                                      Version                                                        Repository                                               Size
===========================================================================================================================================================================================================================================
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 nvidia-modprobe                                            x86_64                                            3:550.90.07-1.fc40                                             @commandline                                             31 k

Transaction Summary
===========================================================================================================================================================================================================================================
Skip  1 Package

Nothing to do.
Complete!

When that failed I tried it again with the explicit --disblerepo, even though one is already disabled and the other doesn’t exist as far as I can tell:

# dnf upgrade nvidia-550.90.07/*.rpm --disablerepo=rpmfusion-nonfree-updates
and
# dnf upgrade nvidia-550.90.07/*.rpm --disablerepo=fedora-nonfree-updates

Both had the same results as before.

I then got slightly different results, but still failure by explicitly disabling the “rpmfusion-nonfree” repo which is where I installed 550.67 from:

# dnf upgrade nvidia-550.90.07/*.rpm --disablerepo=rpmfusion-nonfree
Last metadata expiration check: 0:06:24 ago on Thu 12 Sep 2024 07:56:49 PM PDT.
Dependencies resolved.

 Problem: cannot install both nvidia-modprobe-3:550.90.07-1.fc40.x86_64 from @commandline and nvidia-modprobe-3:550.67-1.fc40.x86_64 from @System
  - package xorg-x11-drv-nvidia-cuda-3:550.67-1.fc40.x86_64 from @System requires nvidia-modprobe(x86-64) = 3:550.67, but none of the providers can be installed
  - cannot install the best update candidate for package nvidia-modprobe-3:550.67-1.fc40.x86_64
  - problem with installed package xorg-x11-drv-nvidia-cuda-3:550.67-1.fc40.x86_64
===========================================================================================================================================================================================================================================
 Package                                                    Architecture                                      Version                                                        Repository                                               Size
===========================================================================================================================================================================================================================================
Skipping packages with conflicts:
(add '--best --allowerasing' to command line to force their upgrade):
 nvidia-modprobe                                            x86_64                                            3:550.90.07-1.fc40                                             @commandline                                             31 k

Transaction Summary
===========================================================================================================================================================================================================================================
Skip  1 Package

Nothing to do.
Complete!

So… I went back to the remove/install approach:

and that worked:

$ nvidia-smi
Thu Sep 12 21:04:18 2024       
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.90.07              Driver Version: 550.90.07      CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3080 ...    Off |   00000000:01:00.0  On |                  N/A |
| N/A   52C    P8             14W /   80W |      66MiB /  16384MiB |      4%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A      1427      G   /usr/libexec/Xorg                              53MiB |
+-----------------------------------------------------------------------------------------+

So, now I’ll do some more testing…

After testing… with 550.90.07 on F40 that seems to have fixed the external display freezing issue. Played a few games for a while and none of them froze, whereas with 560.35.03 they would all freeze almost immediately or after only a short time in game.

It feels like the games are a bit slower/choppier (ie lower FPS), than they were in F37, but that could be my imagination… I may turn on the Steam FPS overlay and check it in both F40 and F37 to see if there really is a difference.

As for the Proton 9 issue (won’t go to display configured as Primary), I tried to set the internal display to 1600x900, but the games still started on the internal (ie left most) display. As I said before, with Proton 8, this part works as expected… the game starts on Primary whichever display that may be.

It looks like someone at Valve/Proton may finally be trying to look into this issue and is asking for logs and stuff, so I’ll post what they want over there.

Thanks Mark and Jeff for all the help on this.

PS. I might consider trying a few of the 555.XX versions to see if I can narrow down when the external display freezing problems started… assuming there are 555.XX versions on koji.rpmfusion.org, I haven’t looked yet.

1 Like

yes, this should have been rpmfusion-nonfree-updates, sorry about that. Disabling the repo is not really required, but it will prevent dnf from considering anything from that repository in case something was not quite right.

The dnf upgrade failed because dnf had not received the necessary upgrade for cuda.

installed:
xorg-x11-drv-nvidia-cuda.x86_64          3:550.67-1.fc40      @rpmfusion-nonfree
xorg-x11-drv-nvidia-cuda-libs.i686       3:550.67-1.fc40      @rpmfusion-nonfree
xorg-x11-drv-nvidia-cuda-libs.x86_64     3:550.67-1.fc40      @rpmfusion-nonfree

provided for dnf upgrade:
nvidia-550.90.07/xorg-x11-drv-nvidia-cuda-libs-550.90.07-1.fc40.i686.rpm
nvidia-550.90.07/xorg-x11-drv-nvidia-cuda-libs-550.90.07-1.fc40.x86_64.rpm

the problem becomes clear in this error message:

Problem: problem with installed package xorg-x11-drv-nvidia-cuda-3:550.67-1.fc40.x86_64
  - package xorg-x11-drv-nvidia-cuda-3:550.67-1.fc40.x86_64 from @System requires nvidia-modprobe(x86-64) = 3:550.67, but none of the providers can be installed
  - package xorg-x11-drv-nvidia-cuda-3:550.67-1.fc40.x86_64 from rpmfusion-nonfree requires nvidia-modprobe(x86-64) = 3:550.67, but none of the providers can be installed

dnf cannot resolve the conflict, because cuda requires nvidia-modprobe(x86-64) = 3:550.67 while the new packages require nvidia-modprobe(x86-64) = 3:550.90
etc.

good to know. Is Proton 8 still being updated? I would imagine that Valve will investigate the issues with Proton 8 once Nvidia has released the new stable branch 560.xx or 565.xx, which replaces the current 550.x branch.

Ah yes… sorry I should have noticed that. The cuda package is optional and I originally installed it separate from akmod-nvidia (which automagically installed all the other required packages). I did download cuda, it’s in a subdir of the others (nvidia-550.90.07/optional/), so it wasn’t picked up when I did “dnf upgade nvidia-550.90.07/*.rpm”. I didn’t catch the message was complaining about cuda, my brain was focused on nvidia-modprobe and I missed it. Regardless the remove/install method seemed to work fine.

So, the Valve/Proton issue isn’t related to Proton 8, it’s related to Proton 9.

I probably mentioned Proton 8 far too many times, but it was only because it was the “other” version of Proton I was testing and I may have originally thought it was the difference.

So… to restate the 2 issues as I see them now:

  1. Game freezes with nvidia-560.35.03 IF it’s started on the external display, regardless which version of Proton is used. This was fixed by downgrading to nvidia-550.90.07. Now the games no longer freeze on the external display. It’s yet to be determined at what point between those two nvidia releases the freezing problem first started… assuming I decide to venture down that path.

  2. Using Proton 9, the game does not start on the display configured as Primary. Instead it starts on whichever display is configured at 0,0. This problem isn’t related to the version of Fedora (or even the distro). This problem might be related to the version of the nvidia drivers, but from my point of view I saw the problem using F37/nvidia-545, F40/nvidia-550 and F40/nvidia-560, so it feels less likely to be related to nvidia. As far as I can tell, this has been a problem since Proton 9 was first released. This is the issue in the above Valve/Proton link.

If you configure the monitor where you want the game to start as being to the left or on top then as long as the game is oriented according to 0,0 at the top left of all displays the game should start on that monitor.

To me the location where the game starts seems easily fixed regardless of where the monitor is actually located (though it may cause some confusion for moving between the monitors with the mouse if physical orientation does not match the configuration.)

This may fix both #1 & #2, though it certainly should solve #2.

Correct. That is how it works. I’ve testing it in various different configurations on both F37 and F40 using Proton 9.

Again correct. And yes, it is quite confusing. While this is a fine thing to TEST… I (personally) don’t see it as a solution, it’s just more information that might lead to a real fix. I and others have already tested this and reported it.

This only “fixes” #2. #1 was fixed by downgrading the nvidia driver to 550.90.07.

Once it’s installed, it’s no longer optional, is it?

Ok, I assumed this is a specific proton 8 issue.
Can you reproduce with Proton/wine with the internal display disabled? (one monitor config )
There are several reports regarding freezes on laptops in a multi monitor configuration for the 555* and 560* NFB drivers.

The Nvidia recommended drivers are still 550.*. I’ve rpmbuild my own 550.107.02 packages, but only the x64_86 variants.
Maybe @leigh123linux will be so kind to initiate a build of 550.107.02 for f40 on koji.rpmfusion?

Well… I guess that probably depends on the context and how you interpret the word “optional”. :slightly_smiling_face:

When I said optional, I meant it’s a package that isn’t one of the packages akmod-nvidia requires and automatically installs. And the cuda package isn’t required for the driver itself to work. And that was (incorrectly) my way of thinking when I went to do the upgrade. Again, I freely admit I did the upgrade wrong based on the packages I had installed.

You’re correct, once cuda is installed it’s no longer optional with respect to the version of the drivers that are installed.

I’m assuming if I had done the upgrade like either one of these approaches it would have worked fine.

  1. Explicitly add it on the upgrade command:
# dnf upgrade nvidia-550.90.07/*.rpm nvidia-550.90.07/optional/xorg-x11-drv-nvidia-cuda-550.90.07-1.fc40.x86_64.rpm
  1. -OR- First remove cuda, then do the upgrade
# dnf remove xorg-x11-drv-nvidia-cuda
# dnf upgrade nvidia-550.90.07/*.rpm

The cuda package could then be “optionally” installed at any later point if desired, it wasn’t actually needed to test the driver. In fact, the only reason I installed the cuda package is because that’s where the nvidia-smi command lives and it’s a useful command for verifying both the version of the current driver and what processes are using the driver… and I’m sure many other things.

I can’t remember if I tried that or not. I maybe did, but can’t be sure. And I don’t remember the results if I did. I’m not ready right now to upgrade to 555 or 560 in order to test it. If I had a separate system dedicated to testing I’d be more inclined, but this is my main laptop and the only one with an nvidia GPU, so I’m leaning towards leaving the driver as is for now. If I get some spare time and the inclination, I might be willing to test that and try to narrow down exactly which 555/560 release I start to see the “freezing on external display” issue.

I did see some of those reports from others having freezing issues, but it seems like many of them were different from my experience. For me, it was only when I ran windows-based games (ie games needing Proton) on the external display. While I had 560 installed, I didn’t notice freezing issues any other time. Not saying it’s necessarily a different cause, they certainly could all be related, just saying I don’t have any direct experience with other freezing issues.

Which made me wonder a bit why the rpmfusion-nonfree-updates repo moved to the 555/560 drivers. When I first installed the F40 nvidia drivers (8/21), they were at 555.58.02, and I just assumed (incorrectly) that was a “stable” release. It wasn’t until I starting having problems and looked at the NVIDIA driver page that I realized 555 was the “new feature branch”.

I get rpmfusion is more bleeding edge than the normal fedora repos, but since it’s the only “repo-ish” way to get the nvidia drivers for F40 it kind of feels like 555/560 would have been more appropriate in the rpmfusion-nonfree-updates-testing repo… or maybe some other repo. Admittedly, I have very little experience in this area, so completely understand I may be missing the mark. Just seems like it makes it more complicated for someone to get the “recommended/certified” version of the nvidia drivers.

From what I understand there’s also a cuda repo apparently managed directly by nvidia? But it hasn’t been updated for F40, only F39. It also seems a little more involved than the rpmfusion method… at least based on the link, I have no direct experience with it.

And, there’s the manual driver installation method by getting the drivers direct from NVIDIA, but that method just seemed more complicated to setup and manage than I wanted.

If 550.107.02 for F40 becomes available on koji.rpmfusion, I’d very likely be willing to give it a try. There actually is a build for 550.107.02, but it was cancelled, so the rpms don’t currently exist.

exactly, in fact I would rather mv cuda.rpm to … and rmdir the optional dir.

In case you want to try 555.* or 560.*:
you’ll find driver 555.58.02 in repo rpmfusion-nonfree-nvidia-driver and ofc the current 560 in rpmfusion-nonfree-updates.

you can quickly upgrade from 550 with
dnf upgrade --enablerepo=<insert reponame>

you can upgrade first to 555 and later to 560.
The downgrade back to your current 550 version is the same old dnf remove and dnf install procedure

long story, see this discussion and
https://bugzilla.rpmfusion.org/show_bug.cgi?id=7040

The NFB drivers are compatible with the newest cuda relases, that’s the reason why rpmfusion package and push these drivers to the repos.
I think this process could be improved by creating extra repositories for the NFB branch so users would have to enable the nfb repo first. This may require some changes to the rpmfusion infrastructure first.
I think there is not much interest and manpower to do this.

You can build the rpms yourself. It’s not difficult. The src.rpms are available for el8/el9, they do share the same spec files and still support f40. Look up documentation/how-to for rpmbuild and how to install a src.rpm.