NVIDIA Settings doesn't work

I can’t run the NVIDIA settings.
*I use Wayland

yoshio@mc ~> nvidia-settings

ERROR: Unable to find display on any available system
yoshio@mc ~> nvidia-smi                                                                                                                                                                                                                                                    
Mon Jan  3 18:09:26 2022
| NVIDIA-SMI 495.46       Driver Version: 495.46       CUDA Version: 11.5     |
| 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 ...  Off  | 00000000:01:00.0  On |                  N/A |
| N/A   41C    P8     5W /  N/A |     22MiB /  3911MiB |      0%      Default |
|                               |                      |                  N/A |

| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|    0   N/A  N/A      1988      G   /usr/bin/Xorg.bin                   4MiB |

nvidia-bug-report.log.gz (1.1 MB)

This is correct, nvidia-settings does not run under Wayland.

and why not Xwayland?

What does nvidia-settings do, and why won’t that work under a nested Xserver?

(ノ °益°)ノ 彡 ┻━┻

1 Like

I know. At some point NVIDIA might get there with Wayland, but it’s a slow process.

└───╼  env -u WAYLAND_DISPLAY nvidia-settings

ERROR: Unable to find display on any available system

nvidia-settings is a shorthand for Nvidia X Server Settings. That’s the name for the actual application. It’s terminal command is just nvidia-settings (but if you run it with no argument it launches the GUI, which is Nvidia X Server Settings).

Anyway, it’s the equivalent of the Nvidia Control Panel on Windows (quick GIF to illustrate):


and why won’t that work under a nested Xserver?

Because no Xserver nesting methods (xnest, Xephyr, etc) allow enabling any extensions that weren’t compiled with Xorg when it was built (an you can’t build it with the NV_CONTROL extension support built-in, obviously).

XWayland has the same restrictions.

Unfortunately, every single Nvidia GPU utility for things like fan curves and overclocking require this same NV_CONTROL X extension (because Nvidia themselves require it to expose the hardware for things like fan control, overclocking, setting fan curves, etc). So that means no GreenWithEnvy either.

So if you want to run Wayland on Nvidia right now, you are stuck with the stock fan curves, base clock, boost clock, memory clocks, etc. The only Nvidia utility that’s available in Wayland is nvidia-smi, and that doesn’t provide any method to control fans or anything else.

The only option for people that want to use GreenWithEnvy or Nvidia-Settings (though Nvidia settings obviously won’t work for stuff like setting resolution or refresh rate in the Wayland session, but you shouldn’t need it for that) is to start a simple TWM session in another TTY, where you can launch GWE or Nvidia Settings from. Your fan curves, overclocks, etc. set in that TTY will still hold while you’re in the Wayland session.

That’s my current workaround. Hit CTRL+ALT+F2, login, run startx, then run GWE or nvidia settings from one of the little xterm windows that pop up, and configure it to my liking, then hit CTRL+ALT+F1 to go back to my Wayland session.

But Nvidia has to fix this at some point. What they REALLY need to do is move their hardware and settings and stuff completely out of X and the NV-CONTROL X extension and use sysfs like they always should have done, but what they’ll probably do is somehow create some Wayland equivalent.

But no, Nvidia settings (and nothing else that depends on NV-CONTROL) will run in XWayland or in any sort of Xephyr/xnest session, as it requires NV-CONTROL which isn’t supported by any nested X server solutions. You’d have to run a separate X server in another TTY. Using the basic default TWM I’ve found adds basically zero resource usage, so that’s what I use.

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