Pokud autor článku používá pro správu napájení pm-utils, dají se problémy s nefunkčním HW po probuzení řešit automatizovaně. V "/usr/lib/pm-utils/defaults" stačí odkomentovat pole SUSPEND_MODULES a dopsat tam moduly, které je nutné odstranit a znovu zavést.
Vypozoroval jsem, že některé mechanismy pro šetření energie jsou v defaultu vypnuté - nejspíš proto, že s některým HW to dělá psí kusy. S pm-utils používám následující triky:
1) Povolit powersaving na SATA:
v "/usr/lib/pm-utils/power.d/sata_alpm" nastavit
"SATA_ALPM_ENABLE=${SATA_ALPM_ENABLE:-true}"
(výchozí je false)
2) "Globálně" povolit runtime powermanagement:
V "/etc/udev/rules.d" vytvořit např "10-runtime-pm.rules" s následujícím obsahem:
SUBSYSTEM!="pci", GOTO="power_runtime_rules_end" ACTION!="add", GOTO="power_runtime_rules_end" KERNEL=="????:??:??.?" PROGRAM="/bin/sleep 0.1" ATTR{power/control}=="*", ATTR{power/control}="auto" LABEL="power_runtime_rules_end"
3) Startovat jádro s parametrem "pcie_aspm=force" a při běhu na baterii přepnout PCIE do úsporného režimu, s pm-utils lze použít následující skript (umístit třeba do "/usr/lib/pm-utils/power.d")
#!/bin/sh aspm="/sys/module/pcie_aspm/parameters/policy" [ -w "$aspm" ] || exit $NA case $1 in true) echo powersave > "$aspm";; false) echo performance > "$aspm";; *) exit $NA;; esac exit 0
S některým HW nemusí některá z těchto funkcí pracovat korektně, ale tam, kde to funguje to pomůže docela dost - klidně i o 20 %. Zejména runtime PM se mi zatím osvědčil jako dost účinný.