fan status/control incorrect and out of sync after returning from hibernate
Linux - Laptop and NetbookHaving a problem installing or configuring Linux on your laptop? Need help running Linux on your netbook? This forum is for you. This forum is for any topics relating to Linux and either traditional laptops or netbooks (such as the Asus EEE PC, Everex CloudBook or MSI Wind).
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Distribution: Debian /Jessie/Stretch/Sid, Linux Mint DE
Posts: 5,195
Rep:
fan status/control incorrect and out of sync after returning from hibernate
Hello all,
I have installed swsuspend2 on my HP Compaq NC6000. Hibernating and resuming as such is succesful. However, after resuming, my fan status and control is totally out of sync.
The fan retains the speed it happens to have at resume time, but when issuing the acpi -V
command, the fan status might be completely different. E.g.
/home# acpi -V
_ _ _Battery 1: charged, 100%
_ _ _Thermal 1: active[3], 43.0 degrees C
_ _ _Thermal 2: ok, 51.0 degrees C
_ _ _Thermal 3: ok, 28.0 degrees C
_ _ _AC Adapter 1: on-line
This would make you expect that the fan runs at the lowest speed. Not true, it
can run at any speed.
Now whatever happens, the fan status does not change anymore, and the actual
speed does not change. The actual speed usually is not in sync with the
status.
When I reboot the computer, everything is normal again, until I go thru a
hibernate cycle. Normal means that the temperature cycles up and down a bit
and the fan is switched on at the required speed.
It even happened once that as soon as I plugged in AC power, the fan would
stop, and as soon as I pulled the AC plug, the fan status would jump to
active[2]. In that case, the fan speed was in sync with the status. Although
the starting and stopping of the fan was reproducible, after a reboot I was
not able to reproduce the behavior.
The temperatures are correct as far as I can tell.
I assume that some hardware registers have a certain status after power-up,
but the software has a different status, hence the loss of sync. Since the
software is not going thru re-initialization, the hardware and software never
get in sync again.
I have tried to unload and reload the acpi, fan and thermal modules, and to
restart the acpid daemon, but to no avail. I also tried to echo some value
("0" or "off") into /proc/acpi/fan/C207/state, but that had no effect either.
Has anyone seen this before, and do you perhaps know a workaround on this? Since I can solve the problem by rebooting (not necessarily power cycling) I assume/hope that it is something that can be software controlled.
Installation:
HP Compaq NC6000
Debian Sarge
Kernel 2.6.8.1, from kernel.org compiled without initrd
Suspend2 2.1.7.2 for 2.6.8.1
When you say you have tried unloading the acpi modules, was that after the hibernate? In the hibernate.conf you can unload modules before the machine goes into hibernation and then load them again after it comes out. Have a good look at the config file for it and try it if you havent already. I have a few that I have to unload before it goes into hibernation otherwise they play up when it resumes. (acpi isnt any of them, but different computer too) Good luck
Distribution: Debian /Jessie/Stretch/Sid, Linux Mint DE
Posts: 5,195
Original Poster
Rep:
Unfortunately, when I unload acpi before suspending, the computer does not shut down, but immediately reboots. That was what I more or less expected, but now it is confirmed.
What I tried next was to unload thermal, fan, ac and battery before hibernate, and loaded them back at resume. Your idea to unload these module before suspending was good anyway!
What happens then is:
The indication of fan speed is correct now, eg. if the fan runs low speed that acpi -V actually shows "active[3]" That is as it should be.
However, the fan trip points are not active anymore.
When I run on battery, the fan always runs low speed, regardless of temperature.
When I run on AC, the fan is always stopped, regardless of temperature.
The battery indicator in the panel also gives the wrong indication, it shows always "on battery" regardless whether the AC adapter is plugged in. acpi -V always shows running on ac.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.