Updated 2026: This workaround was written for Fedora 22, Ubuntu 15.04, and openSUSE Tumbleweed with kernels around 3.9–4.x. The HP 6730b is now over 15 years old and no longer in active use, but the /etc/pm/sleep.d/ hook approach has since been superseded by systemd sleep hooks in /etc/systemd/system/sleep@.service.d/. The principle remains the same: reset cooling device states on resume.

Starting with kernel 3.9, there is a known ACPI bug affecting the HP 6730b that causes fans to spin at full speed after the system resumes from suspend. I reproduced this on Fedora 22, openSUSE Tumbleweed, and Ubuntu 15.04. The only way out without this fix is a full reboot.

The root cause is an ACPI interaction issue on resume. The workaround is a pm-utils sleep hook that briefly flips the state of each cooling device immediately after the system wakes up.

Create /etc/pm/sleep.d/99fancontrol.sh with the following content:

case "$1" in
  hibernate|suspend)
    # Nothing to do on suspend.
    ;;
  thaw|resume)
    # Reset all cooling device states in the background.
    ls /sys/devices/virtual/thermal/cooling_device*/cur_state | while read A; do
      echo 1 > $A
      echo 0 > $A
    done
    ;;
  *)
    exit $NA
    ;;
esac

Then make it executable:

chmod +x /etc/pm/sleep.d/99fancontrol.sh

On resume, the script briefly sets each cooling device to state 1, then back to 0, enough to clear the stuck state and bring the fans back to normal speed.