Arch linux fan control

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

A Linux fan control daemon

License

hbriese/fancon

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

A Linux user-space fan control daemon

  • System, DELL and NVIDIA GPU fan control support
  • %, RPM or PWM custom speed-temperature curve configuration
  • Installation
  • Building from source
  • Configuration
  • Usage
  • Managing service
  • Debugging issues
    • Monitoring fans and their status
    • Logs
    • Undetected fans
    • Mis-configured or unsupported devices
    • $XAUTHORITY and or $DISPLAY env variable(s) not set
    sudo add-apt-repository ppa:hbriese/fancon; sudo apt-get update sudo apt install fancon
    wget https://github.com/hbriese/fancon/releases/latest/download/fancon_amd64.deb sudo dpkg -i ./fancon*.deb; sudo apt install -f

    Fedora, Red Hat, CentOS (.rpm)

    wget https://github.com/hbriese/fancon/releases/latest/download/fancon.x86_64.rpm sudo yum –nogpgcheck install ./fancon*.rpm
    git clone https://aur.archlinux.org/fancon.git; cd fancon makepkg -sirc

    /etc/fancon.conf is automatically created on first run once the tests complete

    Only ‘sensor’ & ‘temp_to_rpm’ for each fan is required to be manually configured

    config < update_interval: 1000 #Milliseconds between updating fan speeds dynamic : true #Interpolate speeds between temps e.g(30 : 800, 50 : 1200) results in 1000 @40 smoothing_intervals : 3 #Intervals over which to smooth RPM changes top_stickiness_intervals : 2 #Intervals to wait before decreasing RPM temp_averaging_intervals : 3 #Intervals to average temperatures over - eliminating temp spikes >devices < fan < type: SYS #One of : SYS(default), DELL, NVIDIA; may excluded if SYS label : "hwmon3/fan1" #Name of device - anything you want sensor : "CPU Package" #Sensor to read - specify by label temp_to_rpm : "39: 0%, 40: 1%, 75: 50%, 90: 100%" #temp(optional : f | F; default °C) : RPM(optional : % | PWM; default RPM) # 40 : 0 % Stopped at or below 40°C(°C is used if F is omitted) # 50 : 1 % Lowest running speed at 50°C # 75 : 50 % 50 % of max RPM at 75°C, \ could also be written as 75 : 180PWM in this case # 194f : 100 % Full speed at 194°F(194f = 90°C) rpm_to_pwm : "0: 0, 3206: 128, 4954: 180, 7281: 255" #Mappings of RPM to PWM start_pwm : 128 #PWM at which the fan starts #interval : 500 #Fan - specific update time; increasing improves test accuracy ignore : false #Don't control or test device; may be excluded if false #Following only applicable to SYS &DELL devices driver_flag : 2 #Driver flag to enable manual control pwm_path : "/sys/class/hwmon/hwmon3/pwm1" #Path to read / write PWM rpm_path : "/sys/class/hwmon/hwmon3/fan1_input" #Path to read RPM #Following only applicable to SYS devices enable_path : "/sys/class/hwmon/hwmon3/pwm1_enable" #Path to enable PWM control >fan < type : NVIDIA label : "980_Ti" sensor : "980_Ti_temp" temp_to_rpm : "54: 0%, 55: 1%, 90: 100%" rpm_to_pwm : "850: 0, 3832: 255" start_pwm : 128 interval : 500 id : 0 #Only applicable to NVIDIA devices >sensor < type: SYS #One of : SYS(default), NVIDIA; may excluded if SYS label : "CPU Package" #Name of device - anything you want input_path : "/sys/class/hwmon/hwmon5/temp1_input" #Path to read(only applicable to SYS devices) >sensor < type: NVIDIA label: "980_Ti_temp" id : 0 #Only applicable to NVIDIA devices >> 
    fancon arg [value] . h help Show this help s status Status of all fans e enable Enable control of all fans e enable [fan] Enable control of the fan d disable Disable control of all fans d disable [fan] Disable control of the fans t test Test all (untested) fans t test [fan] Test the fan (forced) f force Test even already tested fans (default: false) m monitor Monitor all fans m monitor [fan] Monitor the fan r reload Reload config c config [file] Config path (default: /etc/fancon.conf) service Start as service daemon Daemonize the process (default: false) stop-service Stop the service i sysinfo [file] Save system info to file (default: sysinfo.txt) recover Recover control of enabled devices nv-init Init nvidia devices v verbose Debug logging level a trace Trace logging level 

    sudo systemctl status fancon

    Источник

    DESCRIPTION

    fancontrol is a shell script for use with lm_sensors. It reads its configuration from a file, then calculates fan speeds from temperatures and sets the corresponding PWM outputs to the computed values.

    WARNING

    Please be careful when using the fan control features of your mainboard, in addition to the risk of burning your CPU, at higher temperatures there will be a higher wearout of your other hardware components, too. So if you plan to use these components in 50 years, maybe you shouldn’t use fancontrol at all. Also please keep in mind most fans aren’t designed to be powered by a PWMed voltage.

    In practice it doesn’t seem to be a major issue, the fans will get slightly warmer, just be sure to have a temperature alarm and/or shutdown call, in case some fan fails, because you probably won’t hear it anymore 😉

    CONFIGURATION

    For easy configuration, there’s a script named pwmconfig(8) which lets you interactively write your configuration file for fancontrol. Alternatively you can write this file yourself using the information from this manpage.

    Since most of you are going to use pwmconfig(8) script, the config file syntax will be discussed last. First I’m going to describe the various variables available for changing fancontrol‘s behaviour:

    INTERVAL This variable defines at which interval in seconds the main loop of fancontrol will be executed DEVPATH Maps hwmon class devices to physical devices. This lets fancontrol check that the configuration file is still up-to-date. DEVNAME Records hwmon class device names. This lets fancontrol check that the configuration file is still up-to-date. FCTEMPS Maps PWM outputs to temperature sensors so fancontrol knows which temperature sensors should be used for calculation of new values for the corresponding PWM outputs. FCFANS Records the association between a PWM output and a fan input. Then fancontrol can check the fan speed and restart it if it stops unexpectedly. MINTEMP The temperature below which the fan gets switched to minimum speed. MAXTEMP The temperature over which the fan gets switched to maximum speed. MINSTART Sets the minimum speed at which the fan begins spinning. You should use a safe value to be sure it works, even when the fan gets old. MINSTOP The minimum speed at which the fan still spins. Use a safe value here, too. MINPWM The PWM value to use when the temperature is below MINTEMP. Typically, this will be either 0 if it is OK for the fan to plain stop, or the same value as MINSTOP if you don’t want the fan to ever stop. If this value isn’t defined, it defaults to 0 (stopped fan). MAXPWM The PWM value to use when the temperature is over MAXTEMP. If this value isn’t defined, it defaults to 255 (full speed). AVERAGE How many last temperature readings are used to average the temperature. It can be used to smoothen short temperature peaks. If this value isn’t defined, it defaults to 1 (no averaging).

    The configuration file format is a bit strange:

    VARIABLE=chip/pwmdev=value chip/pwmdev2=value2 VARIABLE2=.

    Each variable has its own line. The variable name is followed by an equal sign and the device=value pairs. These consist of the path to the pwm output for which the value is valid, equal sign followed by the value and are separated by a blank. Path can be absolute or relative (from /sys/bus/i2c/devices or /sys/class/hwmon depending on the kernel version). Example:

    You have to play with the temperature values a bit to get happy. For initial setup I recommend using the pwmconfig script. Small changes can be made by editing the config file directly following the rules above.

    Upon starting, fancontrol will make sure that all referenced devices do exist and match what they were at configuration time, and that all referenced sysfs files do exist. If not, it will quit immediately, upon the assumption that the configuration file may be out-of-sync with the loaded kernel drivers.

    THE ALGORITHM

    fancontrol first reads its configuration, writes it to arrays and loops its main function. This function gets the temperatures and fanspeeds from kernel driver files and calculates new speeds depending on temperature changes, but only if the temp is between MINTEMP and MAXTEMP. After that, the new values are written to the PWM outputs. Currently the speed increases linearly with rising temperature. This way you won’t hear your fans most of the time at best.

    SEE ALSO

    AUTHOR

    Package name: extra/lm_sensors Version: 1:3.6.0.r41.g31d1f125-2 Upstream: https://hwmon.wiki.kernel.org/lm_sensors Licenses: GPL, LGPL Manuals: /listing/extra/lm_sensors/ Table of contents

    Powered by archmanweb, using mandoc for the conversion of manual pages.

    The website is available under the terms of the GPL-3.0 license, except for the contents of the manual pages, which have their own license specified in the corresponding Arch Linux package.

    Источник

    Arch Linux User Repository

    Thank you for creating this. I configured my fan to only start when the computer is warmer than 55oC, greatly improving the noise.

    Still, because this software blindly uses Fahrenheit according to locale, I run it as LANG=C fancontrol_gui .

    tomdodson commented on 2020-02-08 18:52 (UTC)

    I’m keeping a list of required dependencies I needed to install to make this work

    • cmake
    • gettext
    • extra-cmake-modules
    • qt5 # I installed all of qt5, I’m not sure what subset is actually needed.
    • kf5 # I installed all of kf5, I’m not sure what subset is actually needed.

    After this, it’s still complaining about some dependency in QT5 that I think I have but the build isn’t finding it.

    These should be added to the dependencies section.

    Maldela commented on 2019-09-18 19:22 (UTC)

    PedroHLC commented on 2019-09-18 15:57 (UTC)

    That’s so bizzare this package .SRCINFO is at pkgver = v0.8 , while it’s PKGBUILD is at pkgver=v0.7 . I think you forgot to git add PKGBUILD , and the same goes to fancontrol-kcm

    archuser5432 commented on 2019-09-18 15:43 (UTC)

    Maldela commented on 2019-09-18 12:57 (UTC)

    QWindow compilation error fixed in v0.8.

    aza-industries commented on 2019-09-18 03:57 (UTC) (edited on 2019-09-18 04:10 (UTC) by aza-industries)

    I can’t seem to get this to compile. An early error when checking dependencies: — qmlplugindump failed for QtQuick.Controls. — Could NOT find QtQuick.Controls-QMLModule (missing: QtQuick.Controls-QMLModule_FOUND)

    And what causes the build to fail: /usr/include/qt/QtCore/qobjectdefs.h:626:37: error: incomplete type ‘QWindow’ used in nested name specifier 626 | enum < Value = sizeof(test(&Object::qt_metacall)) == sizeof(int) >;

    /usr/include/qt/QtCore/qobject.h:506:5: error: static assertion failed: qobject_cast requires the type to have a Q_OBJECT macro 506 | Q_STATIC_ASSERT_X(QtPrivate::HasQ_OBJECT_Macro::Value,

    /usr/include/qt/QtCore/qobject.h:508:53: error: incomplete type ‘ObjType’ used in nested name specifier 508 | return static_cast(ObjType::staticMetaObject.cast(object));

    I’ve got qt5-quickcontrols2 installed, among all the other dependencies.

    Maldela commented on 2019-09-12 12:44 (UTC)

    If you have the singleton name error try removing the /usr/share/kpackage/genericqml/fancontrol-gui folder and be sure to have installed version 0.7 of the package. Be also sure to uninstall the old fancontrol-common package.

    DarkMind commented on 2019-09-10 13:11 (UTC)

    «file:///usr/share/kpackage/genericqml/fancontrol-gui/contents/ui/Application.qml» «Error loading QML file.\n25: plugin cannot be loaded for module \»Fancontrol.Qml\»: Invalid QML singleton type name \»base\»; type names must begin with an uppercase letter\n»

    Copyright © 2004-2023 aurweb Development Team.

    AUR packages are user produced content. Any use of the provided files is at your own risk.

    Источник

    Читайте также:  Свой дистрибутив alt linux
Оцените статью
Adblock
detector