Provided by: thinkfan_2.0.0-1_amd64 bug

NAME

       thinkfan - A simple fan control program

SYNOPSIS

       thinkfan [-hnqDd] [-b BIAS] [-c CONFIG] [-s SECONDS] [-p [DELAY]]

DESCRIPTION

       Thinkfan  reads  temperatures  from  a  configured  set  of sensors and then sets fan speeds according to
       temperature limits set in the config file.

       WARNING: Thinkfan does only very basic sanity checking on  the  configuration.  This  means  that  a  bad
              configuration  can  increase  thermal  wear  on  the  hardware  or  even  cause  destruction  from
              overheating!

   Supported sensors
       • /proc/acpi/ibm/thermal
              This is provided by the thinkpad_acpi kernel module on older Thinkpads.

       • temp*_input files in sysfs (hwmon interface)
              May be provided by any hwmon drivers, including thinkpad_acpi on modern Thinkpads.

       • Hard disks with S.M.A.R.T. support (libatasmart)
              Available if thinkfan was compiled with -DUSE_ATASMART=ON.  Note that  modern  Linux  kernels  can
              also expose S.M.A.R.T. hard disk temperatures via the hwmon interface in sysfs (and therefore also
              via lm_sensors), which is generally preferrable because it is more efficient.

       • From the proprietary nVidia driver
              When  the  proprietary  nVidia  driver  is  used, no hwmon for the card will be available. In this
              situation, thinkfan can use the proprietary NVML API to get temperatures.

       • Via lm_sensors (libsensors interface)
              This is a modern and more reliable alternative to the sysfs hwmon interface mentioned above.  It's
              basically  a  standardized  abstraction  for  sysfs  hwmon  where sensors can always be identified
              uniquely, even when the load order of kernel modules changes.

   Supported fans
       Thinkfan can control any number of fans, which can be specified in two ways:

       • /proc/acpi/ibm/fan
              Provided by the thinkpad_acpi kernel module. Note that the kernel module needs to be  loaded  with
              the  option "fan_control=1" to enable userspace fan control.  On some models, "experimental=1" may
              also be required. See the SEE ALSO section at the bottom  of  this  manpage  for  a  link  to  the
              official thinkpad_acpi documentation.

       • pwm*_enable and pwm? files in sysfs
              Provided by all modern hardware monitoring drivers, including thinkpad_acpi.

   Mapping temperatures to fan speeds
       There are two general modes of operation:

       • Detailed mode
              In  detailed  mode,  temperature  limits are defined for each sensor thinkfan knows about. Setting
              suitable limits for each sensor in your system will probably require a bit of experimentation  and
              good  knowledge  about your hardware, but it's the safest way of keeping each component within its
              specified temperature range. See the example configs to learn about the syntax.

       • Simple mode
              In simple mode, thinkfan uses only the highest temperature  found  in  the  system.  That  may  be
              dangerous,  e.g. for hard disks.  That's why you should provide a correction value (i.e. add 10-15
              °C) for the sensor that has the temperature of your hard disk (or battery...).   See  the  example
              config files for details about that.

CONFIGURATION

       All  of  the features described above are configured in the thinkfan config file. Its default location is
       /etc/thinkfan.conf or /etc/thinkfan.yaml (see also the -c option below).   An  example  configuration  is
       provided  with the source package. It is intended purely for illustration of various scenarios and is not
       suitable as a basis for actually functional config. For a complete reference  see  the  config  man  page
       thinkfan.conf(5).

