# Why my Laptop is getting hot, with a normal CPU usage?



## vaclinux (Jun 12, 2009)

Dear guys,
I have problem with my fan speed, seems it is working at max  n quite non-stop.
I have google around to have a software that can monitor fan speed or CPU temperature. there are some option, but all of them failed to be used(for me,).

```
mbmon
```
Error Output:

```
No Hardware Monitor found!!
InitMBInfo: Unknown error: 0
```


```
healtd
```
Output:

```
************************
* Hardware Information *
************************
Unknown Vendor: ID = FFFF
************************
Temp.= 255.0,  0.0,  0.0; Rot.=    0,    0,    0
 Vcore = 4.08, 4.08; Volt. = 4.08, 6.85, 15.50, -14.16, -6.12
```


```
lmmon -i
```
Output:

```
Motherboard Temp               Voltages

 255C / 491F / 528K        Vcore1:   +3.984V
                           Vcore2:   +3.984V
    Fan Speeds             + 3.3V:   +3.984V
                           + 5.0V:   +6.654V
    1:    0 rpm            +12.0V:  +15.938V
    2:    0 rpm            -12.0V:  -15.938V
    3:    0 rpm            - 5.0V:   -6.654V
```
But seems this software doesnt give me idea, why fan run so fast,?
I have monitored my CPU usage, and it is just okay(normal usage,0-10% usage).
Any idea on this?,
I am just installed Gnome, seems this problem occur after that, any relation with that?
here following some detail of my freebsd configuration.

```
$ cat /etc/rc.conf

# -- sysinstall generated deltas -- # Sat Jun  6 00:56:55 2009
# Created: Sat Jun  6 00:56:55 2009
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.

# PC information
keymap="us.iso"

# Run daemon
inetd_enable="YES"

# Network Environment
ifconfig_re0=DHCP
nfs_client_enable="YES"
sshd_enable="YES"
hostname="ykt.void"

# GNOME environment(gdm,had)
gnome_enable="YES"

# Hardware efficient
powerd_enable="YES"
powerd_flags="-i 85 -r 60 -p 100"
```


