Giter Club home page Giter Club logo

nfancurve's Introduction

nfancurve

You are probably wondering why I have chosen to write this script in Bash Shell Script. The reason is very simple; I wanted a script with the minimum number of dependencies possible. To get this script up-and-running you technically only need the temp.sh file, and the config file.

The current version of the script is version 19.6.

This script is currently set up for Celsius. However, it can easily be modified for other temperature scales.

If you need any help configuring my script or don't know how to make it start automatically check the USAGE.md file.

Features

  • comes with a more aggressive fan curve than the nvidia default (lower temps, louder noise)
  • uses nvidia-settings commands
  • automatically enables/disables GPU fan control (but not CoolBits)
  • very lightweight
  • multiple GPU control with individual fan controller support
  • makes use of a config file with explanations for each setting
  • POSIX compliant

Prerequisites

  • a POSIX compliant shell; tested with recent versions of bash and dash
  • nvidia glx driver version greater than 304
  • nvidia-settings for controlling the GPU(s)
  • coreutils
  • procps - you can comment out the function check_already_running if you don't have it

How to install

GitHub

  • Download the .zip file straight from the GitHubs
  • Extract it somewhere, and open a terminal to that directory
  • Make sure CoolBits is enabled (see USAGE.md)
  • Run sh temp.sh (or any compatable shell) or ./temp.sh for a foreground process. Run with the option -D (case sensitive) for a background process (i.e. ./temp.sh -D). Note that using sh or ./ will automatically use your default shell.

git

  • Choose a folder you want to download/install the script in
  • git clone https://github.com/nan0s7/nfancurve
  • Follow the last two steps under the GitHub guide area

Arch Linux

There are unofficial AUR packages:

Using the systemd service

Ensure the script and the config paths are correct. Move or copy the nfancurve.service file to /etc/systemd/user/nfancurve.service then enable and start the service with:

systemctl --user daemon-reload
systemctl --user start nfancurve.service
systemctl --user enable nfancurve.service

Troubleshooting

On some Distro's which are further behind in updates, or if there's a slight misconfiguration with services, you may encounter issues with the service file.

To work around this, you may change the following lines in the nfancurve.service file:

  1. Change After=graphical-session.target to After=default.target
  2. Remove the line Requires=graphical-session.target
  3. Change WantedBy=graphical-session.target to WantedBy=default.target
  4. Under the [Service] heading, add the line ExecStartPre=/bin/sleep 20

Don't forget to reload and reenable the service:

systemctl --user daemon-reload
systemctl reenable --user nfancurve.service

Honourable mentions

  • @aryonoco, for being my multi-GPU guinea pig
  • @civyshk, for making a Python fork
  • @zJelly, for working on an AMD-GPU supporting fork
  • @dpayne, for adding useful script parameters
  • @Scrumplex, for adding check to avoid errors when config is missing, and initialising the AUR packages
  • @stefmitropoulos, for greatly improving the way config files are loaded
  • @mklement0, (stackoverflow) for a POSIX implimentation of resolving file symlinks
  • @xberg, for finding and fixing a bug with the multi-GPU side of the script
  • @edave, for helping test the initial implimentation of multi-fan GPU support
  • @louissmit, for helping test the final multi-fan GPU feature implimentation
  • @D3473R, for adding an example systemd service file
  • @ReneHollander, for maintaining and improving the stable AUR package
  • @kenbeese, for making me aware of a multi-GPU bug
  • @BryanHitchcock, for fixing an issue with single GPU, multi-fan configurations
  • @mooninite, for fixing a couple of bugs

TODO

  • make sure that "CoolBits" is enabled - not really the scope of this script
  • possibly check the currently installed driver version - earlier versions used the GPUCurrentFanSpeed command
  • add in a really detailed guide of how the script works
  • add nouveau support (once they fix Pascal)
  • add AMD support?
  • make fans controllable without needing to use the nvidia-settings app (for headless support)

nfancurve's People

Contributors

avimanyu786 avatar bryanhitc avatar d3473r avatar dpayne avatar edge33 avatar jjshoots avatar mooninite avatar nan0s7 avatar oehme avatar renehollander avatar scrumplex avatar smitropoulos avatar suburbski avatar thilou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nfancurve's Issues

Division by Zero When Executing temp.sh

When I try to run the temp.sh script after modifying the fan curve in config, I get a Division by Zero error:

dave@dave-x570:~/nfancurve$ ./temp.sh

################################################################################
#          nan0s7's script for automatically managing GPU fan speed            #
################################################################################

Configuration file: /home/dave/nfancurve/config
Number of Fans detected: 
1
Number of GPUs detected: 
1
./temp.sh: 259: arithmetic expression: division by zero: "(check_diff1/(fcurve_len-1))-sleep_time"

I'm using Linux Mint 20 with an Nvidia GTX 1080 (by EVGA -- it has two fans, but one doesn't register since it's, apparently, non-standard). The only changes I've made are for both fan curves (just in case the script did recognize the 2nd fan). Stripping out the comments of config, here's what's now there:

min_t="25"
min_t2="25"
sleep_time="7"
fcurve="34 85" # fan speeds
tcurve="45 75" # temperatures
force_check="0"
fcurve2="34 85"
tcurve2="45 75"
which_curve="1 2 1 2"
default_fan="0"
fan2gpu="0 0 1 1"

The temp.sh line where the error occurs, "(check_diff1/(fcurve_len-1))-sleep_time", implies fcurve_len is 1 (giving that divide by zero). Assuming fcurve_len is derived from config's fcurve, it looks to me like fcurve_len ought to be 2. But, I'm guessing at all of this.

EDIT: I'm also assuming the "git clone https://github.com/nan0s7/nfancurve" command grabbed the latest version. I don't see version information anywhere in the files.

Does not autostart with the systemd user service enabled

I'm running Manjaro KDE.

When booting after having run "systemctl --user enable nfancurve.service" the service still doesn't run. It works perfectly when running it manually after logging in though.

running "systemctl --user status nfancurve" without manually starting it says that it is inactive (dead).

I see that the service relies on graphical-session.target, which is also inactive for me even when logged in graphically.

I tried making the service not rely on graphical-session.target. It then autostarts correctly, but nfancurve itself crashed due to no available screen.

Is there a way to edit the service file so that it starts only when logged in graphically without relying on graphical-session.target? If not, is there a way to make graphical-session.target work properly with Manjaro KDE?

maybe change default config path?

This may just be an issue from the aur not this script, so if this should be on the aur's page not here let me know.

In this script's case since the install dir is the default config location, it seems bad that its looking for a config among /usr/bin. On the other hand, it seems weird to ask the person that made the aur package to change the original script. Just a nitpick really not actually a problem if I just cloned the repo.

Exit script

Hello!
I have added the temp.sh script to run as pre-run script for games through Lutris. It works great, but I have problem that I don't know how to exit it so the fans would come back to normal mode. I have tried adding post-exit bash scripts that had only pkill temp, trying kill -INT $(pgrep temp.sh) or even looking into the temp.sh script. Because I have very little knowledge about this, I wasn't able to find anything useful there.
Is there any way that I can exit this script from other bash script?
Thanks a lot, love your work btw!

Harmless but constant error warning

Ubuntu 18
Cinnamon Desktop
NVIDIA 440.59

When I run in the normal mode I see this printed more often than the main loop runs, still trying to track down the source

libEGL warning: DRI2: failed to authenticate

ERROR: The current user does not have permission for operation

Hello! First of all, thank you for your work!
I have been using this script for a year, maybe more, without any problems. Without problems it still works, but after the last Arch update it shows "ERROR: The current user does not have permission for operation" on every line when changing the fan speed level. But everything works fine and the fan speed changes. I tried running it as a script or as a service, it's the same in the log. With sudo there is no this error.
Because it works well it is not a big problem, but I want to understand what is causing this Error. Thank you!

My specs:

GPU: GTX 1650 Super (Palit StormX) with single fan.
OS: Arch
Kernel: 6.0.2-arch1-1
Driver version: 520.56.06

tuning of fcurve, tcurve behavoir

Hello. First i must say your script is a savior!
I've tried now to tune fan curve with your script, ut can't figure out how
i've change to
declare -a fcurve=( "0" "20" "40" "50" "70" ) # fan speeds
declare -a tcurve=( "35" "45" "55" "65" "75" ) # temperatures
as i understand from comment in config file if temp raise above 35 it will set fan speed to 20%, if above 45 - raise fan speed to 40 and so on, but when i monitoring with nvidia-setting gui i can see that it does not turn fan up until 45-46*. Maybe i get a wrong idea?

Issue running on Multi GPU system on Ubuntu 16.04

Hi,

FIrst of all, thanks for the script. It is exactly what I've been looking for.

Running it on a multi-GPU system on Ubuntu Xenial, I get the following output:

nan0s7's fan speed curve script

###################################

A likely supported driver version was detected.
The fan curves match up!
Good job! :D

Attribute 'GPUFanControlState' (madan:0[gpu:0]) assigned value 1.

Attribute 'GPUTargetFanSpeed' (madan:0[fan:0]) assigned value 25.

Attribute 'GPUTargetFanSpeed' (madan:0[fan:0]) assigned value 85.

