Switching from GDM to SDDM enabled me to change my fan speed as well, so I’m seconding that this looks like an issue with xorg and root (or lack of it.)
Just to say that this issue seems present in potentially every branch that were recently updated (regression from a widespread change/fix?)
On amd64, I’ve tested manual fan control with at least:
450.102.04 (works), 450.119.03 (fails)
460.67 (works), 460.73.01 (fails)
465.19.01 (works), 465.24.02 (fails), 465.27 (fails)
I assume this applies to update from 390.141 to 390.143 as well.
As others stated, does work if Xorg is root or with CAP_SYS_ADMIN (not a good thing). Xorg as root is falling out of use, and many distributions will instead give limited access to /dev/nvidia*, so a solution would be appreciated.
Unfortunately, I am not able to duplicate issue locally.
I tried starting gnome with non root user and able to change GPU fan speed.
With Nvidia driver 465.27, I ran Xorg as rootless, for security, (logged in as a non-root user and then ran
exec startx from tty1 to start Xorg and enter KDE Plasma) and GPU fan control and applying overclocks no longer works. It also fails to remember previously set power limit settings.
I originally thought it was due to a community tool but it’s apparently an issue with the driver, since the community tool is only a UX interface for doing the same things manually.
OS: Arch Linux
(I did not use a login manager for this)
I can confirm this issue on Fedora 33 with latest xorg (xorg-x11-server-Xorg-1.20.11-1.fc33.x86_64).
When running xorg rootless -
$ nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffsetAllPerformanceLevels=2000' ERROR: Error assigning value 2000 to attribute 'GPUMemoryTransferRateOffsetAllPerformanceLevels' (doraemon.nybl.net:1[gpu:0]) as specified in assignment '[gpu:0]/GPUMemoryTransferRateOffsetAllPerformanceLevels=2000' (Unknown Error).
When running a user (non-root) session with xorg as the root user -
$ nvidia-settings -a '[gpu:0]/GPUMemoryTransferRateOffsetAllPerformanceLevels=2000' Attribute 'GPUMemoryTransferRateOffsetAllPerformanceLevels' (doraemon.nybl.net:1[gpu:0]) assigned value 2000.
To change between root/rootless mode I created a
/etc/X11/Xwrapper.config with the following -
For xorg root mode -
needs_root_rights = yes
For xorg rootless mode, remove the file or put in -
needs_root_rights = auto
To check the user that xorg is running as -
ps -o user $(pgrep Xorg)
The nvidia-settings GUI reflects this also. It never accepts the updated clock rates when running xorg in rootless mode, but does when running in root mode.
Just upgraded on Arch Linux and I’m experiencing the same problem. My GTX 1060 graphics card emits a harsh noise when spinning up/down so I set the fan speed to a fix value with this on startup:
nvidia-settings -a "[gpu:0]/GPUFanControlState=1" -a "[fan:0]/GPUTargetFanSpeed=55"`
Coolbits is set to
Section "Device" Identifier "Device0" Driver "nvidia" VendorName "NVIDIA Corporation" Option "Coolbits" "4" EndSection
I start X as user with
exec startx from tty1
GPUTargetFanSpeed returns an “Unknown Error”. I downgraded the nvidia packages and the kernel and got it working again. Thanks @jwmaness!
nvidia-465.27-5 nvidia-settings-465.27-1 nvidia-utils-465.27-1 linux-5.12.2.arch1-1
nvidia-460.67-4 nvidia-settings-460.67-1 nvidia-utils-460.67-1 linux-5.11.10.arch1-1
Fan control still broken. managed to get mem oc and core oc working but no fan control after downgrading from 465 on ubuntu 20.10. Currently using drivers 460.73.01 can’t downgrade. Will nvidia fix this issue?
@starfall Thanks man! that worked for me for now. until they fix this.
Hey guys, I’ve spent whole night and found something from 3 years ago that helped me. Works well even from startup:
nvidia-settings -a GPUGraphicsClockOffsetAllPerformanceLevels=N -a GPUMemoryTransferRateOffsetAllPerformanceLevels=N
Where N = Mhz
Hope that will help somebody. I am on lqx kernel, and aside from that glitch 465 felt choppy. I first downgraded to 455 (nvidia-settings too), but still couldn’t change overclock somehow. But now it works.
Yes, for the modern nvidia drivers you have to use those new attributes “GPUGraphicsClockOffsetAllPerformanceLevels” and “GPUMemoryTransferRateOffsetAllPerformanceLevels”. This is known as per my report above.
However, this is only tangentially related to this issue, the overclocks and fan settings can’t be set in Xorg rootless mode on the 465 New Feature releases, either in the GUI or via the CLI.
The same issue occurs on the recently released 460.73 drivers as well. 460.67 did not have this issue.