Package Details: nvfancontrol 0.4.1-1

Git Clone URL: https://aur.archlinux.org/nvfancontrol.git (read-only, click to copy)
Package Base: nvfancontrol
Description: NVidia dynamic fan control
Upstream URL: https://github.com/foucault/nvfancontrol
Keywords: nvidia system
Licenses: GPL3
Submitter: Foucault
Maintainer: Foucault
Last Packager: Foucault
Votes: 5
Popularity: 0.003770
First Submitted: 2017-07-01 19:11
Last Updated: 2019-06-25 19:19

Latest Comments

« First ‹ Previous 1 2

Foucault commented on 2018-02-02 01:13

This is more complicated than it sounds. It is impossible to use xnvctrl (the library that controls the GPU) without an X server. So at the very least the program must be run after the graphics environment has been brought up. So graphical.target should be a better candidate instead of multi-user.target. If you run nvfancontrol as root after graphical.target it might work. However once you log in your desktop the display will probably re-initialised or a new one will be set up (for example GDM does that; if you check $DISPLAY you'll see that is :1 rather than :0). In any case nvfancontrol will be killed once this happen and you will have to start it again. This is an inherent limitation of the way the NVIDIA driver works. There is a hacky way [0] to fake a GPU context however it still involves spinning up an X server so again similar limitations apply. I'm wondering if it is possible to have a different X server always running (etc. in :50) and bind nvfancontrol there but I haven't tested that yet. It might or it might not work.

[0] https://sites.google.com/site/akohlmey/random-hacks/nvidia-gpu-coolness#TOC-Faking-a-Head-for-a-Headless-X-Server

Foucault commented on 2017-12-29 19:32

You're right; wrong installation permissions

Nordlicht commented on 2017-12-29 19:27

Ok, it works now. Small bug: The executable bit isn't set, so I had to do it via 'chmod +x' after installing.

Foucault commented on 2017-12-28 12:44

It should work now!

Nordlicht commented on 2017-12-28 07:34

Build fails:

error[E0432]: unresolved import log::LogRecord --> src/main.rs:6:16 | 6 | use log::{Log, LogRecord, LogLevelFilter, LogMetadata, SetLoggerError}; | ^^^^^^^^^ no LogRecord in the root. Did you mean to use Record?

error[E0432]: unresolved import log::LogLevelFilter --> src/main.rs:6:27 | 6 | use log::{Log, LogRecord, LogLevelFilter, LogMetadata, SetLoggerError}; | ^^^^^^^^^^^^^^ no LogLevelFilter in the root. Did you mean to use LevelFilter?

error[E0432]: unresolved import log::LogMetadata --> src/main.rs:6:43 | 6 | use log::{Log, LogRecord, LogLevelFilter, LogMetadata, SetLoggerError}; | ^^^^^^^^^^^ no LogMetadata in the root. Did you mean to use Metadata?

error[E0423]: expected function, found macro log::max_log_level --> src/main.rs:58:29 | 58 | metadata.level() <= log::max_log_level() | ^^^^^------------- | | | | | did you mean max_level? | did you mean log::max_log_level!(...)?

error[E0046]: not all trait items implemented, missing: flush --> src/main.rs:56:1 | 56 | / impl Log for Logger { 57 | | fn enabled(&self, metadata: &LogMetadata) -> bool { 58 | | metadata.level() <= log::max_log_level() 59 | | } ... | 65 | | } 66 | | } | |_^ missing flush in implementation | = note: flush from trait: fn(&Self)

error: aborting due to 5 previous errors

error: Could not compile nvfancontrol.

To learn more, run the command again with --verbose.