OPTIONS

       -h     Show a short help message

       -s SECONDS
              Maximum seconds between temperature updates (default: 5)

       -b BIAS
              Floating  point  number  (-10  to  30)  to  smooth out or amplify quick temperature changes.  If a
              sensor's temperature increases by more than 2 °C during one cycle, we calculate an offset value as
              follows:

                  offset = delta_t * BIAS / 10

              This offset is then added to the actual temperature:

                  biased_t = current_t + offset

              If delta_t stays below 2 °C in subsequent loops, offset will be reduced back to 0 in increments of
              sgn(BIAS) * (1 + abs(BIAS/5)).

              This means that a negative BIAS will even out short and sudden temperature spikes like those  seen
              on  some  on-DIE  sensors,  while  positive  values  will  exaggerate  increasing  temperatures to
              compensate e.g. for sensors that respond slowly because they are attached to heavy heatsinks.

              Use DANGEROUS mode to remove the -10 to +30 limit. Note that you can't have a space between -b and
              a negative argument, because otherwise getopt will interpret things like -10 as an option and fail
              (i.e. write -b-10 instead of -b -10).

              The default is 0.

       -c FILE
              Load a different configuration file.  By default, thinkfan first tries to load /etc/thinkfan.yaml,
              and /etc/thinkfan.conf after that.  The former must be in YAML format, while  the  latter  can  be
              either YAML or the old legacy syntax.

              If  this  option  is  specified, thinkfan attempts to load the config only from FILE.  If its name
              ends in “.yaml”, it must be in YAML format.  Otherwise, it can be either YAML  or  legacy  syntax.
              See thinkfan.conf(5) and thinkfan.conf.legacy(5) for details.

       -n     Do not become a daemon and log to terminal instead of syslog

       -q     Be  quiet,  i.e. reduce logging level from the default. Can be specified multiple times until only
              errors are displayed/logged.

       -v     Be more verbose. Can be specified multiple times until every message is displayed/logged.

       -p [SECONDS]
              Use the pulsing-fan workaround (for older Thinkpads). Takes an  optional  floating-point  argument
              (0-10s) as depulsing duration. Default 0.5s.

       -d     Do  not  read  temperature  from sleeping disks. Instead, 0 °C is used as that disk's temperature.
              This is needed if reading the temperature causes your disk to wake up unnecessarily.   NOTE:  This
              option is only available if thinkfan was built with -D USE_ATASMART.

       -D     DANGEROUS mode: Disable all sanity checks. May damage your hardware!!

SIGNALS

       SIGINT and SIGTERM simply interrupt operation and should cause thinkfan to terminate cleanly.

       SIGHUP makes thinkfan reload its config. If there's any problem with the new config, we keep the old one.

       SIGUSR1  causes thinkfan to dump all currently known temperatures either to syslog, or to the console (if
       running with the -n option).

       SIGPWR tells thinkfan that the system is about to go to sleep.  Thinkfan  will  then  allow  sensor  read
       errors  for the next 4 loops because many sensors will take a few seconds before they are available again
       after waking up from a sleep state (suspend or hibernate). If the shipped systemd service file  thinkfan-
       sleep.service  is  installed,  it  should  take care of sending this singal when going to sleep.  On non-
       systemd distributions, other mechanisms may have to be used.

       SIGUSR2 tells thinkfan to re-initialize fan control. This is required by most fan drivers after waking up
       from suspend because they tend to reset fan control to automatic mode on wakeup. Similar to  SIGPWR,  the
       systemd service file thinkfan-wakeup.service should take care of sending this signal on wakeup on systemd
       systems. On non-systemd distributions, other mechanisms may have to be used.

RETURN VALUE

       0      Normal exit

       1      Runtime error

       2      Unexpected runtime error

       3      Invalid commandline option

SEE ALSO

       The thinkfan config manpage:
       thinkfan.conf(5)

       Example configs shipped with the source distribution, also available at:
       https://github.com/vmatare/thinkfan/tree/master/examples

       The Linux hwmon user interface documentation:
       https://www.kernel.org/doc/html/latest/hwmon/sysfs-interface.html

       The thinkpad_acpi interface documentation:
       https://www.kernel.org/doc/html/latest/admin-guide/laptops/thinkpad-acpi.html

BUGS

       If thinkfan tells you to, or if you feel like it, report issues at the Github issue tracker:

       https://github.com/vmatare/thinkfan/issues

thinkfan 2.0.0                                     April 2022                                        THINKFAN(1)