```
$sysctl -a | grep acpi

debug.acpi.semaphore_debug: 0
debug.acpi.suspend_bounce: 0
debug.acpi.do_powerstate: 1
debug.acpi.acpi_ca_version: 20070320
debug.acpi.ec.timeout: 750
debug.acpi.ec.polled: 0
debug.acpi.ec.burst: 0
debug.acpi.batt.batt_sleep_ms: 0
hw.acpi.supported_sleep_state: S3 S4 S5
hw.acpi.power_button_state: S5
hw.acpi.sleep_button_state: S3
hw.acpi.lid_switch_state: NONE
hw.acpi.standby_state: S1
hw.acpi.suspend_state: S3
hw.acpi.sleep_delay: 1
hw.acpi.s4bios: 0
hw.acpi.verbose: 0
hw.acpi.disable_on_reboot: 0
hw.acpi.handle_reboot: 0
hw.acpi.acline: 1
hw.acpi.battery.life: -1
hw.acpi.battery.time: -1
hw.acpi.battery.state: 7
hw.acpi.battery.units: 1
hw.acpi.battery.info_expire: 5
hw.acpi.thermal.min_runtime: 0
hw.acpi.thermal.polling_rate: 10
hw.acpi.thermal.user_override: 0
hw.acpi.thermal.tz0.temperature: 72.0C
hw.acpi.thermal.tz0.active: -1
hw.acpi.thermal.tz0.passive_cooling: 1
hw.acpi.thermal.tz0.thermal_flags: 0
hw.acpi.thermal.tz0._PSV: 74.0C
hw.acpi.thermal.tz0._HOT: -1
hw.acpi.thermal.tz0._CRT: 97.0C
hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
hw.acpi.thermal.tz0._TC1: 2
hw.acpi.thermal.tz0._TC2: 3
hw.acpi.thermal.tz0._TSP: 40
hw.acpi.cpu.cx_lowest: C1
machdep.acpi_timer_freq: 3579545
machdep.acpi_root: 1018480
dev.acpi.0.%desc: PTLTD   RSDT
dev.acpi.0.%driver: acpi
dev.acpi.0.%parent: nexus0
dev.acpi_sysresource.0.%desc: System Resource
dev.acpi_sysresource.0.%driver: acpi_sysresource
dev.acpi_sysresource.0.%location: handle=\_SB_.PCI0.MEMR
dev.acpi_sysresource.0.%pnpinfo: _HID=PNP0C02 _UID=0
dev.acpi_sysresource.0.%parent: acpi0
dev.acpi_sysresource.1.%desc: System Resource
dev.acpi_sysresource.1.%driver: acpi_sysresource
dev.acpi_sysresource.1.%location: handle=\_SB_.PCI0.LPC0.SYSR
dev.acpi_sysresource.1.%pnpinfo: _HID=PNP0C02 _UID=0
dev.acpi_sysresource.1.%parent: acpi0
dev.acpi_sysresource.2.%desc: System Resource
dev.acpi_sysresource.2.%driver: acpi_sysresource
dev.acpi_sysresource.2.%location: handle=\_SB_.PCI0.LPC0.MEM_
dev.acpi_sysresource.2.%pnpinfo: _HID=PNP0C01 _UID=0
dev.acpi_sysresource.2.%parent: acpi0
dev.acpi_timer.0.%desc: 32-bit timer at 3.579545MHz
dev.acpi_timer.0.%driver: acpi_timer
dev.acpi_timer.0.%location: unknown
dev.acpi_timer.0.%pnpinfo: unknown
dev.acpi_timer.0.%parent: acpi0
dev.acpi_ec.0.%desc: Embedded Controller: GPE 0x14
dev.acpi_ec.0.%driver: acpi_ec
dev.acpi_ec.0.%location: handle=\_SB_.PCI0.LPC0.EC0_
dev.acpi_ec.0.%pnpinfo: _HID=PNP0C09 _UID=0
dev.acpi_ec.0.%parent: acpi0
dev.pci_link.0.%parent: acpi0
dev.pci_link.1.%parent: acpi0
dev.pci_link.2.%parent: acpi0
dev.pci_link.3.%parent: acpi0
dev.pci_link.4.%parent: acpi0
dev.pci_link.5.%parent: acpi0
dev.pci_link.6.%parent: acpi0
dev.pci_link.7.%parent: acpi0
dev.pci_link.8.%parent: acpi0
dev.acpi_button.0.%desc: Power Button
dev.acpi_button.0.%driver: acpi_button
dev.acpi_button.0.%location: handle=\_SB_.PWRB
dev.acpi_button.0.%pnpinfo: _HID=PNP0C0C _UID=0
dev.acpi_button.0.%parent: acpi0
dev.acpi_button.1.%desc: Sleep Button
dev.acpi_button.1.%driver: acpi_button
dev.acpi_button.1.%location: handle=\_SB_.SLPB
dev.acpi_button.1.%pnpinfo: _HID=PNP0C0E _UID=0
dev.acpi_button.1.%parent: acpi0
dev.acpi_button.1.wake: 1
dev.pcib.0.%parent: acpi0
dev.acpi_lid.0.%desc: Control Method Lid Switch
dev.acpi_lid.0.%driver: acpi_lid
dev.acpi_lid.0.%location: handle=\_SB_.LID_
dev.acpi_lid.0.%pnpinfo: _HID=PNP0C0D _UID=0
dev.acpi_lid.0.%parent: acpi0
dev.acpi_lid.0.wake: 1
dev.acpi_acad.0.%desc: AC Adapter
dev.acpi_acad.0.%driver: acpi_acad
dev.acpi_acad.0.%location: handle=\_SB_.ACAD
dev.acpi_acad.0.%pnpinfo: _HID=ACPI0003 _UID=0
dev.acpi_acad.0.%parent: acpi0
dev.battery.0.%parent: acpi0
dev.acpi_tz.0.%desc: Thermal Zone
dev.acpi_tz.0.%driver: acpi_tz
dev.acpi_tz.0.%location: handle=\_TZ_.THRM
dev.acpi_tz.0.%pnpinfo: _HID=none _UID=0
dev.acpi_tz.0.%parent: acpi0
dev.atdma.0.%parent: acpi0
dev.fpupnp.0.%parent: acpi0
dev.attimer.0.%parent: acpi0
dev.attimer.1.%parent: acpi0
dev.atkbdc.0.%parent: acpi0
dev.psmcpnp.0.%parent: acpi0
dev.cpu.0.%parent: acpi0
dev.cpu.1.%parent: acpi0
dev.acpi_perf.0.%driver: acpi_perf
dev.acpi_perf.0.%parent: cpu0
dev.acpi_perf.1.%driver: acpi_perf
dev.acpi_perf.1.%parent: cpu1
dev.acpi_throttle.0.%desc: ACPI CPU Throttling
dev.acpi_throttle.0.%driver: acpi_throttle
dev.acpi_throttle.0.%parent: cpu0
dev.acpi_throttle.0.freq_settings: 10000/-1 8750/-1 7500/-1 6250/-1 5000/-1 3750/-1 2500/-1 1250/-1
```
Thanks


