vmatare / thinkfan

The minimalist fan control program
GNU General Public License v3.0
534 stars 61 forks source link

Failing to load thinkfan on startup #223

Closed teleothleo closed 1 year ago

teleothleo commented 1 year ago

I have a problem loading thinkfan service on Thinkpad t460p Here is the output of "systemctl status thinkfan.service"

Loaded: loaded (/usr/lib/systemd/system/thinkfan.service; enabled; >
    Drop-In: /etc/systemd/system/thinkfan.service.d
             └─override.conf
     Active: failed (Result: exit-code) since Sun 2023-01-15 18:51:37 +0>
    Process: 484 ExecStart=/usr/bin/thinkfan $THINKFAN_ARGS (code=exited>
        CPU: 21ms

Jan 15 18:51:37 lpt systemd[1]: Starting simple and lightweight fan cont>
Jan 15 18:51:37 lpt thinkfan[484]: ERROR: /etc/thinkfan.yaml:56:
                                     - chip: thinkpad-isa-0000
                                       ^
                                   Invalid sensor entry.
Jan 15 18:51:37 lpt systemd[1]: thinkfan.service: Control process exited>
Jan 15 18:51:37 lpt systemd[1]: thinkfan.service: Failed with result 'ex>
Jan 15 18:51:37 lpt systemd[1]: Failed to start simple and lightweight f>

I have thinkfan from AUR installed

My "sensors" output is the following:

iwlwifi_1-virtual-0
Adapter: Virtual device
temp1:        +34.0°C

thinkpad-isa-0000
Adapter: ISA adapter
fan1:        2411 RPM
CPU:          +48.0°C
GPU:          +45.0°C
temp3:         +0.0°C
temp4:         +0.0°C
temp5:         +0.0°C
temp6:         +0.0°C
temp7:         +0.0°C
temp8:         +0.0°C

BAT0-acpi-0
Adapter: ACPI interface
in0:          12.16 V

coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +50.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +49.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +47.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +48.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +48.0°C  (high = +100.0°C, crit = +100.0°C)

pch_skylake-virtual-0
Adapter: Virtual device
temp1:        +42.0°C

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +48.0°C  (crit = +128.0°C)

My thinkfan.yaml is the following:

##############################################################################
# thinkfan Example Config File
# ============================
#
# Please read the config manpage thinkfan.conf(5) before playing around with
# this.
#
# This is NOT a working config file that can just be copied. It is only meant
# to give a rough idea what can be done. In particular, don't copy & paste the
# fan speed config! Think about what you're doing.
#
# If you don't know what temperatures are right for your system, you should
# not be using thinkfan!
##############################################################################

##############################################################################
# Sensor Drivers and Temperature Inputs
# =====================================
#
# ATTENTION: The order in which sensors are specified here is significant when
# specifying the fan speeds further below!
#
# There are multiple ways in which a temperature input can be specified. An
# example for each is given below.
#
# The "correction:" and "optional:" keywords may be specified on any type of
# sensor.

sensors:
  # LM Sensors
  # ==========
  # Temperatures can be read directly from Linux drivers through the LM sensors.
  #
  # To configure this, install "lm-sensors" and "libsensors", then
  # run "sensors-detect", then run "sensors".
  # To build thinkfan from sources, you'll also need to install "libsensors-dev"
  # or equivalent package for your distribution.
  #
  # For example, the following output of "sensors":
  # ...
  # thinkpad-isa-0000
  # Adapter: ISA adapter
  # fan1:        2618 RPM
  # fan2:        2553 RPM
  # CPU:          +63.0 C  
  # GPU 1:        +55.0 C  
  # temp3:        +68.0 C  
  # temp4:         +0.0 C  
  # temp5:        +60.0 C  
  # temp6:        +64.0 C  
  # temp7:        +67.0 C  
  # temp8:         +0.0 C  
  # ...
  # would result in the following configuration:
  - chip: thinkpad-isa-0000
    ids: [ CPU, GPU, temp3, temp4, temp5, temp6, temp7, temp8 ]

  # hwmon: Full path to a temperature file (single sensor).
  # =======================================================
  # Disadvantage is that the index in "hwmon0" depends on the load order of
  # the driver modules, which may change across bootups on some systems.
  - hwmon: /sys/class/hwmon/hwmon0/temp1_input

  # hwmon: Path to a complete driver folder
  # =======================================
  # Individual sensors need to be picked out with the "indices:" keyword.
  # This can be used with a stable path that does not depend on driver load
  # order. However certain drivers may not appear under such a stable path.
  - hwmon: /sys/devices/pci0000:00/0000:00:03.1/0000:27:00.0/hwmon
    indices: [1, 2, 5, 6] # adds 4 temperature sensors
    correction: [0, 0, 0, -5] # add -5 °C to temp6_input

  # hwmon: Base path with name-based search
  # =======================================
  # Thinkfan will search under the given path for a hwmon driver that has a
  # file called "name" which contains the given name. This method should work
  # with all hwmon drivers and is robust against driver load order.
  - hwmon: /sys/class/hwmon
    name: k10temp
    indices: [1]

  # Sensors can also be optional, e.g. in case of removable hardware
  - hwmon: /sys/class/block/sdc/device/hwmon
    indices: [1]
    optional: true # don't exit if the sensor can't be read

  # atasmart: Read the temperature from a hard disk via S.M.A.R.T
  # =============================================================
  # Note that this is unreasonably CPU-intensive. Since Linux 5.6, the kernel
  # can report the temperatures of hard disks via the hwmon interface (see the
  # example above), which should be preferred if available.
  #
  # This is only available if thinkfan was compiled with USE_ATASMART enabled.
  - atasmart: /dev/sda

  # tpacpi: Legacy interface to the thinkpad_acpi driver
  # ====================================================
  # Particularly on older Thinkpad laptops, this interface may give access to
  # 8-16 temperature sensors, but it may be hard to tell where/what exactly
  # they measure.
  # Some documentation for older models may be found at the thinkpad wiki:
  # https://www.thinkwiki.org/wiki/Thermal_Sensors
  #
  # Note that the hwmon interface is to be preferred nowadays.
  - tpacpi: /proc/acpi/ibm/thermal
    # Some of the temperature entries in /proc/acpi/ibm/thermal may be
    # irrelevant or unused, so individual ones can be selected:
    indices: [1, 2, 3, 4]

  # nvml: The proprietary nVidia driver
  # ===================================
  # Temperatures can be read directly from nVidia GPUs that run with the
  # proprietary driver. The "nvml:" entry must specify the PCI bus ID of the
  # GPU (can be found with lspci)
  #
  # Note that this does not work with the open-source "nouveau" driver. Open
  # source drivers should support the hwmon interface instead (see above).
  - nvml: 27:00.0

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

##############################################################################
# Fan Drivers
# ===========
#
# Currently, thinkfan supports only one fan, but support for multiple fans is
# in development and will be released soon. For the time being, the examples
# given below are mutually exclusive.
#
fans:
  # hwmon: Full path to a PWM file
  # ==============================
  # Also subject to the potential problem with driver load order (see above)
  - hwmon: /sys/class/hwmon/hwmon0/pwm1

  # hwmon: Path to a complete driver folder
  # =======================================
  - hwmon: /sys/class/graphics/fb0/device/hwmon
    indices: [1] # Use pwm1

  # hwmon: Base path with name-based search
  # =======================================
  - hwmon: /sys/class/hwmon
    name: amdgpu
    indices: [1]

  # tpacpi: Thinkpad-specific fan interface
  # =======================================
  # Currently, this is the only way to use disengaged and automatic mode on
  # thinkpads.
  - tpacpi: /proc/acpi/ibm/fan

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

##############################################################################
# Fan Speeds (simple mode)
# ========================
# 
# In simple mode, each entry is a [FANSPEED, LOWER_LIMIT, UPPER_LIMIT] tuple.
# This is a quick way to configure a small system like a laptop, where the
# temperature ratings for all monitored devices are similar. Only the highest
# temperature found across all sensors will be compared against these limits.
# All other temperatures are ignored.
#
# Correction values on individual sensors (see above) may be used to equalize
# small discrepancies in temperature ratings.
#
# The FANSPEED values in this example are valid for the thinkpad_acpi fan
# driver only (see above)
#
levels:
  - [0, 0, 50]
  - ["level auto", 45, 75]
  - ["level disengaged", 70, 255]

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

##############################################################################
# Fan Speeds (detailed mode)
# ==========================
#
# It is generally advisable to configure the temperature limits for each
# sensor individually.
#
# The speed values used here range from 0 to 255, which is valid for the PWM
# control files used by hwmon-based drivers.
#
# The temperatures specified in upper_limit and lower_limit apply to the
# sensors in the same order in which they were specified in the "sensors:"
# section above, and their length must match the total number of sensors that
# have been configured.
#
levels:
  - speed: 0
    upper_limit: [50, 50, 50]

  - speed: 100
    lower_limit: [45, 45, 45]
    upper_limit: [65, 65, 65]

  - speed: 255
    lower_limit: [60, 60, 60]

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

Thanks for help in advance

ginkel commented 1 year ago

@teleothleo Facing the same issue. How did you solve it?

Edit: Please disregard my comment - installing thinkfan-git solved the issue...