Re: Applying correct hdparm values after resuming from suspend
Florian Kulzer wrote:
On Sat, Jul 12, 2008 at 09:56:35 +0300, Arthur A wrote:
I'm using Debian Lenny with Laptop-mode tools that I've configured to
manage my laptop's hd, which is controlled by firmware that gives insane
load cycle values. Thus, I've enabled laptop-mode-tools and it currently
applies a setting of 254 (disabled) when running on AC and 128 (enabled
and aggressive pm settings) when running on battery. This works fine on
boot, and when removing or inserting the AC power. However, upon resume a
setting of 128 is applied regardless of the machine's powerstate.
I believe that laptop-mode is being restarted correctly since if I remove
and reinsert the AC cord the correct hdparm settings (254) are applied.
My guess is that something is also being re-initialized upon resume from
suspend that is over-riding laptop-mode-tools. In any event, I thought
that the simplest fix for this would be to add a script to
/etc/pm/sleep.d/01-hdparm-power-check which would do nothing if going to
sleep, and if resuming would check whether the computer was running on
ac, and if so apply hdparm -B 254 /dev/sda
My problem lies in this second part, as I'm not sure how to correctly do
a check, the rest of it I can steal from other scripts included under
This is what I think 01-hdparm-power-check would look like:
I would first check if the "on_ac_power" command works reliably on your
system. If you run
on_ac_power; echo $?
then you should get 0 (true) if you are connected to AC power and 1
(false) if you are running on battery. (See "man on_ac_power"; the "echo
$?" part is necessary to print the exit status.)
If that is OK then your script should work like this:
# Check to see if we are running on AC power, and if so,
# override mystery program overriding laptop-mode.conf
on_ac_power || exit $NA
case "$1" in
hdparm -B 254 /dev/sda
*) exit $NA
It worked great. I've tested it resuming on batteries and on ac, and it works
perfect. pm-util.logs show no problems.
Thanks so much!