----------



## SirDice (Jun 12, 2009)

What mainboard do you have (chipsets)?

Try kldloading smbus(4) and iicbus(4).

Then try to run mbmon with the -A switch.


----------



## vaclinux (Jun 16, 2009)

> What mainboard do you have (chipsets)?


Base Board Information
	Manufacturer: BenQ
	Product Name: Joybook T31
	Version: Rev 1.0
	Serial Number: None
Processor Information
	Socket Designation: Socket M2/S1G1
	Type: Central Processor
	Family: Opteron
	Manufacturer: AMD


> Try kldloading smbus(4) and iicbus(4).


yes, it loaded

```
kldstat
```
Id Refs Address            Size     Name
 1   14 0xffffffff80100000 bd23e0   kernel
 2    1 0xffffffff80cd3000 230e8    snd_hda.ko
 3    3 0xffffffff80cf7000 67470    sound.ko
 4    1 0xffffffff80e22000 5b070    radeon.ko
 5    1 0xffffffff80e7e000 1161f    drm.ko
 6    1 0xffffffff80e90000 bb0a     ext2fs.ko
 7    1 0xffffffff80e9c000 1962     snd_ad1816.ko
 8    1 0xffffffff80e9e000 1edc     ichsmb.ko
 9    1 0xffffffff80ea0000 878      smbus.ko
10    1 0xffffffff80ea1000 1262     iicbus.ko


> Then try to run mbmon with the -A switch.


And it produces error, 
InitMBInfo: Unknown error: 0
This program needs "setuid root"!!
I have with root privileged,
and i have change the file permission of mbmon,

```
sudo chmod +s `which mbmon`
```
,*suggestion found in Google.
,
Now i just relied on a simple command,

```
sysctl -a hw.acpi.thermal.tz0.temperature
```
What do u think the realiable of the output, by using this command? I got 74-75 C, with this cpu usage
CPU:  1.1% user,  0.0% nice,  6.4% system,  0.2% interrupt, 92.3% idle.
Any idea how to investigate why my laptop are getting too hot(for me 75 C is too hot, just a normal usage).

Thanks for the responds.


----------



## ale (Jun 16, 2009)

As it seems you have and AMD, try _kldload k8temp_ (amdtemp on STABLE/CURRENT).


----------



## vaclinux (Jun 17, 2009)

> As it seems you have and AMD, try kldload k8temp (amdtemp on STABLE/CURRENT).


Yes, I am using AMD Turion 64x2,
I have added the module _'k8temp'_, seems it has same error.

How good accuration of this command(below) ? 

```
sysctl -a hw.acpi.thermal.tz0.temperature
```

Again Does it normal to have temperature 73-75 C ?
Thanks.


