Thermal Sensors
This page aims to summarize known information about the locations and properties of thermal sensors on ThinkPad laptops. |
Accessing the sensors
ACPI system temperature sensors
The primary means of accessing the thermal sensors is through the ibm-acpi module, which provides up to 11 thermal sensors (some of which may be inactive) when loaded with the experimental=1 option. Up to eight thermal sensors are exposed at /proc/acpi/ibm/thermal:
# cat /proc/acpi/ibm/thermal
temperatures: 44 41 33 42 33 -128 30 -128
On some models there are three additional sensors at Embedded Controller offsets 0xC0 to 0xC2, which can be read by parsing /proc/acpi/ibm/ecdump:
# perl -ne 'm/^EC 0xc0: .(..) .(..) .(..) / or next; print hex($1)." ".hex($2)." ".hex($3)."\n"' < /proc/acpi/ibm/ecdump
40 48 43
HDAPS temperature sensor
The Active Protection System accelerometer also reports a temperature (but it is not certain that the sensor location is inside the HDAPS chip):
# cat /sys/bus/platform/drivers/hdaps/hdaps/temp1
41
Harddisks temperature sensor
Finally, the hard disk temperature can be read through the disk's SMART interface:
# smartctl -A /dev/hda
194 Temperature_Celsius 0x0022 145 097 000 Old_age Always - 31
Or, for SATA-equipped models running a recent Linux kernel (see Problems with SATA and Linux):
# smartctl -A -d ata /dev/sda
194 Temperature_Celsius 0x0022 145 097 000 Old_age Always - 31
Sensor locations
This information is model specific.
ThinkPad R51
The ibm-acpi documentation includes the report by Thomas Gruber:
EC offset Index in "thermal" Location (estimated) 0x78 1 CPU 0x79 2 Mini-PCI 0x7A 3 HDD 0x7B 4 GPU 0x7C 5 Battery (main) 0x7D 6 Battery (device bay) 0x7E 7 Battery (main) 0x7F 8 Battery (device bay) 0xC0 none ? 0xC1 none ? 0xC2 none ?
ThinkPad T40
The location of one of the sensors is identified here.
EC offset Index in "thermal" Location (estimated) 0x78 1 CPU 0x79 2 System board under rear left corner of Mini-PCI module 0x7A 3 ? 0x7B 4 GPU 0x7C 5 Battery 0x7D 6 n/a 0x7E 7 Battery 0x7F 8 n/a 0xC0 none n/a 0xC1 none n/a 0xC2 none n/a
ThinkPad T43, T43p
Found by Shmidoax using cooling spray to cool down components and observe the effect on the sensors.
EC offset Index in "thermal" Location (estimated) 0x78 1 CPU 0x79 2 Between PCMCIA slot and CPU (same as HDAPS module) 0x7A 3 PCMCIA slot 0x7B 4 GPU 0x7C 5 Battery (front left) 0x7D 6 n/a 0x7E 7 Battery (rear right) 0x7F 8 n/a 0xC0 none Bus between Northbridge and DRAM 0xC1 none Southbridge (under Mini-PCI card, under touchpad) 0xC2 none Power circuitry, on underside of system board under F2 key
Photos (click to see full size) |
ThinkPad T60
Found by Marco Kraus for use in IBMDok.
EC offset Index in "thermal" Location (estimated) 0x78 1 CPU 0 0x79 2 HDD 0x7A 3 HDD 0x7B 4 GPU 0x7C 5 Battery 0x7D 6 n/a 0x7E 7 Battery 0x7F 8 n/a 0xC0 none ? 0xC1 none ? 0xC2 none ?
The CPU thermal sensors seem to be exposed in both /proc/acpi/thermal_zone/THM0/temperature and /proc/acpi/thermal_zone/THM1/temperature, though the latter curiously seems to exist only in this file and nowhere in /proc/acpi/ibm/ecdump.