# Temperature/Hardware Monitor for 2.6.* kernels

## JetAce44

Hey guys...

Been looking around for a good temperature monitor like MBM5 on windows. Looks like nothing has full support for a 2.6 kernel. I dont absolutely need one, but it would be nice because I know my system runs hot, especially when at a full load doing F@H. 

Any suggestions?

Running dev-sources-2.6.1 kernel with KDE 3.2

Thanks guys.

----------

## jetblack

Is your system ACPI compliant? You can get some temperature monitoring via ACPI if it is.

----------

## JetAce44

Yessir, it is ACPI compliant. I even compiled my kernel with the CPU temperature support enabled. How can I set this up?

----------

## ozonator

I don't know about ACPI for temperature monitoring, but lm_sensors is the thing for monitoring motherboard sensors, as far as I know.  With 2.6, the separate lm_sensors package is no longer needed for the sensor kernel modules:  the modules it provided are now included in the 2.6 kernel; the config is  under device drivers -> character devices -> i2c).  And, here's why some programs that monitor sensor output don't work with 2.6:  sensor readings are now in sysfs, not proc.

Recent versions of gkrellm (I'm running 2.1.24) support the sensor readings provided by the sensor modules in 2.6.  I've had no problem at all using gkrellm to monitor temperatures and fan speeds running 2.6 on my own machine.  If you have the right modules for your system loaded (likely the same as you'd use with lm_sensors, so check its docs if you need help), gkrellm should find the readings, and all you have to do is fiddle with the appropriate settings (factor, offset) in gkrellm's config.

----------

## albright

> Yessir, it is ACPI compliant. I even compiled my kernel with the CPU > temperature support enabled. How can I set this up?

You don't have to do anything; in a console type acpi -t

and you should get back your temps.

If you're looking for a monitoring app, I suggest the acpi

plugin for gkrellm ...

----------

## JetAce44

 *albright wrote:*   

> > Yessir, it is ACPI compliant. I even compiled my kernel with the CPU > temperature support enabled. How can I set this up?
> 
> You don't have to do anything; in a console type acpi -t
> 
> and you should get back your temps.
> ...

 

Hrm... when I do that, this happens:

```

bash-2.05b# acpi -t

No support for device type: thermal

```

I know I even added support directly into the kernel for temperature support. Should it be compiled as a module?

/Edit:

Just emerged + installed gkrellm and the acpi plugin. The acpi plugin only gives me battery time, which I dont really need. Under the sensors section, I can see the options, but cant change any of the factors offsets or locations. WTF is going on?

----------

## r3pek

i'm having the same problem. i have acpi_thermal compiled IN the kernel and acpi -t gives me nothing  :Sad: 

anyone found a solution for this?

(lm_sensors with I2C report everything but temp's)

----------

## albright

if acpi_thermal is compiled in but there is no reading

then I guess your system is not fully acpi compliant  :Sad: 

I've heard that acpi can be tweaked by fiddlling with

the dsdt file ... maybe a search on that would help but

I suspect it is far from easy

----------

## ozonator

 *JetAce44 wrote:*   

> merged + installed gkrellm and the acpi plugin. The acpi plugin only gives me battery time, which I dont really need. Under the sensors section, I can see the options, but cant change any of the factors offsets or locations. WTF is going on?

 

The sensors section of gkrellm requires that you have the correct kernel modules installed and loaded for whatever temperature sensor chip(s) you may have on your motherboard.  These are not ACPI-related, but the lm_sensors modules in the i2c section of the kernel config.  Do you have the right modules compiled and loaded?  (You can still use the /etc/init.d/lm_sensors script to find and load the right ones, even with 2.6.)  There are many different sensor chips; have you found the right one for your motherboard?

In my case, I remember fiddling with this when I last installed (around when 2.4.20 was current), eventually figuring out (google, sensors-detect) which modules I needed to get lm_sensors to work; since then, it's been the same ones with every kernel, 2.4 or 2.6.  I have tried using ACPI a couple of times (most recently with 2.6.1), but even though my board (Asus A7V266-C) is ACPI-compliant, I couldn't get ACPI to show any sensor data at all.  My hunch is that ACPI had more development for laptops, where power management is much more critical; on a desktop, lm_sensors should be more mature.  So, I've stuck with lm_sensors, which gives me two temperature readings (CPU and motherboard) and three fan readings (CPU, PSU, and case).  Again, finding the right modules seems to be the key.

----------

## RemcoNL

I've just compiled ACPI into my 2.6.2-kernel, including this:

```
[*] ACPI Support

[-]   Sleep States (EXPERIMENTAL) *** REMOVED after reading the "help"

<*>   AC Adapter

<*>   Battery

<*>   Button

<*>   Fan

<*>   Processor

<*>     Thermal Zone
```

(no modules, everything's in the kernel), and it works fine. I can `cat` files from /proc/acpi/ , and after `emerge acpi` I can do `acpi -t`, which works fine.

Good luck  :Smile: 

----------

## JetAce44

Ok, did some tweaking and emerging last night after posting, and was able to get some of the thermal/fan/voltage readings with gkrellm. For some reason, I never compiled I2C support into my kernel. After doing that, I was able to get some of the correct readings with gkrellm. My only problem is that it doesnt get the temperature of one of my processors right... not sure how to fix that one. Luckily it's the temperature of my cooler processor.

Onto my next question. Is there any way to install lm_sensors without emerging I2C (because I have a 2.6.1 kernel)? I was thinking about trying out the lm_sensors plugin for gkrellm, but I have no idea how to just install lm_sensors without I2C.

Thanks for all the help guys. 

One more question, as I think of it:

Would APM support that I compiled into my kernel be causing me trouble?

----------

## ozonator

 *JetAce44 wrote:*   

> Onto my next question. Is there any way to install lm_sensors without emerging I2C (because I have a 2.6.1 kernel)? I was thinking about trying out the lm_sensors plugin for gkrellm, but I have no idea how to just install lm_sensors without I2C.

 

You'll need a version of lm_sensors that is up-to-date enough to recognize that it's being installed with a 2.6 kernel.  See the lm_sensors kernel 2.6 info page for details, but the good news is that there are (masked) ebuilds for sufficiently recent versions (2.8.4 seems to be the latest right now), including with the i2c dependency dropped, and with only the sensors utilities (not the modules) being merged if a 2.6 kernel is detected.  So, if you try, make sure you try the latest masked version, not the latest unmasked one, which isn't 2.6-aware.

 *JetAce44 wrote:*   

> One more question, as I think of it:
> 
> Would APM support that I compiled into my kernel be causing me trouble?

 

Shouldn't cause problems, but if both APM and ACPI are supported by your kernel, only one will work at a time; if I remember correctly, whatever loads first at boot time will handle power management (can't remember offhand which one does).  If you want to be sure you're using acpi without recompiling, put "apm=off" in your boot-time kernel arguments.

----------

## JetAce44

 *ozonator wrote:*   

> 
> 
> You'll need a version of lm_sensors that is up-to-date enough to recognize that it's being installed with a 2.6 kernel.  See the lm_sensors kernel 2.6 info page for details, but the good news is that there are (masked) ebuilds for sufficiently recent versions (2.8.4 seems to be the latest right now), including with the i2c dependency dropped, and with only the sensors utilities (not the modules) being merged if a 2.6 kernel is detected.  So, if you try, make sure you try the latest masked version, not the latest unmasked one, which isn't 2.6-aware.
> 
> 

 

Heh, I didnt even think to check in the lm-sensors portage dir. Silly me. Anyway, off to go configure everything, yet again!

Thanks for the help.

----------

## apberzerk

Hi... i am running the 2.6 kernels and want to get temperature sensors working.  I have an AMD Athlon XP 2600+ on a kx7-333 motherboard (via kt333 chipset).

lspci gives me, among other things, the following information:

0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8366/A/7 [Apollo KT266/A/333]

0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8366/A/7 [Apollo KT266/A/333 AGP]

0000:00:11.0 ISA bridge: VIA Technologies, Inc. VT8233A ISA Bridge

0000:00:11.1 IDE interface: VIA Technologies, Inc. VT82C586/B/686A/B PIPC Bus Master IDE (rev 06)

Now according to what I've read, if I have VT8233A then I need the i2c-viapro module (and the adm1021?), but if I have VT82C586/686A then I need the i2c-via and i2c-isa modules.  So which is it?

I have tried many combinations of the above modules, but acpi -t always tells me "No support for device type: thermal" and gkrellm can't find any sensors.

Any help is much appreciated, thanks!

----------

## ozonator

 *apberzerk wrote:*   

> Hi... i am running the 2.6 kernels and want to get temperature sensors working.  I have an AMD Athlon XP 2600+ on a kx7-333 motherboard (via kt333 chipset).
> 
> lspci gives me, among other things, the following information:
> 
> 0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8366/A/7 [Apollo KT266/A/333]
> ...

 

I have a slightly older chipset and board than yours, but with very similar output from lspci.  Sensors are working for me in 2.6; I use the /etc/init.d/lm_sensors startup script to load the modules, which reads /etc/conf.d/lm_sensors; in that configuration file, I have:

```
MODULE_0=i2c-viapro

MODULE_1=w83781d

```

The first module depends on i2c_core, the second on i2c_sensor, so in the end, the lm_sensors init script results in four modules being loaded.

The key one there, I think, is the w83781d.  The i2c-viapro is the driver for our specific i2c bus, but the w83781d is a driver for the sensor chip itself (actually, a driver for several different Winbond sensor chips), so that's what's going to give you the readings (temp, fan, etc.).  It's possible that your board has the same sensor chip as mine, but I don't know for sure.

How did I find which chip I had?  By running the sensors-detect script that comes with lm_sensors, way back around 2.4.20; I haven't tried lm_sensors since I installed 2.6, since gkrellm is enough for me.  The latest (still masked) versions now support the new 2.6 kernel way of doing things; if it turns out you don't have the same sensor as I do, try emerging the latest one, and try running the sensors-detect script.  Or, try to find detailed specs on your motherboard; comparing your motherboard specs with the list on the 'supported devices' section of the lm_sensors web pages might also help identify what you've got.

----------

## Gentree

Hi apberzerk,

Did you get your sensors up. I did have them working with ACPI build into 2.4.2 kernel (or at least I got a temp from acpi -t) .In this state gkrellm did not diplay anything with the plugin.

I have rebuilt with ACPI  as modules 'cos this seems to be needed for anticiapated 2.6 I want.

BTW , have you played with your KX7-333.

I have the same board with an athlonXP th'bred and it overclocks like hell.

I am currently showing a clickspeed of 2.33 GHz !! and it is stable at 52 C even during a big emerge. (Good solid copper heatsink Cooler Master)

FYI I have managed to get the FSB to run at 188 but rolled back to 186 for gen use.

This chip is supposed to clock at 1.67Ghz. Incredible what you can do with a good AMD!!

Did all my testing under win98 with MBM5 , I am hoping to get the sensors sorted out so I can keep an eye on Linux temps.

----------

## ozonator

 *Gentree wrote:*   

> I have rebuilt with ACPI  as modules 'cos this seems to be needed for anticiapated 2.6 I want.

 

One note, since I didn't make it clear in my last post:  the kernel modules for the sensors on many desktop motherboards aren't the ACPI modules, and in fact, you don't need ACPI support at all to get sensor readins.  What you likely need is under Device drivers -> I2C -- enable i2c support, and the right modules for both the bus and and chip appropriate for your board.  ACPI is nifty, and definitely useful on laptops, but on my desktop, aside from powering my machine down nicely when I shut down, I didn't get any useful temperature or sensor information.  This may vary by board, but although the KX7-333 is newer than mine, my guess would be that the situation isn't that different.

----------

## MasterX

How do I know if my system is ACPI compliant. 

I have APCI compiled in the kernel, because I thought that I need it to shut down the system. I am not using for any other reason. But, I am getting some hard disk related errors, and I read in a topic, that I should check whether I am getting those errors without ACPI support.

So, back to my question:

What do I need to do to find if my system is ACPI compliant?

Thank you

----------

## Gentree

I run 2.4.2-r7 on my KX7-333

I find the i2c stuff in make menuconfig as follows:

Character device

I2C support

here I select 

<M> I2C support

<*>  I2C mainboard interfaces

<M> VIA technologies ................

<M> proc interface

<M> dev interface

All this compiled in , rebooted.

I set the MODULE lines you suggested in /etc/conf.d/lm_sensors

Try /etc/init.d/lm_sensors start

Loading i2c-proc....

Loading i2c-viapro

Loading i2c-w83781d

Fine so far.

acpi -t 

No support for device type battery

No support for device type temperatue

(Note I was getting temp info earlier when not compiles as modules to the hardware is there)

sensors-detect

No i2c devices files found. Use prog/mkdev/mkdev.sh to create them.

I dont have a mkdev and I think I am missing a step ,

You say you used sensor-detect un 2.4 , can you see what I am missing.

I think I need to load a module , but what and how?

Thx

----------

## Gentree

PS 

I have i2c_core but not i2c sensor , does that help?

Thx

----------

## ozonator

 *Gentree wrote:*   

> I run 2.4.2-r7 on my KX7-333

 

Um, you mean 2.4.22-r7, right?

In any case, here's one thought:  with 2.4 kernels, to get the sensor modules, you'll need to re-emerge lm-sensors (and i2c) anytime you re-compile your kernel.  (Make sure /usr/src/linux points to the source of your currently-running kernel.)  The i2c ebuild provides more up-to-date i2c modules than included with 2.4; the lm-sensors ebuild provides the sensor modules themselves.  (Both are now included, in their up-to-date versions, with the 2.6 kernels.)  Did you re-emerge after rebooting with the new kernel?

The last gentoo-sources-2.4.x I used was 2.4.20-r9; in case it helps, here's the i2c part of my kernel config:

```
# I2C support

#

CONFIG_I2C=m

CONFIG_I2C_ALGOBIT=m

# CONFIG_I2C_PHILIPSPAR is not set

# CONFIG_I2C_ELV is not set

# CONFIG_I2C_VELLEMAN is not set

# CONFIG_I2C_PPORT is not set

CONFIG_I2C_ALGOPCF=m

# CONFIG_I2C_ELEKTOR is not set

# CONFIG_I2C_PCFEPP is not set

CONFIG_I2C_CHARDEV=m

CONFIG_I2C_PROC=m
```

 *Gentree wrote:*   

> All this compiled in , rebooted.
> 
> I set the MODULE lines you suggested in /etc/conf.d/lm_sensors
> 
> Try /etc/init.d/lm_sensors start
> ...

 

Again, acpi is not what's going to get the sensor output.  It's lm-sensors, particularly, the "sensors" command.

One thing, don't know if it makes a difference:  the module I load for my sensor chip is just w83781d, not i2c-w83781d.  After the modules load, check with lsmod and make sure they're actually loaded.

 *Gentree wrote:*   

> sensors-detect
> 
> No i2c devices files found. Use prog/mkdev/mkdev.sh to create them.

 

Don't know what to suggest there, except to say, re-emerge i2c and lm-sensors, and give it another try.

----------

## ozonator

 *Gentree wrote:*   

> I have i2c_core but not i2c sensor , does that help?

 

I think i2c-sensor is something new in 2.6 (what I'm running now); I don't remember seeing it with 2.4.  So, likely nothing to worry about.

----------

## Gentree

I added i2c-dev to /etc/conf.d/lm_sensors

This enabled sensor-detect to do its job.

It set me up w83781d as you indicated for your board , added i2c-isa and took out i2c-dev

These all load at boot time.

I build acpi support back into kernel as a second check and acpi -t now returns the temp again.

Hwvr, sensors still says "No sensors found!" an gkrellm shows nothing.

Well that's cost me a day's work , and still nothing concrete. I give up!

Thanks a lot for your input.

----------

## Gentree

It seems it should be sufficient to modularise i2c in kernel config to negate re-emergeing every time.

Hwvr, emerge lm-sensors is failing with 2.4.22-r7  so it looks like I shall have to make do with acpi until I move to 2.6 .

Thx again. Gentree

----------