----------



## SirDice (Jun 17, 2009)

vaclinux said:
			
		

> How good accuration of this command(below) ?
> 
> ```
> sysctl -a hw.acpi.thermal.tz0.temperature
> ...


It does look somewhat high..


```
root@molly:~#sysctl -a hw.acpi.thermal.tz0.temperature
hw.acpi.thermal.tz0.temperature: 40.0C
```


----------



## vaclinux (Jun 17, 2009)

Any idea what make it happen to be hot like that?
Thanks


----------



## foo_daemon (Jun 22, 2009)

Read some of the suggestions here and see if they help.  

In particular, I highly recommend that you try this in /etc/rc.conf:

```
powerd_enable="YES"
powerd_flags="-a adaptive -b adaptive"
```

I seem to remember reading (a few years ago, mind you) AMD releasing a statement that temperatures at or above 64C were known to cause damage to their processors.  Hopefully they have toughened this threshold since laptops tend to heat up _alot_, but I think 73-75 (if accurate) is far too high.

Edit: I would also suggest a notebook cooler.  Zalman makes a very good one for pretty cheap.


----------



## Carpetsmoker (Jun 22, 2009)

A somewhat common problem is that the heat outlet for the CPU fan gets blocked by dust, this is something you might want to check out.

I'm not familiar with BenQ notebooks, so I can't offer you any specific advice, but usually you can reach the fan pretty easy by either removing a plate on the underside or by removing the keyboard ... But for some notebooks this can be a bit more difficult.


----------



## vaclinux (Jun 23, 2009)

> Read some of the suggestions here and see if they help.
> 
> In particular, I highly recommend that you try this in /etc/rc.conf:
> Code:
> ...


I think i have read that thread, i am using different flags for powerd(first suggestion in the thread),

```
> cat /etc/rc.conf

# -- sysinstall generated deltas -- # Sat Jun  6 00:56:55 2009
# Created: Sat Jun  6 00:56:55 2009
# Enable network daemons for user convenience.
# Please make all changes to this file, not to /etc/defaults/rc.conf.
# This file now contains just the overrides from /etc/defaults/rc.conf.

# PC information
keymap="us.iso"

# Run daemon
inetd_enable="YES"

# Network Environment
ifconfig_re0=DHCP
nfs_client_enable="YES"
sshd_enable="YES"
hostname="ykt.void"

# GNOME environment(gdm,had)
gnome_enable="YES"

# Hardware efficient
powerd_enable="YES"
powerd_flags="-i 85 -r 60 -p 100"

# Others
linux_enable=YES
```
Will try other option later,



> A somewhat common problem is that the heat outlet for the CPU fan gets blocked by dust, this is something you might want to check out.


Yes, it could be the problem, i nvr check my fan since i bought almost 3 years ago,
Btw, does it sound possible to vacuum the fan, using a vacuum cleaner? do you think it is just fine for the laptop.


----------



## vermaden (Jun 23, 2009)

Here you will find patch that will allow one to set also maximum frequency that you want to use with powerd:
http://forums.freebsd.org/showthread.php?t=172


----------



## vaclinux (Jun 23, 2009)

Thank for the respond.


> Here you will find patch that will allow one to set also maximum frequency that you want to use with powerd:
> http://forums.freebsd.org/showthread.php?t=172



yes, i will rebuild my kernel and set to the max frequency,but now now, later on.

When i checked my sysctl config in detail, i have some question regarding my current setting. i found that:
- I just only have one CPU state:

```
sysctl -a | grep cx_supported
dev.cpu.0.cx_supported: C1/0
dev.cpu.1.cx_supported: C1/0
```
- Only shows one CPU frequency, (I am using dual core), it should have other info for other core(correct me if am wrong):

```
sysctl -a dev.cpu | grep .freq
dev.cpu.0.freq: 1600
dev.cpu.0.freq_levels: 1600/100000 1400/87500 1200/75000 
1000/62500 800/27690 700/24228 600/20767
```

Is something wrong with that?

Thanks.
Here some-info about my 'sysctl -a | grep cpu'


----------



## vermaden (Jun 23, 2009)

> - I just only have one CPU state:
> 
> ```
> sysctl -a | grep cx_supported
> ...


