All Intel Core family
CPUID: family 0x6, models
0xe (Pentium M DC), 0xf (Core 2 DC 65nm),
0x16 (Core 2 SC 65nm), 0x17 (Penryn 45nm),
0x1a (Nehalem), 0x1c (Atom), 0x1e (Lynnfield),
0x26 (Tunnel Creek Atom), 0x27 (Medfield Atom),
0x36 (Cedar Trail Atom)
Intel 64 and IA-32 Architectures Software Developer’s ManualVolume 3A: System Programming Guide
Author: Rudolf Marek
Core Temp is also motherboard-agnostic, i.e. It will work on virtually any build and any type of CPU. The software is easy to use, has an intuitive user interface, and offers a high level of expandability and customization, as it uses data taken from the DTS of each processing core. . @cpucoreid: The CPU Core from which temperature values should be read. This value is passed as 'id' field to rdmsr/wrmsr functions. @statusreg: One of IA32THERMSTATUS or IA32PACKAGETHERMSTATUS. 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 value of temperature register is in fact a delta from TjMax. Temperature known as TjMax is the maximum junction temperature of processor, which depends on the CPU model. The CPU (or processor) is the brain of your computer, so it’s vital that it runs nice and smoothly. Under duress, the CPU temperature can start getting hot, at which point your PC may start slowing down, crashing and – over the long term – the CPU may die. AMD processors report the temperature via a special register in the CPU's northbridge. Core Temp reads the value from the register and uses a formula provided by AMD to calculate the current temperature. The formula for the Athlon 64 series, early Opterons and Semprons (K8 architecture) is: 'Core Temp = Value - 49'.
This driver permits reading the DTS (Digital Temperature Sensor) embeddedinside Intel CPUs. This driver can read both the per-core and per-packagetemperature using the appropriate sensors. The per-package sensor is new;as of now, it is present only in the SandyBridge platform. The driver willshow the temperature of all cores inside a package under a single devicedirectory inside hwmon.
Temperature is measured in degrees Celsius and measurement resolution is1 degree C. Valid temperatures are from 0 to TjMax degrees C, becausethe actual value of temperature register is in fact a delta from TjMax.
Temperature known as TjMax is the maximum junction temperature of processor,which depends on the CPU model. See table below. At this temperature, protectionmechanism will perform actions to forcibly cool down the processor. Alarmmay be raised, if the temperature grows enough (more than TjMax) to triggerthe Out-Of-Spec bit. Following table summarizes the exported sysfs files:
All Sysfs entries are named with their core_id (represented here by ‘X’).
Core temperature (in millidegrees Celsius).
All cooling devices should be turned on (on Core2).
Maximum junction temperature (in millidegrees Celsius).
Set when Out-of-spec bit is set, never clears.Correct CPU operation is no longer guaranteed.
Contains string “Core X”, where X is processornumber. For Package temp, this will be “Physical id Y”,where Y is the package number.
On CPU models which support it, TjMax is read from a model-specific register.On other models, it is set to an arbitrary value based on weak heuristics.If these heuristics don’t work for you, you can pass the correct TjMax valueas a module parameter (tjmax).
Appendix A. Known TjMax lists (TBD):Some information comes from ark.intel.com
Core i5/i7 Processorsi7 3920XM, 3820QM, 3720QM, 3667U, 3520Mi5 3427U, 3360M/3320Mi7 3770/3770Ki5 3570/3570K, 3550, 3470/3450i7 3770Si5 3570S/3550S, 3475S/3470S/3450Si7 3770Ti5 3570Ti5 3470T
Core i3/i5/i7 Processorsi7 2600i7 660UM/640/620, 640LM/620, 620M, 610Ei5 540UM/520/430, 540M/520/450/430i3 330E, 370M/350/330i3 330UM
9810510590 rPGA, 105 BGA105
Core i7 Extreme Processors980X
Xeon Processors 5400 Quad-CoreX5492, X5482, X5472, X5470, X5460, X5450E5472, E5462, E5450/40/30/20/10/05L5408L5430, L5420, L5410
Xeon Processors 5200 Dual-CoreX5282, X5272, X5270, X5260E5240E5205, E5220L5240L5238, L5215
Atom ProcessorsD525/510/425/410K525/510/425/410Z670/650Z560/550/540/530P/530/520PT/520/515/510PT/510PZ510/500N570/550N475/470/455/450N280/270330/230E680/660/640/620E680T/660T/640T/620TE665C/645CE665CT/645CTCE4170/4150/4110CE4200 seriesCE5300 series
Core2 ProcessorsSolo ULV SU3500/3300T9900/9800/9600/9550/9500/9400/9300/8300/8100T6670/6500/6400T6600SU9600/9400/9300SP9600/9400SL9600/9400/9380/9300P9700/9600/9500/8800/8700/8600/8400/7570P7550/7450
Core2 Quad ProcessorsQ9100/9000
Core2 Extreme ProcessorsX9100/9000QX9300
Core i3/i5/i7 Processorsi7 940XM/920i7 840QM/820/740/720
Core2 Duo ProcessorsSolo U2200, U2100U7700/7600/7500T7800/7700/7600/7500/7400/7300/7250/7200/7100T5870/5670/5600/5550/5500/5470/5450/5300/5270T5250T5800/5750/5200L7700/7500/7400/7300/7200
Core2 Extreme ProcessorsX7900/7800
Core Duo ProcessorsU2500/2400T2700/2600/2450/2400/2350/2300E/2300/2250/2050L2500/2400/2300
Core Solo ProcessorsU1500/1400/1300T1400/1350/1300/1250
Xeon Processors 5000 Quad-CoreX5000E5000L5000L5318
Xeon Processors 5000 Dual-Core5080, 5063, 5060, 5050, 50305160, 5150, 5148, 5140, 5130, 5120, 5110L5138
This page is meant to describe how to compile the Coretemp patches to get the Core 2 Duo CPU temperature sensors work under edgy and probably other ubuntu versions (mainly with lm-sensors). These patches were written by Rudolf Marek; you may view his post
First, let me say that any comments will be welcome. It's after all quite easy to get this to compile on the edgy 2.6.17 kernel :
Start by installing required dev packages :
Create a woking directory :
Then: download the modified coretemp file OR download the 1st attachement when following the link given above and extract from the patch the coretemp.c file (this may not be easy) or apply the patch to some kernel source...
If you downloaded the modified coretemp.c file, skip to the makefile, otherwise, you'll have to prevent some code compilation, because it seems that some optionnal kernel functions are not present in the 2.6.17 kernel that were available when the patch was developped (but disabling those is very easy) : on line 41, just after the << #define DRVNAME >>, add this line :
(I personally don't need 'CPU hotplug'... do you ??)
OK. So now, it's time to create the makefile and compile the kernel module (copy/paste the whole selection):
This should compile without errors... hopefully
If you do get errors, try using this instead:
Core Temp Cpu I7
Now it's time for a warning :BACKUP all your data and close any running application !Reason for this warning : inserting a standard module in the kernel is OK, but here we're going to insert a custom and non official module : this could at best crash your running kernel, but it could mess everything on your computer...
Now that you're warned, it's time to test the module :
If this works, then use your favorite lm-sensors and run 'sensors' : you'll see your CPU temperatures appear
If you want to permanently install this module for this kernel, copy it into the kernel modules :
(I'm not sure about the ldconfig)
And add in /etc/modules if it's not already there :
... and that's it !
Coretemp Cpu Monitor
CoreTemp (last edited 2008-08-06 16:39:16 by localhost)