Hello. I have a problem with my fan that I haven't been able to solve since I bought this computer 6 months ago. I haven't been able to use Linux fully because the computer gets too hot until it turns off automatically, because the fan is not working properly: it stays in the same speed and I haven't been able to speed it up or down.
My computer is a Toshiba Satellite L305D-SP6805R, which is a system model PSLC8U-02JRL1, with an AMD Athlon X2 64 bits processor. I installed ArchLinux 64 bits, which includes the kernel 2.6.33-ARCH.
From my experience, navigating through a lot of forums for 6 months, this is what I have learned:
0. The most important thing: UPGRADE the Insyde BIOS to version 1.80. Before the update, I couldn't even install any Linux distro, because the fan had a very slow speed and the computer would turn off before even reaching the GRUB installation menu.
1. I need the k10temp because my CPU is part of the 11h family.
2. Kernels >= 2.6.33 include the k10temp module already. For older versions, the module has to be compiled and modprobe to be used.
3. The only Linux distribution that manages the fan correctly (as it does in Windows) is Ubuntu 10.04. By the time I installed it (when it was still beta) it had a kernel < 2.6.33 (I think it was 2.6.32 or 2.6.31) it obviously did not have the k10temp module included in the kernel, so I had to compile it myself and load it (i followed this tutorial: http://swiss.ubuntuforums.org/showthread.php?p=8406822). Unfortunately, I could only make it work 100% by turning off the ACPI in GRUB, by adding at the end of the kernel entry in /etc/default/grub the text "acpi=off" (without quotes). The fan worked perfectly (previously running sensors-detect and rebooting), as it does with windows, speeding up or down depending on the CPU use. The problem is that without ACPI I don't have multimedia keys, no volume control from hardware, no recognition of the battery or AC power, etc. Way too many problems.
4. With ArchLinux, I've managed to make the fan "work" by (--don't laugh--) waiting 15 seconds in the GRUB menu until the fan turns on and then selecting Arch. I guess GRUB is still managed by the BIOS directly, because the fan speeds up or down either on the BIOS menu or in GRUB menu without trouble. When I enter Arch, the fan stays at the same speed, and never goes down.
I haven't been able to:
1. Tweak the fan speed control. I tried to follow this guide http://wiki.archlinux.org/index.php/Fan_Speed_Control but all the files are different to the guide. I tried to speed up the fan with $ echo "255" > /sys/class/hwmon/hwmon0/device/pwm1
but that directory doesn't exist in my laptop.
2. Make toshutils work. I tried to find a guide to compile the kernel with the Toshiba options on, but everything is too dark and badly documented.
3. Traspose what I did in Ubuntu to ArchLinux.
4. Make the k10temp module show the same temperature as the acpitz-virtual-0 module that comes by default with acpi. I have been wondering if it is possible to substitute the acpitz module with the k10temp.
5. Find any solved forum post about this topic. A lot of people have this same problem, but nobody has been able to find an answer.
I'm no Linux guru, but I know pretty enough about Linux administration. This thing is giving me a headache. I hope someone can help me.
My specs (I'm pasting all I can, if something else is needed, please tell me):
$ lspci 00:00.0 Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge 00:01.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (int gfx) 00:04.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 0) 00:05.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 1) 00:06.0 PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 2) 00:11.0 SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [IDE mode] 00:12.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller 00:12.1 USB Controller: ATI Technologies Inc SB700 USB OHCI1 Controller 00:12.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller 00:13.0 USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller 00:13.1 USB Controller: ATI Technologies Inc SB700 USB OHCI1 Controller 00:13.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller 00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 3a) 00:14.1 IDE interface: ATI Technologies Inc SB700/SB800 IDE Controller 00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA) 00:14.3 ISA bridge: ATI Technologies Inc SB700/SB800 LPC host controller 00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge 00:18.0 Host bridge: Advanced Micro Devices [AMD] Mobile K10 [Turion X2, Athlon X2, Sempron] HyperTransport Configuration (rev 40) 00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 11h [Turion X2, Athlon X2, Sempron] Address Map 00:18.2 Host bridge: Advanced Micro Devices [AMD] Mobile K10 [Turion X2, Athlon X2, Sempron] DRAM Controller 00:18.3 Host bridge: Advanced Micro Devices [AMD] Mobile K10 [Turion X2, Athlon X2, Sempron] Miscellaneous Control 00:18.4 Host bridge: Advanced Micro Devices [AMD] Mobile K10 [Turion X2, Athlon X2, Sempron] Link Control 01:05.0 VGA compatible controller: ATI Technologies Inc RS780MC [Radeon HD 3100 Graphics] 04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 02) 05:00.0 Ethernet controller: Atheros Communications Inc. AR5001 Wireless Network Adapter (rev 01)
$ uname -a Linux myhost 2.6.33-ARCH #1 SMP PREEMPT Sun May 2 10:40:03 CEST 2010 x86_64 AMD Athlon(tm) X2 Dual-Core QL-62 AuthenticAMD GNU/Linux $ dmidecode -s bios-version 1.80 $ dmidecode -s bios-vendor Insyde Corp.
$ sensors acpitz-virtual-0 Adapter: Virtual device temp1: +81.0°C (crit = +105.0°C) k10temp-pci-00c3 Adapter: PCI adapter temp1: +85.1°C (high = +70.0°C)
Last edited by fu_faiter (2010-05-13 21:37:21)
I have almost the same laptop as yourself, with the same BIOS but v 1.50. You can, and probably should, read my wiki entry here:
http://wiki.archlinux.org/index.php/Tos … llite_L300
It is a known fact that those versions of Toshibas and their BIOS'es do not play too well with Linux, especially as to their fan speeds and function keys. Everything else works great. You cannot control the fan speed from the /proc or /sys file directories with those laptops - there is no ACPI control seen by the kernel for it.
I believe you should add the "acpi_osi="Linux"" boot parameter to your /boot/grub/menu.lst kernel boot line. That will make your fan perform properly, but your function keys may not work afterwards. I suggest a fix for that in the wiki. Also, the fan speed control is buggered if you suspend or hibernate. See the wiki. Good luck.
Last edited by lagagnon (2010-05-14 02:00:10)
Philosophy is looking for a black cat in a dark room. Metaphysics is looking for a black cat in a dark room that isn't there. Religion is looking for a black cat in a dark room that isn't there and shouting "I found it!". Science is looking for a black cat in a dark room with a flashlight.
Hello lagagnon, thanks a lot for answering so quickly.
I read your wiki entry. Unfortunately, I have a completely different problem than the one you had. As I have the BIOS version 1.80, I think the problem got worse, or maybe because it is a different model the problem is not the same.
The fan just doesn't work. It stays at the same speed and won't speed up or down, ever. If I watch a Youtube video or a movie in VLC, or simply start making heavy stuff that requires a lot of CPU load, the temperature rises up very quickly, until it reaches 100ºC and just shuts down automatically.
I give up. I simply can't be dealing all this time with my fan problem. But I have good news:
I installed openSuse 11.2, installed all the updates and, guess what? The fan and the processor are managed even better than in Windows. In W7, the temperature stays on 70ºC on average, with the fan speeding up and down to keep that temperature almost constant. In openSuse, the temperature won't go upper than 50ºC, that's incredible. Hibernation and suspension work faster than in Windows, with no problems, no errors. I'm really happy right now.
I hope someone has the time and motivation to verify why is the fan perfectly managed in openSuse and applies the required fixes on ArchLinux.
With the openSuSE running, have you tried looking into /proc and /sys if there are any extra directories or files? It might be some kernel module or a patch which is not included in the vanilla (and thus Arch) kernel... I have a very similar problem which I've been trying to solve for some time now...
Hey MadCat_X, thanks for the interest. I have bad news:
I connected my iPod and started copying my music to Rhythmbox. The processor started working so much that the temperature started rising way too fast, When I realized, it was on 99ºC and before I could cancel the music transfer, the computer shut down itself. Such a shame, not even openSUSE could make the fan work correctly.
Now I'm going to compile the k10temp module to see if it works (openSUSE 11.2 has the 184.108.40.206-0.2-desktop kernel, so the module doesn't come there by default).
I'll keep posting if I find some answers. I hope someone can help me too.
I've been digging through dmesg and found a line that looks interesting
ACPI: resource 0000:00:1f.3 [io 0x1c00-0x1c1f] conflicts with ACPI region SMBI [io 0x1c00-0x1c0f disabled]
You wouldn't happen to find something similar in your dmesg output, would you?
As ur cpu is amd I guess u have a cool n quiet option in the bios, it is responsible for controlling the cpu frequency and the fan speed according to the system load. If you are not bothered about ur fan/cpu running at full speed all the time(and hence consuming the battery a lot) you could disable the cool n quiet option from the bios and it will cause the fan to run in full speed all the time. Good luck!