So set C1 as deepest state the CPU can get into, C0 is running state, while C1 is first step to slow/cool down a CPU.



> - Only shows one CPU frequency, (I am using dual core), it should have other info for other core(correct me if am wrong):
> 
> ```
> sysctl -a dev.cpu | grep .freq
> ...


You current CPU frequency is 1600 [dev.cpu.0.freq] while tou have 7 other freqs available to set [dev.cpu.0.freq_levels], currently on most CPUs (most dual cores for sure) you set freqency for both cores (not very optimal, but works).



> Here some-info about my 'sysctl -a | grep cpu'


I have checked it, but I havent found any other things you can do with you CPU to save more power, but this thread may help you to lower overall power usage:
http://lists.freebsd.org/pipermail/freebsd-current/2009-May/006436.html


----------



## Carpetsmoker (Jun 23, 2009)

> > A somewhat common problem is that the heat outlet for the CPU fan gets blocked by dust, this is something you might want to check out.
> 
> 
> 
> ...



I don't think a vacuum cleaner has enough power, but you can try I guess ...


----------



## vaclinux (Jun 23, 2009)

> I have checked it, but I havent found any other things you can do with you CPU to save more power, but this thread may help you to lower overall power usage:


Do you think with my current configuration of power usage, 
it could lead to be high temp (70-75 C) ?, because now i am still blind why it can be that high?

But i will try to do some stuff, like previous suggestion:
- Clean up the fan (Just use vacuum or Disassembling laptop)
- set max frequency of processor.

will give update later.
Thanks for the respond.


----------



## knotabot (Jun 26, 2009)

> ACPI is a fundamentally new way of discovering devices, managing power usage, and providing standardized access to various hardware previously managed by the BIOS. Progress is being made toward ACPI working on all systems, but bugs in some motherboards' ACPI Machine Language (AML) bytecode, incompleteness in FreeBSD's kernel subsystems, and bugs in the IntelÂ® ACPI-CA interpreter continue to appear.





> Often, you can resolve these problems by updating your BIOS to the latest revision. Most console messages are harmless but if you have other problems like battery status not working, they are a good place to start looking for problems in the AML. The bytecode, known as AML, is compiled from a source language called ASL. The AML is found in the table known as the DSDT. To get a copy of your ASL, use acpidump(8). You should use both the -t (show contents of the fixed tables) and -d (disassemble AML to ASL) options. See the Submitting Debugging Information section for an example syntax.
> 
> The simplest first check you can do is to recompile your ASL to check for errors. Warnings can usually be ignored but errors are bugs that will usually prevent ACPI from working correctly.





> Other Problems
> 
> If you have other problems with ACPI (working with a docking station, devices not detected, etc.), please email a description to the mailing list as well; however, some of these issues may be related to unfinished parts of the ACPI subsystem so they might take a while to be implemented. Please be patient and prepared to test patches we may send you.


http://www.freebsd.org/doc/en/books/handbook/acpi-debug.html

If I am not mistaken, all of the info about ACPI is extracted from ram.
If the Hardware is having issues or the ACPI kernel module is buggy there is not much you can do unless you can debug and help write patches.

ACPI loads before the BIOS P.O.S.T.
Only ACPI kernel module can reprogram ACPI controler.
Only access to ACPI kernel module is via ACPI Driver.
All is designed to be hidden (Specification word "transparent") from OS. 
ACPI designed by MS, Intel and Toshiba during a time when MS was actively trying to destroy the competition.

ACPI Diagram of HW Interaction
The red items are the ACPI HW components.
ACPI controllers are made by Winbond, SMSC and others.

Are you using the latest BIOS version for your Joybook?

Some reference:
ACPI Specification
http://articles.techrepublic.com.com/5100-10878_11-1056082.html


----------

