The following is the GNU All-permissive License as recommended in https://www.gnu.org/licenses/license-recommendations.en.html

Copyright (C) 2024 Free Software Foundation sysadmin@fsf.org

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. This file is offered as-is, without any warranty.

Contributions are welcome. See https://savannah.gnu.org/maintenance/fsf/.

Fan control

To manually disable/enable the fan, you can use the kernel interface at /proc/acpi/ibm/fan

That file contains the current status of the fan, like: --- status: enabled speed: 2852 level: auto commands: level ( is 0-7, auto, disengaged, full-speed) commands: enable, disable commands: watchdog ( is 0 (off), 1-120 (seconds)) ---

You can send commands to it this way:

# echo disable > /proc/acpi/ibm/fan
# echo enable > /proc/acpi/ibm/fan
# echo level 3 > /proc/acpi/ibm/fan
# echo level auto > /proc/acpi/ibm/fan

Be aware that disabling the fan could make the computer crash by overheating. Also, the changes done by those commands are not permanent, if you reboot or suspend the fan will go back to its default settings (enabled).

Temperature sensors

http://www.thinkwiki.org/wiki/Thermal_Sensors#ThinkPad_X60

# cat /proc/acpi/ibm/thermal
Index     Location      Sensor*      Idle**    Idle***       Comments
1         CPU           CPU (0x78)   62 C      39 C
3         Card?         Crd (0x7A)   --        --
2         ??            APS (0x97)   43 C      46 C
4         GPU           GPU (0x7B)   59 C      39 C
5         Battery       No5 (0x7c)                            Disappears when battery removed
7         Battery       Bat (0x7E)                            Disappears when battery removed
9         ??            Bus (0xC0)   44 C      41 C
10        ??            PCI (0xC1)   50 C      35 C
11        ??            Pwr (0xC2)   --        --

Unused/-known sensor numbers:
6         --            Value N/A
8         --            Value N/A
12-16     --            Value N/A

*    Sensor names taken from "TPFanControl V0.62 by troubadix" for Windows
**   Idle values when running under TPFanControl's "Smart" mode; fan never engages if the machine just sits idle
***  Mostly idle values when running in Linux Mint with the machine's firmware-based fan control

CPU freq control

The x60 cpu comes back from suspend running at full speed, a script is needed to fix this. That command should be put in /etc/pm/sleep.d/ as 10_cpufreq or similar name, with execution permissions. Content should look like:

#!/bin/bash
case "$1" in
suspend)
echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
;;
esac

You can also make it run on boot time by adding this to /etc/rc.local : sh /etc/pm/sleep.d/10_cpufreq suspend

Other power saving commands:


# disable wake-on-lan on the ethernet
ethtool -s eth0 wol d

# enable powersave on the sound card
echo 1 > /sys/module//snd_hda_intel/parameters/power_save

# enable powersaving on sata devices
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy
echo min_power > /sys/class/scsi_host/host1/link_power_management_policy
echo min_power > /sys/class/scsi_host/host2/link_power_management_policy
echo min_power > /sys/class/scsi_host/host3/link_power_management_policy

# enable powersaving on pci devices
for file in $(find /sys/devices/pci* -wholename *power/control); do
  echo auto > $file
done