I recently bought a Toshiba Satellite L300 - 1AQ, which has an ICH9 chipset. For this laptop Toshiba have switched BIOS to Insyde H2O; I have the latest version, which is 1.60. It looks as though the kernel's Toshiba Laptop extras (under power management) are not working (properly) for this chipset / BIOS combination because of the following symptoms: After booting Linux with a cold CPU, the fan runs at minimum speed. The fan only spins up to maximum speed when the critical CPU temperature is reached; there a now in-between spin states before the critical trigger kicks in. Once the CPU is cold again (finger and listening test), the fan keeps spinning at maximum and the only way to get it spin down again is to reboot Linux. I had the laptop collected by Toshiba and they replaced the motherboard; same symptoms with the original and the new board. I also tried these Linux boot options to no effect: acpi=rsdt acpi.power_nocheck=1 acpi_osi=!Linux acpi_osi=!Windows 2001 acpi_osi=!Windows 2001 SP1 acpi_osi=!Windows 2001 SP2
please attach the acpidump output using the latest pmtools at: http://www.lesswatts.org/projects/acpi/utilities.php
please attach the full dmesg output after boot.
Created attachment 21130 [details] dmesg
Created attachment 21131 [details] .config
Created attachment 21132 [details] lspci-vv
Created attachment 21133 [details] acpidump
Please see attachments as requested. Just in case, I also include .config and lspci -vv Also, this line in the original message "there a now in-between spin states ..." should read: "there are no in-between spin states ..."
I can confirm this bug on my recently purchased Toshiba Satellite L300-218. It has the same chipset and BIOS. I also noticed that ACPI doesn't seem to report the correct temperature: [root@WarPig]# cat /proc/acpi/thermal_zone/THRM/temperature temperature: 0 C And the trip-points seem strange as well: [root@WarPig]# cat /proc/acpi/thermal_zone/THRM/trip_points critical (S5): 106 C passive: 106 C: tc1=2 tc2=5 tsp=300 devices=CPU0 CPU1 active[0]: 70 C: devices= FAN
I get the same output, except for the "critical (S5)" value, which in my case is 92. I am not sure if this significant for our problem because I am not 100% sure whether the kernel actually tries to switch the fan speed on the basis of these figures.
(In reply to comment #0) > > After booting Linux with a cold CPU, the fan runs at minimum speed. The fan > only spins up to maximum speed when the critical CPU temperature is reached; > there a now in-between spin states before the critical trigger kicks in. Once > the CPU is cold again (finger and listening test), the fan keeps spinning at > maximum and the only way to get it spin down again is to reboot Linux. > please attach the output of "grep . /proc/acpi/thermal_zone/*/*" with the spinning fan and cold CPU.
Created attachment 21150 [details] customized DSDT Thoralf, please set CONFIG_ACPI_DEBUG, apply this customized DSDT, rebuild your kernel and boot with acpi.debug_level=0x0f, please attach the dmesg output when the system is running with a spinning fan and a cold cpu.
ping Thoralf.
Sorry, I was traveling without the chance to make the tests. Back as requested shortly.
Rui, how do I apply DSDT.hex? Do I simply cd /usr/src/linux cp /path/to/DSDT.hex drivers/acpi/ make ? Thanks.
sorry, here is a how to on using customized DSDT, :) http://www.lesswatts.org/projects/acpi/overridingDSDT.php
Rui, please see as requested. I have created two files, a dmesg with full output, and a dmesg with ACPI alone. Hope this helps, Thoralf
Created attachment 21259 [details] dmesg_ACPI_only
Created attachment 21260 [details] dmesg_all
sorry, you need to add this boot option as well, acpi.debug_layer=0xffffffff
Created attachment 21275 [details] dmesg_2
Please see new dmesg as requested.
did you get the dmesg output when the system is running with a spinning fan and a cold cpu? As the symptom is that fan is spinning while cpu is cool, so please get the following info when system is in this state, 1. attach the output of "grep . /proc/acpi/thermal_zone/*/*". 2. After step 1 is done, attach the dmesg output.
I did step 2 with fan spinning and cold CPU, but not step 1. Will be back shortly.
please also add the boot option "log_buf_len=16777216"
I have done the following to create the attached dmesg_3. 1) added this to lilo.conf: append="acpi.debug_level=0x0f acpi.debug_layer=0xffffffff log_buf_len=16777216" 2) reboot with cold CPU 3) as normal user: 'grep . /proc/acpi/thermal_zone/*/*' and 'dmesg >> dmesg_3' However, yesterday I realised that I have explained the first half of the problem incorrectly; apologies for the confusion. When the CPU is cold and I turn the computer on, the CPU fan briefly comes on but before the boot loader screen appears, the BIOS switches the CPU fan OFF; the Linux boot process keeps the fan OFF as well. I only realised this yesterday when I looked at the underside of the laptop, from where I can see the CPU fan (what I had mistaken for a slow spinning CPU fan is actually the fan on the graphics chip). Again, sorry for the confusion. The second half of the problem remains unchanged: when the critical CPU temperature is reached, the CPU fan starts spinning at max and the only way to get it spin down again is to reboot. At this point, the fan spins down to a minimum speed (presumably the BIOS decides that the CPU is not completely cold). Then, after the reboot, the spin speed remains unchanged until the critical temperature is reached once again. Hope this helps rather than confuses.
Created attachment 21326 [details] dmesg_3
Apologies, dmesg_3 is of cause NOT what we want. Please see two dmesg_4, one with cold CPU and fan OFF, as well as one with cold CPU and fan at minimum.
Created attachment 21410 [details] dmesg_4_fan=min
Created attachment 21411 [details] dmesg_4_fan=off
this is a duplicate of bug #13278 *** This bug has been marked as a duplicate of bug 13278 ***
blech, this BIOS has dummy ACPI fan device that always claims to be on, and requests to turn it on and off do nothing. PowerResource (FN00, 0x00, 0x0000) { Method (_STA, 0, Serialized) { Return (One) } Method (_ON, 0, Serialized) { } Method (_OFF, 0, Serialized) { } } Device (FAN) { Name (_HID, EisaId ("PNP0C0B")) Name (_UID, Zero) Name (_PR0, Package (0x01) { FN00 }) } ... Name (_AL0, Package (0x01) { FAN })