lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0703100707320.3807@p34.internal.lan>
Date:	Sat, 10 Mar 2007 07:16:03 -0500 (EST)
From:	Justin Piszcz <jpiszcz@...idpixels.com>
To:	linux-kernel@...r.kernel.org
cc:	debian-user@...ts.debian.org, bytes@...uxgazette.net
Subject: Intel Core Duo/Solo Temperature Monitoring Working On Intel DG965
 Motherboard

DISCLAIMER: This patch is still experimental. 
AUTHOR: Rudolf Marek has written the coretemp module for Intel Core Duo/Solo
processors.

Without this patch, you cannot monitor your CPU temperature, at least not 
on a DG965 motherboard.

From the readme (second patch):

+Kernel driver coretemp
+======================
+
+Supported chips:
+  * All Intel Core family
+    Prefix: 'coretemp'
+    Addresses scanned: CPUID (family 0x6, models 0xe, 0xf)
+    Datasheet: Intel 64 and IA-32 Architectures Software Developer's Manual
+               Volume 3A: System Programming Guide
+
+Author: Rudolf Marek
+Contact: Rudolf Marek <edited_out>

+Description
+-----------
+
+This driver permits reading temperature sensor embedded inside Intel Core CPU.
+Temperature is measured in degrees Celsius and measurement resolution is
+1 degree C. Valid temperatures are from 0 to TjMax degrees C, because
+the actual temperature is in fact a delta from TjMax.
+
+Temperature known as TjMax is the maximum junction temperature of processor.
+Intel defines this temperature as 85C or 100C. At this temperature, protection
+mechanism will perform actions to forcibly cool down the processor. Alarm
+may be raised, if the temperature grows enough (more than TjMax) to trigger
+the Out-Of-Spec bit. Following table summarizes the exported sysfs files:
+
+temp1_input     - Core temperature (in milidegrees of Celsius).
+temp1_crit      - Maximum junction temperature  (in milidegrees of Celsius).
+temp1_crit_alarm - Set when Out-of-spec bit is set, never clears.
+                  Correct CPU operation is no longer guaranteed.
+temp1_label     - Contains string with the "Core X", where X is processor
+                  number.
+
+The TjMax temperature is set to 85C if undocumented model specific register
+(UMSR) 0xee has bit 30 set. If not the TjMax is 100C as documented in processor
+datasheet. Intel will not disclose this information to individuals.

How to get it working:
----------------------------------------------------------------------------
Per: http://www.lm-sensors.org/wiki/Devices

Scroll down to:
Intel  	 Core/Core2 	 yes 	 coretemp 	 	 	 Integrated
sensor in CPU, patch is here.

Here is the post:
http://lists.lm-sensors.org/pipermail/lm-sensors/2007-January/018676.html

Patch1: 
http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20070114/e666982f/attachment-0002.bin

Patch2: 
http://lists.lm-sensors.org/pipermail/lm-sensors/attachments/20070114/e666982f/attachment-0003.bin

Applies clean under 2.6.20.2:
p34:/usr/src/linux-2.6.20.2# patch -p1 < /home/user/attachment-0002.bin
patching file drivers/hwmon/coretemp.c
patching file drivers/hwmon/Kconfig
patching file drivers/hwmon/Makefile
p34:/usr/src/linux-2.6.20.2# patch -p1 < /home/user/attachment-0003.bin
patching file Documentation/hwmon/coretemp
p34:/usr/src/linux-2.6.20.2#

In the Kernel I selected the following two options under:
-> Hardware Monitoring support
    <M> Hardware Monitoring support
    <M> Intel Core (2) Duo/Solo temperature sensor

Then recompile/reboot/etc.

You will need:
http://dl.lm-sensors.org/lm-sensors/releases/lm_sensors-2.10.2.tar.gz

1. You will need to remove or overwrite your old libsensors3 if you have it
installed.
2. You need to make sure you have libsysfs-dev and flex installed to compile
the latest lm_sensors.

Once everything is compiled, load the modules and run sensors:

p34:~# modprobe coretemp
p34:~# lsmod
Module                  Size  Used by
coretemp                5120  0
hwmon                   2372  1 coretemp
p34:~#

root@p34:~/lm_sensors-2.10.2/prog/sensors# ./sensors 
coretemp-isa-0000
Adapter: ISA adapter
temp1:       +40°C  (high =   +85°C) (Core 1/2)

coretemp-isa-0001
Adapter: ISA adapter
temp1:       +39°C  (high =   +85°C) (Core 2/2)

Run 10 bzip2s to test to make sure its working correctly.

root@p34:~/lm_sensors-2.10.2/lib$ ps auxww | grep -v grep | grep -c bzip2
10
root@p34:~/lm_sensors-2.10.2/lib$

Watch temps:

root@p34:~/lm_sensors-2.10.2/prog/sensors# ./sensors 
Adapter: ISA adapter
temp1:       +54°C  (high =   +85°C)
temp1:       +53°C  (high =   +85°C)

( .. a few minutes later .. )

temp1:       +57°C  (high =   +85°C) 
temp1:       +55°C  (high =   +85°C)

( .. a few minutes later .. )

temp1:       +58°C  (high =   +85°C) 
temp1:       +57°C  (high =   +85°C)

( .. a few minutes later .. )

temp1:       +60°C  (high =   +85°C) 
temp1:       +58°C  (high =   +85°C)

( .. a few minutes later .. )

temp1:       +62°C  (high =   +85°C) 
temp1:       +60°C  (high =   +85°C)

root@p34:~/lm_sensors-2.10.2/lib$ killall -9 bzip2

temp1:       +52°C  (high =   +85°C) 
temp1:       +51°C  (high =   +85°C)

( .. a few minutes later .. )

temp1:       +48°C  (high =   +85°C) 
temp1:       +48°C  (high =   +85°C)

Setup:

p34:~# sensors 
coretemp-isa-0000
Adapter: ISA adapter
temp1:       +41°C  (high =   +85°C)

coretemp-isa-0001
Adapter: ISA adapter
temp1:       +39°C  (high =   +85°C)

p34:~#

Commentary:
It will probably be a few weeks until this is incorporated into Linus' 
tree, hopefully it can make it into 2.6.22, then userland support should 
follow over time.

p34:~# mbmon
No Hardware Monitor found!!
InitMBInfo: Success
p34:~#

Justin.


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