./temp.sh: line 142: [: : integer expression expected
./temp.sh: line 148: [: : integer expression expected
./temp.sh: line 142: [: : integer expression expected
./temp.sh: line 148: [: : integer expression expected
./temp.sh: line 142: [: : integer expression expected
./temp.sh: line 148: [: : integer expression expected
./temp.sh: line 142: [: : integer expression expected
./temp.sh: line 148: [: : integer expression expected


And that continues until I quit the script.

My bash scripting is a bit rusty, but happy to help in any way I can.

Cheers

Unknown error assigning value to 'GPUTargetFanSpeed'

Hi, I have the following error trying to run the script

Started process for n-GPUs and n-Fans


ERROR: Error assigning value 55 to attribute 'GPUTargetFanSpeed'
       (lotusbytes:1[fan:0]) as specified in assignment
       '[fan:0]/GPUTargetFanSpeed=55' (Unknown Error).

System Information

[bruno@lotusbytes nfancurve]$ uname -a
Linux lotusbytes 5.2.6-arch1-1-ARCH #1 SMP PREEMPT Sun Aug 4 14:58:49 UTC 2019 x86_64 GNU/Linux
[bruno@lotusbytes nfancurve]$ cat /etc/X11/xorg.conf
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 430.40

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 430.40

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "SAMSUNG"
    HorizSync       15.0 - 135.0
    VertRefresh     24.0 - 75.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce RTX 2080 Ti"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Coolbits" "4"
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-2"
    Option         "metamodes" "3840x2160_60 +0+0 {ForceCompositionPipeline=On}"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Min temps does not seem to work

Hi thank you for your code
I am having trouble with the fans' frequency below the min temperatures. Some of them appear not to want to stay at zero frequency.

This is my configuration file

#  the fan speed to be set to 0%, and everything above will be whatever the
#  first speed in fcurve is (default of 25%)
# min_t2 is only used with the second fan speed and temperature arrays, so
#  there is no need to change it unless you're using the second curve
min_t="40"
min_t2="40"

# How many seconds the script should wait until checking for a change in temps
sleep_time="2"

# By default it's set up so that when the temp is less than or equal to 35
#  degrees, the fan speed will be set to 25%. Next, if the temp is between 36
#  and 45, the fan speed should be set to 40%, etc.
# The last temperature value will be the maximum temperature before 100% fan
#  speed will be set
# You can make the array as big or as small as you require, as long as they
#  both end up being the same size
fcurve="25 40 55 70 85" # fan speeds
tcurve="41 45 55 65 75" # temperatures



#defines if equation-mode is being used. If equation_mode is on, the script will calculate the correct fan speed from the defined equation instead of using fcurve and tcurve, thus achieving a smoother fan-curve
equation_mode="0"

# the equation for the primary fan (used if equation_mode is 1)if equation_mode is 1 the script will set the fan speed to the corresponding value of the equation in quotation marks ($cur_t represents the current temperature)
#example:
#equation1='9.6533531762886*1.0305283856818^$cur_t'
equation1=

# if equation_mode is 1, this is the temperature at which 100% fan speed will be set
equation_max="90"

# This value is used to determine the temperature difference needed to get
#  the script to check for a new speed to apply. The default of this value
#  is zero, which means the script will automatically calculate a value
#  based on the temperature curves supplied below
force_check="0"

#if this value is one, if the temperature is decreasing the script will lower the fan speed smoothly 1% at every temperature check, instead of directly switching to the corresponding value in fcurve or the equation
smooth_decrease="0"

# defines the minium setpoint the fan-speed will decrease to 
smooth_decrease_setpoint="30"

# These two arrays are for GPU's that have a secondary fan that you may wish
#  to control seperately, especially if it is water-cooled.
fcurve2="15 30 45 60 75"
tcurve2="42 45 55 65 75"

# the equation for the secondary fan (used if equation_mode is 1)
#example:
#equation2='9.6533531762886*1.0305283856818^$cur_t'
equation2=

# First number in array is fan 0, second number is fan 1, etc. If the number
#  is 1, that indicates that the script should use the first curve for that
#  fan. The same goes for the number 2.
which_curve="1 2 1 2"

# Only used for single-fan operation. If you have more than one gpu/fan but
#  only want to control one of them, select which one here. Otherwise there
#  is no need to change this setting.
default_fan="0"

# Similar to which_curve, but instead lets the script know which of the GPU's
#  has which fan. i.e. element 0 in the array being set to 0 means that fan 0
#  is assigned to GPU 0, element 1 is 0 too, meaning fan 1 is on GPU 0 as well
fan2gpu="0 1 2 2"

nvtop output

Screenshot from 2022-05-03 14-21-21

./temp.sh -l output

################################################################################
#          nan0s7's script for automatically managing GPU fan speed            #
################################################################################

Configuration file: /home/felipe/nfancurve/config
Number of Fans detected: 
4
Number of GPUs detected: 
3

  Attribute 'GPUFanControlState' (felipe-MS-7A63:1[gpu:0]) assigned value 1.


  Attribute 'GPUFanControlState' (felipe-MS-7A63:1[gpu:1]) assigned value 1.


  Attribute 'GPUFanControlState' (felipe-MS-7A63:1[gpu:2]) assigned value 1.

Started process for n-GPUs and n-Fans

  Attribute 'GPUTargetFanSpeed' (felipe-MS-7A63:1[fan:0]) assigned value 0.

 t=39 ot=200 td=0 s=2 gpu=0 fan=0 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1

  Attribute 'GPUTargetFanSpeed' (felipe-MS-7A63:1[fan:1]) assigned value 15.

 t=41 ot=0 td=0 s=2 gpu=1 fan=1 cd=9 nsp=15 osp=15 maxt=75 mint=40 otl=0
 t=32 ot=0 td=0 s=2 gpu=2 fan=2 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=32 ot=0 td=0 s=2 gpu=2 fan=3 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=39 ot=39 td=0 s=2 gpu=0 fan=0 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=41 ot=41 td=0 s=2 gpu=1 fan=1 cd=9 nsp=0 osp=15 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=2 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=3 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=39 ot=39 td=0 s=2 gpu=0 fan=0 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=41 ot=41 td=0 s=2 gpu=1 fan=1 cd=9 nsp=0 osp=15 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=2 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=3 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=39 ot=39 td=0 s=2 gpu=0 fan=0 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=41 ot=41 td=0 s=2 gpu=1 fan=1 cd=9 nsp=0 osp=15 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=2 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=3 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=39 ot=39 td=0 s=2 gpu=0 fan=0 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=41 ot=41 td=0 s=2 gpu=1 fan=1 cd=9 nsp=0 osp=15 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=2 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=3 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=39 ot=39 td=0 s=2 gpu=0 fan=0 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=41 ot=41 td=0 s=2 gpu=1 fan=1 cd=9 nsp=0 osp=15 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=2 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=3 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=39 ot=39 td=0 s=2 gpu=0 fan=0 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=41 ot=41 td=0 s=2 gpu=1 fan=1 cd=9 nsp=0 osp=15 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=2 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=3 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=39 ot=39 td=0 s=2 gpu=0 fan=0 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=41 ot=41 td=0 s=2 gpu=1 fan=1 cd=9 nsp=0 osp=15 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=2 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=3 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=39 ot=39 td=0 s=2 gpu=0 fan=0 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=41 ot=41 td=0 s=2 gpu=1 fan=1 cd=9 nsp=0 osp=15 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=2 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=3 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=39 ot=39 td=0 s=2 gpu=0 fan=0 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=41 ot=41 td=0 s=2 gpu=1 fan=1 cd=9 nsp=0 osp=15 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=2 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=3 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=39 ot=39 td=0 s=2 gpu=0 fan=0 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=41 ot=41 td=0 s=2 gpu=1 fan=1 cd=9 nsp=0 osp=15 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=2 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=3 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=39 ot=39 td=0 s=2 gpu=0 fan=0 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=41 ot=41 td=0 s=2 gpu=1 fan=1 cd=9 nsp=0 osp=15 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=2 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1
 t=32 ot=32 td=0 s=2 gpu=2 fan=3 cd=9 nsp=0 osp=0 maxt=75 mint=40 otl=-1

Thank you

VDR is crashing with cuvid enabled.

Environment:
Nvidia Driver 455, Ubuntu Focal fully updated. YaVDR ansible with PPA ppa:seahawk1986-hotmail/vdr-2.4.5-patches enabled.

vdr Plugins enabled:
dbus2vdr enabled 50
ddci2 enabled 50
desktop enabled 50
devstatus enabled 50
epg2vdr enabled 50
extrecmenung enabled 50
markad enabled 50
menuorg enabled 50
osd2web enabled 50
pulsecontrol enabled 50
scraper2vdr enabled 50
skindesigner enabled 50
softhddevice enabled 50
tvguideng enabled 50
vdrboblight enabled 50
vnsiserver enabled 50
weatherforecast enabled 50

Log with first 'crash':
Nov 4 10:11:23 yavdr vdr: video/cuvid: Start CUVID
Nov 4 10:11:23 yavdr vdr: video/glx: glx version 1.4
Nov 4 10:11:23 yavdr kernel: [ 948.949782] softhddev video[2688]: segfault at 10 ip 00007fe39b440c78 sp 00007fe34cae0db0 error 4 in libGLX.so.0.0.0[7fe39b43f000+1b000]
Nov 4 10:11:23 yavdr kernel: [ 948.949788] Code: ff 83 cf ff e8 c9 e7 ff ff 66 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 41 56 41 89 ce 41 55 49 89 d5 41 54 49 89 f4 55 48 89 fd 53 <8b> 76 10 e8 e0 59 00 00 48 85 c0 74 43 4c 89 e6 48 89 c3 4c 89 ea
Nov 4 10:11:24 yavdr systemd[1]: vdr.service: Main process exited, code=killed, status=11/SEGV

Full Log:
Nov 4 10:11:24 yavdr vdr: [2734] VDR version 2.4.5 started
Nov 4 10:11:24 yavdr vdr: [2734] switched to user 'vdr'
Nov 4 10:11:24 yavdr vdr: [2734] codeset is 'UTF-8' - known
Nov 4 10:11:24 yavdr vdr: [2734] override character table is 'ISO-8859-9' - known
Nov 4 10:11:24 yavdr vdr: [2734] found 28 locales in /usr/share/locale
Nov 4 10:11:24 yavdr vdr: [2734] no locale for language code 'alb,sqi'
Nov 4 10:11:24 yavdr vdr: [2734] no locale for language code 'bos'
Nov 4 10:11:24 yavdr vdr: [2734] no locale for language code 'bul'
Nov 4 10:11:24 yavdr vdr: [2734] no locale for language code 'chi,zho'
Nov 4 10:11:24 yavdr vdr: [2734] no locale for language code 'eus,baq'
Nov 4 10:11:24 yavdr vdr: [2734] no locale for language code 'iri,gle'
Nov 4 10:11:24 yavdr vdr: [2734] no locale for language code 'jpn'
Nov 4 10:11:24 yavdr vdr: [2734] no locale for language code 'lav'
Nov 4 10:11:24 yavdr vdr: [2734] no locale for language code 'ltz'
Nov 4 10:11:24 yavdr vdr: [2734] no locale for language code 'mlt'
Nov 4 10:11:24 yavdr vdr: [2734] no locale for language code 'por'
Nov 4 10:11:24 yavdr vdr: [2734] no locale for language code 'smi'
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-dbus2vdr.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] dbus2vdr: use shutdown-hooks in /usr/share/vdr/shutdown-hooks
Nov 4 10:11:24 yavdr vdr: [2734] dbus2vdr: use shutdown-hooks-wrapper /usr/share/vdr-plugin-dbus2vdr/shutdown-wrapper
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-ddci2.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-desktop.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-devstatus.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-epg2vdr.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-extrecmenung.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-markad.so.2.4.5
Nov 4 10:11:24 yavdr vdr[2734]: markad: unrecognized option '--autologo=2'
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-menuorg.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-osd2web.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-pulsecontrol.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-scraper2vdr.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-skindesigner.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-softhddevice.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-tvguideng.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-vdrboblight.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-vnsiserver.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading plugin: /usr/lib/vdr/plugins/libvdr-weatherforecast.so.2.4.5
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/setup.conf
Nov 4 10:11:24 yavdr vdr: [2734] ERROR: unknown config parameter: markad.AutoLogoExtraction = 2
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/sources.conf
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/diseqc.conf
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/scr.conf
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/channels.conf
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/timers.conf
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/commands.conf
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/reccmds.conf
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/svdrphosts.conf
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/remote.conf
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/keymacros.conf
Nov 4 10:11:24 yavdr vdr: [2734] ERROR: unknown plugin 'osdteletext'
Nov 4 10:11:24 yavdr vdr: [2734] ERROR: empty key macro
Nov 4 10:11:24 yavdr vdr: [2734] ERROR: unknown plugin 'xineliboutput'
Nov 4 10:11:24 yavdr vdr: [2734] registered source parameters for 'A - ATSC'
Nov 4 10:11:24 yavdr vdr: [2735] video directory scanner thread started (pid=2734, tid=2735, prio=low)
Nov 4 10:11:24 yavdr vdr: [2734] registered source parameters for 'C - DVB-C'
Nov 4 10:11:24 yavdr vdr: [2734] registered source parameters for 'S - DVB-S'
Nov 4 10:11:24 yavdr vdr: [2734] registered source parameters for 'T - DVB-T'
Nov 4 10:11:24 yavdr vdr: [2734] detected /dev/dvb/adapter4/frontend0
Nov 4 10:11:24 yavdr vdr: [2734] detected /dev/dvb/adapter3/frontend0
Nov 4 10:11:24 yavdr vdr: [2734] detected /dev/dvb/adapter1/frontend0
Nov 4 10:11:24 yavdr vdr: [2734] detected /dev/dvb/adapter0/frontend0
Nov 4 10:11:24 yavdr vdr: [2734] probing /dev/dvb/adapter0/frontend0
Nov 4 10:11:24 yavdr vdr: [2734] creating cDvbDevice
Nov 4 10:11:24 yavdr vdr: [2734] new device number 1 (card index 1)
Nov 4 10:11:24 yavdr vdr: [2734] DVB API version is 0x050B (VDR was built with 0x050B)
Nov 4 10:11:24 yavdr vdr: [2734] frontend 0/0 provides DVB-C,DVB-T with QPSK,QAM16,QAM32,QAM64,QAM128,QAM256 ("ST STV0367 DDB DVB-C/T")
Nov 4 10:11:24 yavdr vdr: [2734] cTimeMs: using monotonic clock (resolution is 1 ns)
Nov 4 10:11:24 yavdr vdr: [2734] probing /dev/dvb/adapter1/frontend0
Nov 4 10:11:24 yavdr vdr: [2738] frontend 0/0 tuner thread started (pid=2734, tid=2738, prio=high)
Nov 4 10:11:24 yavdr vdr: [2734] creating cDvbDevice
Nov 4 10:11:24 yavdr vdr: [2734] new device number 2 (card index 2)
Nov 4 10:11:24 yavdr vdr: [2736] epg data reader thread started (pid=2734, tid=2736, prio=high)
Nov 4 10:11:24 yavdr vdr: [2736] reading EPG data from /var/cache/vdr/epg.data
Nov 4 10:11:24 yavdr vdr: [2734] frontend 1/0 provides DVB-C,DVB-T with QPSK,QAM16,QAM32,QAM64,QAM128,QAM256 ("ST STV0367 DDB DVB-C/T")
Nov 4 10:11:24 yavdr vdr: [2734] probing /dev/dvb/adapter3/frontend0
Nov 4 10:11:24 yavdr vdr: [2734] creating cDvbDevice
Nov 4 10:11:24 yavdr vdr: [2734] new device number 3 (card index 3)
Nov 4 10:11:24 yavdr vdr: [2741] frontend 1/0 tuner thread started (pid=2734, tid=2741, prio=high)
Nov 4 10:11:24 yavdr vdr: [2742] device 2 section handler thread started (pid=2734, tid=2742, prio=low)
Nov 4 10:11:24 yavdr vdr: [2739] device 1 section handler thread started (pid=2734, tid=2739, prio=low)
Nov 4 10:11:24 yavdr vdr: [2735] video directory scanner thread ended (pid=2734, tid=2735)
Nov 4 10:11:24 yavdr vdr: [2734] frontend 3/0 provides DVB-T,DVB-T2,DVB-C with QPSK,QAM16,QAM32,QAM64,QAM128,QAM256 ("Sony CXD2843ER DVB-T/T2/C/C2 demodulator")
Nov 4 10:11:24 yavdr vdr: [2734] probing /dev/dvb/adapter4/frontend0
Nov 4 10:11:24 yavdr vdr: [2734] creating cDvbDevice
Nov 4 10:11:24 yavdr vdr: [2734] new device number 4 (card index 4)
Nov 4 10:11:24 yavdr vdr: [2745] frontend 3/0 tuner thread started (pid=2734, tid=2745, prio=high)
Nov 4 10:11:24 yavdr vdr: [2746] device 3 section handler thread started (pid=2734, tid=2746, prio=low)
Nov 4 10:11:24 yavdr vdr: [2734] frontend 4/0 provides DVB-T,DVB-T2,DVB-C with QPSK,QAM16,QAM32,QAM64,QAM128,QAM256 ("Sony CXD2843ER DVB-T/T2/C/C2 demodulator")
Nov 4 10:11:24 yavdr vdr: [2734] found 4 DVB devices
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: dbus2vdr (31): Steuerung des VDR über D-Bus
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: ddci2 (1.0.5): External Digital Devices CI-Adapter
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: desktop (0.0.3): desktop apps menu
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: devstatus (0.4.1): DVB-Gerätestatus
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: epg2vdr (1.1.118-GIT): epg2vdr plugin
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: extrecmenung (2.0.5): Erweitertes Aufzeichnungs-Menü
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: markad (0.1.6): Markiere Werbung
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: menuorg (0.5.2): Reorganisiert das Haupmenü
Nov 4 10:11:24 yavdr vdr: [2734] loading menuorg config file from /var/lib/vdr/plugins/menuorg.xml
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: osd2web (0.2.55-GIT): osd2web plugin
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: pulsecontrol (0.2.1): Pulseaudio über das OSD steuern
Nov 4 10:11:24 yavdr vdr: [2749] device 4 section handler thread started (pid=2734, tid=2749, prio=low)
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: scraper2vdr (1.0.11-GIT): 'scraper2vdr' plugin
Nov 4 10:11:24 yavdr vdr: scraper2vdr: using image directory /var/cache/vdr/epgimages/
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: skindesigner (1.2.8.5): Skin Designer
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: softhddevice (1.0.7): A software and GPU emulated UHD device
Nov 4 10:11:24 yavdr vdr: [2734] new device number 5 (card index 5)
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: tvguideng (0.3.2): TV Guide for Skindesigner Skins
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: vdrboblight (): Boblight with data from softhddevice
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: vnsiserver (1.8.0): VDR-Network-Streaming-Interface (VNSI) Server
Nov 4 10:11:24 yavdr vdr: [2734] initializing plugin: weatherforecast (0.2.0): Weatherforecast based on forecast.io
Nov 4 10:11:24 yavdr vdr: [2734] setting primary device to 5
Nov 4 10:11:24 yavdr vdr: [2734] [softhddev]stopping OpenGL Worker Thread
Nov 4 10:11:24 yavdr vdr: [2734] [softhddev]OpenGL Worker Thread stopped
Nov 4 10:11:24 yavdr vdr: [2734] assuming manual start of VDR
Nov 4 10:11:24 yavdr vdr: [2734] skin "estuary4vdr" not available - using "lcars" instead
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/themes/lcars-default.theme
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: dbus2vdr
Nov 4 10:11:24 yavdr vdr: [2748] frontend 4/0 tuner thread started (pid=2734, tid=2748, prio=high)
Nov 4 10:11:24 yavdr vdr: [2750] dbus2vdr: mainloop started
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: ddci2
Nov 4 10:11:24 yavdr vdr: [2734] DDCI-Inf: plugin version 1.0.5 initializing (compiled for VDR version 2.4.5)
Nov 4 10:11:24 yavdr vdr: [2734] DDCI-Inf: found 1 DD CI adapter
Nov 4 10:11:24 yavdr vdr: [2734] DDCI-Inf: Creating DdCiAdapter 0 (/dev/dvb/adapter2/ca0)
Nov 4 10:11:24 yavdr vdr: [2750] dbus2vdr: System: connected with unique name :1.52
Nov 4 10:11:24 yavdr vdr: [2750] dbus2vdr: thread-pool for handling signal-emits started
Nov 4 10:11:24 yavdr avahi-linker[1003]: 2020-11-04 10:11:24,389 INFO VDR started
Nov 4 10:11:24 yavdr vdr: [2736] epg data reader thread ended (pid=2734, tid=2736)
Nov 4 10:11:24 yavdr vdr: [2734] DDCI-Inf: plugin started
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: desktop
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: devstatus
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: epg2vdr
Nov 4 10:11:24 yavdr vdr: epg2vdr: Info: Calling mysql_library_init()
Nov 4 10:11:24 yavdr vdr: epg2vdr: Set locale to 'de_DE.UTF-8'
Nov 4 10:11:24 yavdr vdr: epg2vdr: detected UTF-8
Nov 4 10:11:24 yavdr vdr: [2755] DDCI adapter /dev/dvb/adapter2/ca0 thread started (pid=2734, tid=2755, prio=high)
Nov 4 10:11:24 yavdr vdr: epg2vdr: Dictionary '/var/lib/vdr/plugins/epg2vdr//epg.dat' loaded
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: extrecmenung
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: markad
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: menuorg
Nov 4 10:11:24 yavdr vdr[2734]: vdr: error while reading '/var/lib/vdr/plugins/pulsecontrol/startup.script'
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: osd2web
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: pulsecontrol
Nov 4 10:11:24 yavdr vdr: [2734] pulsecontrol: error on reading script /var/lib/vdr/plugins/pulsecontrol/startup.script
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: scraper2vdr
Nov 4 10:11:24 yavdr vdr: epg2vdr: Info: Skipping calling mysql_library_init(), it's already done!
Nov 4 10:11:24 yavdr vdr: scraper2vdr: Set locale to 'de_DE.UTF-8'
Nov 4 10:11:24 yavdr vdr: scraper2vdr: detected UTF-8
Nov 4 10:11:24 yavdr vdr: [2758] epg2vdr-update thread started (pid=2734, tid=2758, prio=high)
Nov 4 10:11:24 yavdr vdr: osd2web: osd2web plugin thread started (pid=2734)
Nov 4 10:11:24 yavdr vdr: scraper2vdr: Dictionary '/var/lib/vdr/plugins/scraper2vdr/epg.dat' loaded
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: skindesigner
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: TrueColor OSD found
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: using libskindesigner API Version 0.1.2
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: plugin setup uses libskindesigner API Version 0.1.2
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: plugin setup has registered 1 menus
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: skinsetup template successfully registered at skindesigner, id 0
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: using Skin Directory /usr/share/vdr/plugins/skindesigner/skins/
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: using Installer Skin Directory /var/lib/vdr/plugins/skindesigner/installerskins/
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: using common ChannelLogo Directory /usr/share/vdr/plugins/skindesigner/logos/
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: using EPG Images Directory /var/cache/vdr/epgimages/
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner 2 skins found in /usr/share/vdr/plugins/skindesigner/skins/
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner 1 skins found in /var/lib/vdr/plugins/skindesigner/installerskins/
Nov 4 10:11:24 yavdr vdr: [2757] DDCI Recv (/dev/dvb/adapter2/sec0) thread started (pid=2734, tid=2757, prio=high)
Nov 4 10:11:24 yavdr vdr: [2756] DDCI Send (/dev/dvb/adapter2/sec0) thread started (pid=2734, tid=2756, prio=high)
Nov 4 10:11:24 yavdr vdr: [2761] DDCI Recv Deliver (/dev/dvb/adapter2/sec0) thread started (pid=2734, tid=2761, prio=high)
Nov 4 10:11:24 yavdr vdr: [2760] scraper2vdr-update thread started (pid=2734, tid=2760, prio=low)
Nov 4 10:11:24 yavdr vdr: osd2web: Listener at port (4444) established
Nov 4 10:11:24 yavdr vdr: osd2web: using libwebsocket version '3.2.0 unknown-build-hash'
Nov 4 10:11:24 yavdr vdr: epg2vdr: SQL client character now 'utf8'
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: skin estuary4vdr started
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: skin metrixhd started
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: skin shady_KISS started
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: zapcockpit patch available
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: softhddevice
Nov 4 10:11:24 yavdr vdr: [softhddev] ready detached
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: tvguideng
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: plugin tvguideng uses libskindesigner API Version 0.1.2
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: plugin tvguideng has registered 5 views with 23 viewelements and 11 viewgrids
Nov 4 10:11:24 yavdr vdr: [2734] tvguideng: successfully registered at skindesigner, id 1
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: vdrboblight
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: vnsiserver
Nov 4 10:11:24 yavdr vdr: [2734] VNSI: Starting vnsi server at port=34890
Nov 4 10:11:24 yavdr vdr: [2734] VNSI: VNSI Server started
Nov 4 10:11:24 yavdr vdr: [2734] VNSI: Channel streaming timeout: 10 seconds
Nov 4 10:11:24 yavdr vdr: [2734] starting plugin: weatherforecast
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: plugin weatherforecast uses libskindesigner API Version 0.1.2
Nov 4 10:11:24 yavdr vdr: [2734] skindesigner: plugin weatherforecast has registered 4 menus
Nov 4 10:11:24 yavdr vdr: [2734] weatherforecast: successfully registered at skindesigner, id 2
Nov 4 10:11:24 yavdr vdr: [2734] setting current skin to "estuary4vdr"
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/lib/vdr/themes/estuary4vdr-default.theme
Nov 4 10:11:24 yavdr vdr: [2734] remote control XKeySym - keys known
Nov 4 10:11:24 yavdr vdr: [2734] remote control LIRC - keys known
Nov 4 10:11:24 yavdr vdr: [2734] loading /var/cache/vdr/cam.data
Nov 4 10:11:24 yavdr vdr: [2766] LIRC remote control thread started (pid=2734, tid=2766, prio=high)
Nov 4 10:11:24 yavdr vdr: [2765] weatherforecast: using cached forecast
Nov 4 10:11:24 yavdr vdr: [2764] VNSI Server thread started (pid=2734, tid=2764, prio=high)
Nov 4 10:11:24 yavdr vdr: BOBLIGHT: boblight Thread started (pid=2734)
Nov 4 10:11:24 yavdr boblightd[716]: (CClientsHandler::Process) 127.0.0.1:49698 connected
Nov 4 10:11:24 yavdr boblightd[716]: (CClientsHandler::ParseMessage) 127.0.0.1:49698 said hello
Nov 4 10:11:24 yavdr vdr: [2767] VNSIStatus thread started (pid=2734, tid=2767, prio=high)
Nov 4 10:11:24 yavdr vdr: BOBLIGHT: Connected to boblight
Nov 4 10:11:24 yavdr boblightd[716]: (CClientsHandler::ParseSet) 127.0.0.1:49698 priority set to 128
Nov 4 10:11:24 yavdr vdr: [2768] VNSITimers thread started (pid=2734, tid=2768, prio=high)
Nov 4 10:11:24 yavdr boblightd[716]: (CClientsHandler::ParseSet) 127.0.0.1:49698 priority set to 128
Nov 4 10:11:24 yavdr boblightd[716]: (CClientsHandler::Process) 127.0.0.1:49698 Connection closed
Nov 4 10:11:24 yavdr boblightd[716]: (CClientsHandler::RemoveClient) removing 127.0.0.1:49698
Nov 4 10:11:24 yavdr vdr: [2755] CAM 1: module present
Nov 4 10:11:24 yavdr vdr: epg2vdr: Info: Last update was at '04.11.20 09:56:56'
Nov 4 10:11:24 yavdr vdr: epg2vdr: Handler: Start reading external ids from db
Nov 4 10:11:24 yavdr vdr: epg2vdr: Handler: Finished reading external id's from db, got 27 id's
Nov 4 10:11:25 yavdr kernel: [ 950.991141] dvb_ca_en50221: dvb_ca adapter 2: DVB CAM detected and initialised successfully
Nov 4 10:11:26 yavdr vdr: [2755] CAM 1: module ready
Nov 4 10:11:27 yavdr vdr: [2755] CAM 1: , 01, 0001, 0001
Nov 4 10:11:28 yavdr vdr: [2755] CAM 1: system ids: 09C7 0100 0500 098C 09C4 0D95 0D98 1702 1830 1843 1860 186A 098E 1834 1861 1722 1831 1838 09AF 1833 1835 1801 0D00 0919 093B 09CD 0B00 0B02 0963 0D96 0D97 0D0F 0602 0604 0610 0624 0628 0D02 1800 1802 1803 1804 1805 1810 183D 183E 2600 093E 090F 4ABF 09C1 4AEE 0648 0650 0653 0666
Nov 4 10:11:28 yavdr vdr: [2755] CAM 1: replies to QUERY - multi channel decryption (MCD) possible
Nov 4 10:11:28 yavdr vdr: [2755] CAM 1: supports multi transponder decryption (MTD)
Nov 4 10:11:28 yavdr vdr: [2755] CAM 1: activating MTD support
Nov 4 10:11:28 yavdr vdr: [2734] CAM 1: ready, master ()
Nov 4 10:11:28 yavdr vdr: [2734] switching to channel 4 C-61441-10015-50018 (SAT.1 HD)
Nov 4 10:11:28 yavdr vdr: [2734] CAM 1/1: creating new MTD CAM slot
Nov 4 10:11:28 yavdr vdr: [2734] CAM 1: assigned to device 1
Nov 4 10:11:28 yavdr vdr: [2770] device 1 receiver thread started (pid=2734, tid=2770, prio=high)
Nov 4 10:11:28 yavdr vdr: [2771] device 1 TS buffer thread started (pid=2734, tid=2771, prio=high)
Nov 4 10:11:28 yavdr systemd[1]: Started Video Disk Recorder.
Nov 4 10:11:28 yavdr vdr: [2772] SVDRP server handler thread started (pid=2734, tid=2772, prio=low)
Nov 4 10:11:28 yavdr vdr: [2772] SVDRP yavdr opening port 6419/tcp
Nov 4 10:11:28 yavdr vdr: [2772] SVDRP yavdr listening on port 6419/tcp
Nov 4 10:11:28 yavdr vdr: [2773] SVDRP client handler thread started (pid=2734, tid=2773, prio=low)
Nov 4 10:11:28 yavdr vdr: [2773] SVDRP yavdr opening port 6419/udp
Nov 4 10:11:28 yavdr vdr: [2773] SVDRP yavdr listening on port 6419/udp
Nov 4 10:11:28 yavdr vdr: [2773] SVDRP yavdr > 255.255.255.255:6419 send dgram 'SVDRP:discover name:yavdr port:6419 vdrversion:20405 apiversion:20405 timeout:300'
Nov 4 10:11:28 yavdr vdr: [2734] OSD size changed to 1920x1080 @ 1
Nov 4 10:11:28 yavdr vdr: [2734] skindesigner: initializing skin estuary4vdr
Nov 4 10:11:28 yavdr vdr: [2734] skindesigner: using decimal point ,
Nov 4 10:11:28 yavdr vdr: [2734] skindesigner: using channel logo path /usr/share/vdr/plugins/skindesigner/logos/
Nov 4 10:11:28 yavdr vdr: [2734] skindesigner: using icon path /usr/share/vdr/plugins/skindesigner/skins/estuary4vdr/themes/default/
Nov 4 10:11:28 yavdr vdr: [2734] skindesigner: using skinparts path /usr/share/vdr/plugins/skindesigner/skins/estuary4vdr/themes/default/skinparts/
Nov 4 10:11:28 yavdr vdr: [2734] skindesigner: using svgtemplate path /usr/share/vdr/plugins/skindesigner/skins/estuary4vdr/svgtemplates/
Nov 4 10:11:28 yavdr vdr: [2734] skindesigner: using language de_DE
Nov 4 10:11:29 yavdr vdr: [2734] skindesigner: templates successfully validated and parsed
Nov 4 10:11:29 yavdr vdr: [2734] [softhddev]detached - OpenGl Worker Thread not tried to start
Nov 4 10:11:29 yavdr vdr: message repeated 24 times: [ [2734] [softhddev]detached - OpenGl Worker Thread not tried to start]
Nov 4 10:11:29 yavdr vdr: epg2vdr: Handler: Init handler instance for thread 2739
Nov 4 10:11:29 yavdr vdr: [2734] [softhddev]detached - OpenGl Worker Thread not tried to start
Nov 4 10:11:29 yavdr vdr: message repeated 4 times: [ [2734] [softhddev]detached - OpenGl Worker Thread not tried to start]
Nov 4 10:11:29 yavdr vdr: [2767] VNSI: Requesting clients to reload channel list
Nov 4 10:11:29 yavdr vdr: [2734] [softhddev]detached - OpenGl Worker Thread not tried to start
Nov 4 10:11:29 yavdr vdr: [2734] [softhddev]detached - OpenGl Worker Thread not tried to start
Nov 4 10:11:29 yavdr vdr: [2755] CAM 1: system ids: 09C7
Nov 4 10:11:29 yavdr vdr: [2734] [softhddev]detached - OpenGl Worker Thread not tried to start
Nov 4 10:11:30 yavdr vdr: message repeated 49 times: [ [2734] [softhddev]detached - OpenGl Worker Thread not tried to start]
Nov 4 10:11:30 yavdr vdr: [2734] skindesigner: templates and images cached
Nov 4 10:11:30 yavdr vdr: [2734] skindesigner: cached 74 icons - size internal mem 1,66MB, high level mem 0,00MB
Nov 4 10:11:30 yavdr vdr: [2734] skindesigner: cached 201 logos - size 9074,53MB internal mem
Nov 4 10:11:30 yavdr vdr: [2734] skindesigner: cached 8 skinparts - size internal mem 16,78MB, high level mem 0,00MB
Nov 4 10:11:30 yavdr vdr: [2734] skindesigner: templates loaded and caches created - needed 1298 ms
Nov 4 10:11:30 yavdr vdr: [2734] [softhddev]No hw driver or OpenGL Osd disabled - use soft OSD
Nov 4 10:11:30 yavdr vdr: [2734] [softhddev]detached - OpenGl Worker Thread not tried to start
Nov 4 10:11:30 yavdr vdr: [2844] animator thread thread started (pid=2734, tid=2844, prio=high)
Nov 4 10:11:30 yavdr yavdr-frontend[1708]: INFO:pydbus2vdr:VDR Status: running
Nov 4 10:11:30 yavdr vdr: [2750] dbus2vdr: thread-pool for handling method-calls started
Nov 4 10:11:30 yavdr vdr: [2848] video directory scanner thread started (pid=2734, tid=2848, prio=low)
Nov 4 10:11:30 yavdr avahi-linker[1003]: 2020-11-04 10:11:30,357 INFO Update recdir via dbus: 0 update of recordings triggered
Nov 4 10:11:30 yavdr vdr: [2847] dbus2vdr: use of deprecated interface: 'List' should be called with the interface 'de.tvdr.vdr.pluginmanager'!
Nov 4 10:11:30 yavdr yavdr-frontend[1708]: DEBUG:softhddevice:False
Nov 4 10:11:30 yavdr yavdr-frontend[1708]: INFO:softhddevice:use_pasuspend is False
Nov 4 10:11:30 yavdr yavdr-frontend[1708]: DEBUG:yaVDRFrontend:set_background with options path: /usr/share/yavdr/images/yavdr_logo.png, fill: False
Nov 4 10:11:30 yavdr vdr: [2734] retuning due to modification of channel 4 (SAT.1 HD)
Nov 4 10:11:30 yavdr vdr: [2734] switching to channel 4 C-61441-10015-50018 (SAT.1 HD)
Nov 4 10:11:30 yavdr vdr: [2848] video directory scanner thread ended (pid=2734, tid=2848)
Nov 4 10:11:30 yavdr yavdr-frontend[1708]: DEBUG:VDRFrontend:user is active: True
Nov 4 10:11:30 yavdr yavdr-frontend[1708]: DEBUG:softhddevice:check_state(): got status code: 912
Nov 4 10:11:30 yavdr yavdr-frontend[1708]: DEBUG:softhddevice:status: softhddevice is detached
Nov 4 10:11:30 yavdr kiosk-browser[2846]: AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
Nov 4 10:11:30 yavdr yavdr-frontend[1708]: DEBUG:softhddevice:check_state(): got status code: 912
Nov 4 10:11:30 yavdr vdr: audio: 'alsa' output module used
Nov 4 10:11:30 yavdr vdr: audio/alsa: supports pause: yes
Nov 4 10:11:30 yavdr vdr: [2734] CAM 1: unassigned from device 1
Nov 4 10:11:30 yavdr vdr: [2734] CAM 1/1: reusing MTD CAM slot
Nov 4 10:11:30 yavdr vdr: [2767] VNSI: Requesting clients to reload timers
Nov 4 10:11:30 yavdr WebKitWebProces[2857]: AT-SPI: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
Nov 4 10:11:30 yavdr vdr: [2771] device 1 TS buffer thread ended (pid=2734, tid=2771)
Nov 4 10:11:30 yavdr vdr: [2770] buffer stats: 129532 (0%) used
Nov 4 10:11:30 yavdr vdr: [2770] device 1 receiver thread ended (pid=2734, tid=2770)
Nov 4 10:11:30 yavdr vdr: [2734] CAM 1: assigned to device 1
Nov 4 10:11:30 yavdr vdr: [2885] device 1 receiver thread started (pid=2734, tid=2885, prio=high)
Nov 4 10:11:30 yavdr vdr: [2886] device 1 TS buffer thread started (pid=2734, tid=2886, prio=high)
Nov 4 10:11:30 yavdr vdr: osd2web: Client 'ip6-localhost/::1' connected (0x55799f20e0f0), ping time set to (60)
Nov 4 10:11:30 yavdr vdr: osd2web: Client login 'ip6-localhost/::1' (0x55799f20e0f0) [{"event":"login","object":{"type":1,"tftprio":100}}]
Nov 4 10:11:30 yavdr vdr: osd2web: lowest prio is (100)
Nov 4 10:11:32 yavdr vdr: [2767] VNSI: Requesting clients to reload recordings list (1)
Nov 4 10:11:33 yavdr vdr: audio: 44100Hz supports 1 2 3 4 5 6 7 8 channels
Nov 4 10:11:33 yavdr vdr: audio: 48000Hz supports 1 2 3 4 5 6 7 8 channels
Nov 4 10:11:33 yavdr vdr: audio: 192000Hz supports 1 2 3 4 5 6 7 8 channels
Nov 4 10:11:33 yavdr vdr: video/cuvid: Start CUVID
Nov 4 10:11:33 yavdr vdr: video/glx: glx version 1.4
Nov 4 10:11:33 yavdr vdr: video/cuvid: Start CUVID ok
Nov 4 10:11:33 yavdr yavdr-frontend[1708]: DEBUG:softhddevice:change_state with command atta and options "-d :0" to attached
Nov 4 10:11:33 yavdr yavdr-frontend[1708]: DEBUG:softhddevice:check_state(): got status code: 910
Nov 4 10:11:33 yavdr yavdr-frontend[1708]: DEBUG:softhddevice:softhddevice successfully attached
Nov 4 10:11:33 yavdr yavdr-frontend[1708]: DEBUG:softhddevice:current PrimaryDevice is softhddevice-openglosd (Index: 4, Number: 4, hasDecoder: True, isPrimary: True)
Nov 4 10:11:33 yavdr yavdr-frontend[1708]: DEBUG:softhddevice:softhddevice is the primary device
Nov 4 10:11:33 yavdr yavdr-frontend[1708]: DEBUG:softhddevice:needed 0.001 s to switch primary device
Nov 4 10:11:33 yavdr boblightd[716]: (CClientsHandler::Process) 127.0.0.1:49702 connected
Nov 4 10:11:33 yavdr boblightd[716]: (CClientsHandler::ParseMessage) 127.0.0.1:49702 said hello
Nov 4 10:11:33 yavdr vdr: BOBLIGHT: Connected to boblight
Nov 4 10:11:33 yavdr boblightd[716]: (CClientsHandler::ParseSet) 127.0.0.1:49702 priority set to 128
Nov 4 10:11:33 yavdr boblightd[716]: (CClientsHandler::ParseSet) 127.0.0.1:49702 priority set to 128
Nov 4 10:11:33 yavdr vdr: audio/alsa: using pass-through device 'default'
Nov 4 10:11:33 yavdr vdr: audio/alsa: start delay 336ms
Nov 4 10:11:34 yavdr vdr: scraper2vdr: Got UUID '28013E18-8CF2-4C2C-96AB-259FD437FF0F' by epg2vdr
Nov 4 10:11:34 yavdr vdr: scraper2vdr: Trying to re-connect to database!
Nov 4 10:11:34 yavdr vdr: scraper2vdr: Calling mysql_init(2760)
Nov 4 10:11:34 yavdr vdr: scraper2vdr: Connection established successfull!
Nov 4 10:11:34 yavdr vdr: [2767] VNSI: Requesting clients to reload channel list
Nov 4 10:11:34 yavdr vdr: scraper2vdr: Got 3451 new scraped Events from Database
Nov 4 10:11:34 yavdr vdr: scraper2vdr: Loading Movies information from Database...
Nov 4 10:11:34 yavdr vdr: scraper2vdr: Got 182 new/updated Movies in 0s from Database (new max scrsp: 1604476616)
Nov 4 10:11:34 yavdr vdr: scraper2vdr: Loading Movies content from Database...
Nov 4 10:11:34 yavdr vdr: osd2web: Client 'xxx/192.168.10.67' connected (0x55799f28a840), ping time set to (60)
Nov 4 10:11:34 yavdr vdr: osd2web: Client login 'xxx/192.168.10.67' (0x55799f28a840) [{"event":"login","object":{"type":0,"tftprio":100}}]
Nov 4 10:11:34 yavdr vdr: scraper2vdr: Got 0 new/updated Image information in 0s from Database
Nov 4 10:11:34 yavdr vdr: scraper2vdr: Loading Series information from Database...
Nov 4 10:11:35 yavdr vdr: scraper2vdr: Got 337 new/updated Series in 1s from Database (new max scrsp: 1604480222)
Nov 4 10:11:35 yavdr vdr: scraper2vdr: Loading Series content from Database...
Nov 4 10:11:35 yavdr vdr: scraper2vdr: Got 1199 new/updated Episodes and 611 new/updated Image information (including 584 possible not available season poster) in 0s from Database
Nov 4 10:11:35 yavdr vdr: scraper2vdr: Loading Image content from Database...
Nov 4 10:11:35 yavdr vdr: [2844] animator thread thread ended (pid=2734, tid=2844)
Nov 4 10:11:35 yavdr vdr: scraper2vdr: Got 28 new/updated Images (found 583 not available images) in 0s from Database
Nov 4 10:11:37 yavdr vdr: video/cuvid: synced after 78 frames
Nov 4 10:12:13 yavdr vdr[2734]: [xcb] Unknown sequence number while processing queue
Nov 4 10:12:13 yavdr vdr[2734]: [xcb] Most likely this is a multi-threaded client and XInitThreads has not been called
Nov 4 10:12:13 yavdr vdr[2734]: [xcb] Aborting, sorry about that.
Nov 4 10:12:13 yavdr vdr[2734]: vdr: ../../src/xcb_io.c:260: poll_for_event: Assertion `!xcb_xlib_threads_sequence_lost' failed.
Nov 4 10:12:14 yavdr boblightd[716]: (CClientsHandler::Process) 127.0.0.1:49702 Connection closed
Nov 4 10:12:14 yavdr boblightd[716]: (CClientsHandler::RemoveClient) removing 127.0.0.1:49702
Nov 4 10:12:14 yavdr yavdr-frontend[1708]: INFO:pydbus2vdr:VDR Status: stopped
Nov 4 10:12:14 yavdr yavdr-frontend[1708]: DEBUG:softhddevice:g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name de.tvdr.vdr was not provided by any .service files (2)
Nov 4 10:12:14 yavdr systemd[1]: vdr.service: Main process exited, code=killed, status=6/ABRT
Nov 4 10:12:14 yavdr systemd[1]: vdr.service: Failed with result 'signal'.
Nov 4 10:12:14 yavdr systemd[1]: vdr.service: Scheduled restart job, restart counter is at 2.

Error with double fans GPU on Ubuntu 18.04

I tried to control my fans with this project and I got this output when I execute the temp.sh script's.
Output :

################################################################################
#          nan0s7's script for automatically managing GPU fan speed            #
################################################################################

Configuration file: /home/cedric/FanControl/nfancurve/config
Number of Fans detected: 
2
Number of GPUs detected: 
1


Started process for n-GPUs and n-Fans


ERROR: Error assigning value 70 to attribute 'GPUTargetFanSpeed'
       (cedric-home-kubuntu:0[fan:0]) as specified in assignment
       '[fan:0]/GPUTargetFanSpeed=70' (Unknown Error).




ERROR: Error assigning value 70 to attribute 'GPUTargetFanSpeed'
       (cedric-home-kubuntu:0[fan:1]) as specified in assignment
       '[fan:1]/GPUTargetFanSpeed=70' (Unknown Error).

I used the default configuration provide by this repo.
My hardward is :
CPU : Ryzen 3900X
GPU : Nvidia RTX 2080 ti

Only first change works

Hello!

I am trying to use your script with cool-bit 4, and after the first change of fan speed no more changes are done. The script keeps running and reporting what should be the current fanspeed but it is not changed.

Any idea of why?

Using ubuntu 18 with a 1060, running 390.77 driver

usage issues - xorg.conf, service autostart

I want to use your script, but I can't get xorg.conf the way you describe in USAGE.md

I have 2 cards, the display is at one of them. Where you connect the display becomes the first GPU in the nvidia-settings panel. It changes it if you plug the display in the other card. nvidia-settings does not create file in /etc/X11/xorg.conf.d.
So no way to ensure coolbits are set properly.
I'm trying to make the file by manual creating 20-nvidia.conf file:

Section "Device"
        # You may change the identifier number to your use case.
        Identifier      "Device0"
        Driver         "nvidia"
        BusID          "PCI:8:0:0"
        BoardName      "NVIDIA GeForce RTX 3090"
        VendorName     "NVIDIA Corporation"
        Option         "Coolbits" "28"
EndSection

Section "Device"
        # You may change the identifier number to your use case.
        Identifier      "Device1"
        Driver         "nvidia"
        BusID          "PCI:9:0:0"
        BoardName      "NVIDIA GeForce RTX 3090"
        VendorName     "NVIDIA Corporation"
        Option         "Coolbits" "28"
EndSection

This resulted in blank screen and in the log of Xorg I see "Option Coolbits not used".
The BusIDs are taken from the output of lspci

146 Syntax error: redirection unexpected

I simply download the code and run ./temp.sh , it shows this line
./temp.sh: 146: Syntax error: redirection unexpected.
This is a Ubuntu 20.04 machine. And I use ./temp.sh -v .It shows Version 19.4

I tested on another centos7 machine and it works fine...
Can you help me. Thanks!

Sometimes assigning new temperature show me "Unknown Error"

I run

DISPLAY=:0 XAUTHORITY=/run/user/120/gdm/Xauthority sh temp.sh

and get:

Configuration file: /home/sks/nfancurve/config
Number of Fans detected: 1
Number of GPUs detected: 1

  Attribute 'GPUFanControlState' (vidserv1:0[gpu:0]) assigned value 1.

Started process for 1 GPU and 1 Fan

  Attribute 'GPUTargetFanSpeed' (vidserv1:0[fan:0]) assigned value 25.

But after 1 or several hours (absolutely random) I get error:

ERROR: Error assigning value 40 to attribute 'GPUTargetFanSpeed' (vidserv1:0[fan:0]) as specified in assignment
'[fan:0]/GPUTargetFanSpeed=40' (Unknown Error).

I dont understand this is bug or my configuration wrong.

Now I try to test simple patch (maybe it be useful for you and anyone):

I changed: https://github.com/nan0s7/nfancurve/blob/v019.2/temp.sh#L84-L86

to:

set_speed() {
        $gpu_cmd -a [fan:"$fan"]/GPUTargetFanSpeed="$cur_spd" $display
        if [ "$?" -ne "0" ]; then
                echo 'error change temp, try to fix it'
                set_fan_control "$num_gpus_loop" "1"
        fi
}

Fan speed does not back to 0

I have a Gigabyte Eagle RTX 3060 12GB, it is dual fan and has a zero rpm feature.
I'm on Manjaro (Gnome) and Nvidia driver version is 530.41.03.
In the nfancurve config file I set min_t and min_t2 to 43 Celsius and the first fan speed at 55%.
When I launch the nfancurve script I get this message:

The valid values for 'GPUTargetFanSpeed' are in the range 30 - 100 (inclusive). 'GPUTargetFanSpeed' can use the following target types: Fan.

However, when I run a benchmark or a game the fans start at ~43 and the speed ramps up as specified in the config file.
The strange thing is that when I close the game the fans speed decreases as in config file, but when the temp of 43 is reached, the speed is stuck at the first speed in fcurve.
In my case the first speed is 55% and fans are stuck at 55% even if temp is far below 43 Celsius (temp at 29, fans stuck at 55%).
If I kill nfancurve fans speed is back to 0, as expected in the default fan curve of this videocard.

My config file:

min_t="43"
min_t2="43"

sleep_time="7"

hyst="2"

fcurve="55 70 85 95 99" 
tcurve="55 65 75 85 95" 

force_check="0"

fcurve2="55 70 85 95 99"
tcurve2="55 65 75 85 95"

which_curve="1 2 1 2"

default_fan="0"

fan2gpu="0 0 1 1"

P.S. I used nfancurve with same config file on Ubuntu with driver 525.105.17 and there wasn´t this issue.

systemd service fails to start

Hi!
I've used this script for a few weeks and so far it has worked really well. However, after a recent update of the nvidia drivers for arch linux the script is no longer working and the error code isn't really helpful.
I'm going to try to force the downgrade of the drivers after submitting this issue, if the error persists then I messed up somehow.
This is the output of the command systemctl status --user nfancurve

Thanks in advance!

image

nvidia-settings allows setting the fan speed from 30% to 100%

So, I assume that when the GPU temperature is below the min_t, the script should disable fan control (and not set the speed to 0%). Fan control should be enabled when the GPU temperature is above the min_t.

Additionally, it would be beneficial to implement an action when the GPU temperature reaches a critical level, such as a reboot. Or, even better, terminate all processes utilizing the GPU.

The nvidia-settings command can be executed as "xvfb-run -a nvidia-settings". The /etc/X11/xorg.conf with coolbits is still required.

Thank you for the outstanding work.

Syntax error: "(" unexpected

Hi
With latest (and also earlier) versions of nfancurve I repeatedly get the following errors when I try and run temp.sh

./temp.sh: 45: ./temp.sh: Syntax error: "(" unexpected
./temp.sh: 33: ./temp.sh: set_fan_control: not found

Line 45 reads
declare -a temp=()

Any suggestions? I'm in Ubuntu 18.04.

AMD support?

I believe it should be relatively easy enough to add support for AMD GPU's. However, I do not own any of them so I would need someone to help me test things.

If you wouldn't mind helping test and or code this, let me know. :)

Error: Integer expected

./temp.sh: line 286: [: : integer expression expected

###################################

nan0s7's fan speed curve script

###################################

No other versions of temp.sh running in background
A likely supported driver version was detected
Configuration loaded
Number of Fans detected:
Number of GPUs detected:
1
tdiff average: 12

./temp.sh: line 286: [: : integer expression expected
Submit an issue on my GitHub page... happy to fix this :D

1 GPU on gjorge-G752VT:0

[0] gjorge-G752VT:0[gpu:0] (GeForce GTX 970M)

  Has the following names:
    GPU-0
    GPU-3f936eaa-d22c-99e2-d84f-87d2ee9dc576

Fan control set back to auto mode

headless support suggestion

Here is my gist using nvml library directly via python FFI ctypes.

Using nvml directly avoids x-server dependency. Also python makes it easy.

Just guessing, it would be simple to create python wrappers for all nvml calls you need.

Let me know what you think,
Alex

Theme parsing error and Error assigning value to attribute

[ash@ash-pc nfancurve-master]$ ./temp.sh

################################################################################
#          nan0s7's script for automatically managing GPU fan speed            #
################################################################################

Configuration file: /home/ash/Downloads/nfancurve-master/config

(nvidia-settings:170160): Gtk-WARNING **: 10:43:02.775: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name
Number of Fans detected:
1

(nvidia-settings:170167): Gtk-WARNING **: 10:43:02.902: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name
Number of GPUs detected:
1

(nvidia-settings:170172): Gtk-WARNING **: 10:43:03.024: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name


Started process for 1 GPU and 1 Fan

(nvidia-settings:170177): Gtk-WARNING **: 10:43:03.145: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name

(nvidia-settings:170182): Gtk-WARNING **: 10:43:03.268: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name


ERROR: Error assigning value 85 to attribute 'GPUTargetFanSpeed' (ash-pc:0[fan:0]) as specified in assignment '[fan:0]/GPUTargetFanSpeed=85' (Unknown
Error).



(nvidia-settings:170325): Gtk-WARNING **: 10:43:10.406: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name

(nvidia-settings:170465): Gtk-WARNING **: 10:43:17.531: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name

(nvidia-settings:171165): Gtk-WARNING **: 10:43:24.655: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name

(nvidia-settings:171306): Gtk-WARNING **: 10:43:31.775: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name

(nvidia-settings:171449): Gtk-WARNING **: 10:43:38.904: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name

(nvidia-settings:172144): Gtk-WARNING **: 10:43:46.024: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name

(nvidia-settings:172283): Gtk-WARNING **: 10:43:53.141: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name
^C
(nvidia-settings:172296): Gtk-WARNING **: 10:43:53.932: Theme parsing error: gtk-dark.css:6342:10: 'height' is not a valid property name


Fan control set back to auto mode

i'm using Garuda Linux with a nvidia 970, coolbits is on 28, can't change the fan speed with nvidia-settings too unfortunately

script on linux mint

Hi,
first of all thanks for great script, I can finally move my gpu render nodes to linux :)
But I did run into an issue.
Trying on linux mint 19.1 and running script gives me this:

./temp.sh: 7: ./temp.sh: Syntax error: "(" unexpected

On centos it was working fine but for some reason I have issues with centos on render nodes so proceeded with mint for now.
\Any idea about this?
Thank you

script looks at temp of 1st GPU only

Nice job on this script!

I have one issue. In a multigpu setup, I've noticed that the script actions are based on the temperature of the first gpu only. So in a situation where the 2nd GPU only is being used, the fan speed does not increase with the 2nd GPU's temperatures. To make matters worse, the periodic checks on the temperature of the 1st GPU suppress the default Nvidia fan curve, leading to lower fan speeds on GPU2 than are appropriate.

Would it be possible to modify get_temp() so that it checks the temperature of all of the GPUs, then returns the temperature of the hottest one?

Error in temp.sh: integer expression expected

Hi,
Running version 17 with 6 GPU. Launched temp.sh and made no changes to the default config.
I get the following error:
image

./temp.sh: line 127: [: : integer expression expected

Your line 127 is:
if [ "$current_t" -ne "${old_t[$gpu]}" ]; then

Script started nicely:
Number of Fans detected: 6
Number of GPUs detected: 6
tdiff average: 10

Attribute 'GPUFanControlState' (central2:0[gpu:0]) assigned value 1.

...

Running the following command to see if all fans detected:
nvidia-settings -q fans

6 Fans on central2:0

[0] central2:0[fan:0] (Fan 0)

  Has the following name:
    FAN-0

[1] central2:0[fan:1] (Fan 1)

  Has the following name:
    FAN-1

[2] central2:0[fan:2] (Fan 2)

  Has the following name:
    FAN-2

[3] central2:0[fan:3] (Fan 3)

  Has the following name:
    FAN-3

[4] central2:0[fan:4] (Fan 4)

  Has the following name:
    FAN-4

[5] central2:0[fan:5] (Fan 5)

  Has the following name:
    FAN-5

My setup:
Ubuntu 18.04.1
Nvidia 396.54
6x 1060 GTX 3GB
Good luck: let me know if I can help you with anything.

don't work on multi gpu

Hello,
I have 2 gpus on my ubuntu linux.
But only gpu 1 take effect with nfancurve. gpu 2 is no effect.
Both gpu are gtx 1080 ti, and each gpu has 1 fan.
This is the nvidia-smi output:
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 435.21 Driver Version: 435.21 CUDA Version: 10.1 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... Off | 00000000:01:00.0 On | N/A |
| 65% 79C P2 227W / 250W | 123MiB / 11176MiB | 52% Default |
+-------------------------------+----------------------+----------------------+
| 1 GeForce GTX 108... Off | 00000000:02:00.0 Off | N/A |
| 50% 84C P2 82W / 250W | 16MiB / 11178MiB | 45% Default |
+-------------------------------+----------------------+----------------------+

what could i do with this problem?

Hysteresis

I've been using your script for a week and it is working quite nicely - thanks a lot! I have a question about adding some hysteresis though: I set up my curve to keep the fans off until 50°, and above that start at 20%. I've found that sometimes the fans often come on briefly - for a few seconds - then stop - then come on again for a few seconds then stop - and this repeats for a few minutes. Ideally I'd reduce the fan to e.g. 10% at some intermediate temperature but this isn't enough to operate the fans on my card (they go into an annoying mode of switching on and off rapidly - something about the PWM control I guess). So, I'd like to add some hysteresis so that the fans, when they come on, stay on until the temperature is well below the threshold temperature that triggered them - so if rising to 50° switched the fans on, they will stay on until the temperature is e.g. 45°. Is this possible to do with the current script?

nfancurve doesn't keep fan speed as it should when set to low values <30%, speed keeps dropping to 0%

By default, config file has:

fcurve="25 40 55 70 85" # fan speeds
tcurve="35 45 55 65 75" # temperatures

I tried to edit as:

fcurve="10 15 20 70 85" # fan speeds
tcurve="35 45 55 65 75" # temperatures
GPU.util.and.fan.speed.webm

Readings from Vitals app. First one is GPU temp in C, second is GPU util %, third is Fan speed %.
And as you can see, the fan speed keeps dropping to 0, and then the script (I'm guessing) brings it up again to required value.
When I leave fcurve by default, the fan speeds seem to be working normally.
I feel like driver and script are conflicting with each other, with former trying to reset fan speed to 0. I'd really like to have low fan speeds when GPU temps are in between 20-40C.
Also, without the script, but with coolbits = 12 enabled where appropriate, the 10% value of fan speed also can't stay consistent in Nvidia Settings GUI app. When I set 10 to Fan 0 and Fan 1, RPM value keeps dropping to 0 and back to ~650-850 values. Like Nvidia drivers tries to set it, and then something resets it to 0. A cat and mouse game.
Through trial and error, I determined that when both fans set to 30% in Nvidia Settings ("Thermal Settings"), then the RPM values for both fans show up as more or less consistent, albeit fluctuate a bit.
I know that there seem to be a limitation on some GPU wherein they can't have less than 30%? It's like either 0% or 30%, no in between possible, why? How can I circumvent this?? Why would anyone put this! Also, vbios (automatic) doesn't spin fans even at 45C!

I have a 2000s series RTX GPU from Nvidia. Ubuntu 23.10.
NVIDIA-SMI 545.29.06 Driver Version: 545.29.06 CUDA Version: 12.3

Control display is undefined

Please help

Unable to init server: Could not connect: Connection refused

ERROR: The control display is undefined; please run `nvidia-settings --help` for usage information.

Number of Fans detected:
Unable to init server: Could not connect: Connection refused

ERROR: The control display is undefined; please run `nvidia-settings --help` for usage information.

Number of GPUs detected:
./temp.sh: line 184: [: : integer expression expected
Submit an issue on my GitHub page... happy to fix this :D

Only one fan of three detected

Hi!

The script only detects 1 of 3 GPU fans:
onfiguration file: /home/aaron/nfancurve/config Number of Fans detected: 1 Number of GPUs detected: 1
GPU is Nvidia GTX 1080.

What is wrong?

Error when starting Script

When i start the Script i get this Error:

################################################################################

nan0s7's script for automatically managing GPU fan speed

################################################################################

Configuration file: /home/atlas/nfancurve/config
Number of Fans detected:
2
Number of GPUs detected:
1

Started process for n-GPUs and n-Fans

ERROR: Error assigning value 85 to attribute 'GPUTargetFanSpeed' (atlas:1[fan:0]) as specified in assignment '[fan:0]/GPUTargetFanSpeed=85' (Unknown Error).

ERROR: Error assigning value 85 to attribute 'GPUTargetFanSpeed' (atlas:1[fan:1]) as specified in assignment '[fan:1]/GPUTargetFanSpeed=85' (Unknown Error).

I have setup Coolbits and all dependecy's are updated and installed :( What could be the reason for this?

Support for multi-fan GPUs

Got the helpful error message to submit an issue in Github for this. Thanks!

In my case, this is legitimate as I have a GPU with a liquid cooler (one blower fan on the GPU card itself, another on the radiator liquid cooler).

One thing that is clear, at least for my GPU, is that the two fans are operated at very different speeds. One idles at 17%, the other at 50%. In the case for this GPU (a MSI RTX 2080), the fan #0 is the radiator fan, while fan #1 is the blower card. However, I would not be surprised if that varied by manufacturer.

Here's the output from the script:

################################################################################
#          nan0s7's script for automatically managing GPU fan speed            #
################################################################################

Configuration file: /home/edave/other-repositories/nfancurve/config
Number of Fans detected: 4
Number of GPUs detected: 2
Submit an issue on my GitHub page... happy to fix this :D

4 Fans on mythril:1

    [0] mythril:1[fan:0] (Fan 0)

      Has the following name:
        FAN-0

    [1] mythril:1[fan:1] (Fan 1)

      Has the following name:
        FAN-1

    [2] mythril:1[fan:2] (Fan 2)

      Has the following name:
        FAN-2

    [3] mythril:1[fan:3] (Fan 3)

      Has the following name:
        FAN-3

2 GPUs on mythril:1

    [0] mythril:1[gpu:0] (GeForce RTX 2080)

      Has the following names:
        GPU-0
        GPU-a1581e88-f69a-dec1-b0db-210270c47e4c

    [1] mythril:1[gpu:1] (GeForce RTX 2080)

      Has the following names:
        GPU-1
        GPU-2144f4f6-6446-7c6f-59fb-d730a756b27e

  Attribute 'GPUFanControlState' (mythril:1[gpu:0]) assigned value 0.


  Attribute 'GPUFanControlState' (mythril:1[gpu:1]) assigned value 0.

Fan control set back to auto mode

config: need some explanation

Hi,
You have the following text in the config file, and the subsequent array:
by default it's set up so that when the temp is less than or equal to 30
degrees, the fan speed will be set to 20%. next, if the temp is between 31
and 40, the fan speed should be set to 35%, etc.
he last temperature value will be the maximum temperature before 100% fan
speed will be set
you can make the array as big or as small as you require, as long as they
both end up being the same size
declare -a fcurve=( "25" "40" "55" "70" "85" )
declare -a tcurve=( "35" "45" "55" "65" "75" )

This does not make sense to me. Where is:

  • "when the temp is less than or equal to 30" : I don't see any 30 in this array
  • "the fan speed will be set to 20%": again where is this 20?

What is should probably be saying is:
When the temp is less than or equal to 25 the fan speed will be set to 35%
or is it the other way round?

What a mess

what is NFANCURVE_PATH
what is update.sh ???

Your thing is such a mess man

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.