Portál AbcLinuxu, 30. dubna 2025 13:54
Čerstvě mi jede k plné spokojenosti swsusp v Ubuntu 6.06. Jak na to:
Na začátek je třeba povolit hibernaci a to v souboru
/etc/default/acpi-support
:
ACPI-HIBERNATE=true
To by mělo stačit pro většinu notebooků - Ubuntu to má dobře ošetřené. Pokud patříte mezy tyto šťastlivce, tak byste možná ocenili možnost uspávat uspávacím tlačítkem. Co bude uspávací tlačítko spouštět řídí obsah souboru
/etc/acpi/events/sleepbtn
. Pokud má provádět hibernaci, měl vypadat takto:
# /etc/acpi/events/sleepbtn
# Called when the user presses the sleep button
event=button[ /]sleep
action=/etc/acpi/hibernate.sh
Problém je, že ten můj notebook mezi ty bezprobémové zrovna nepatří. Zajímavé na tom bylo to, že v GNOME to nefungovalo, zatímco jinde ano. Časem jsem došel k tomu, že za to může gnomí ovládání hlasitosti, které „sedí“ na zvukovce a nedovolí odebrat její moduly.
Je tedy nutné ten applet nějak odstranit a zrovna Dapperu je poměrně snadné to zařídit: existuje adresář /etc/acpi/suspend.d
, ve kterém jsou skripty, které se provedou před vlastní hibernací. Sem je možné dát skript, který onen mixer_applet2
zabije:
$cd /etc/acpi/suspend.d
$ sudo touch 01-mixer_applet2
$ sudo chmod +x 01-mixer_applet2
$ sudo gedit 01-mixer_applet2
Vnitřek skriptu může vypadat takto. Pokud je to moc jednoduché, můžete to natáhnout:
#!/bin/sh
killall mixer_applet2
Po probuzení se applet automaticky znovu načte, takže tento workaround nijak neruší.
Používám dualboot se sdílenou datovou partišnou (ext3). V této situaci je neradno bootovat druhý systém když je ten první hibernovaný. Kdo si to ale má pamatovat, že? Inspiroval jsem se a funguje mi tento postup:
Nepoužívám v GRUBu timeout - potom můžu mít v /boot/grub/menu.lst
zakomentovaný ten nejkratší:
#timeout 0
Rozjet savedefault. K tomu je potřeba přidat ke všem OS v /boot/grub/menu.lst
položku savedefault
Ten druhý systém si vystačí s jedinou položkou v GRUBu na pozici 0. Hibernované jádro je to aktuální na pozici 1
Přidat do /etc/acpi/suspend.d
skript, který nastaví jako výchozí první jádro a odkomentuje timeout:
#!/bin/sh
grub-set-default 1
sed -ie 's/^#timeout/timeout/' /boot/grub/menu.lst
Zrušit ten timeout po probuzení skriptem v /etc/resume.d
:
#!/bin/sh
sed -ie 's/^timeout/#timeout/' /boot/grub/menu.lst
Samozřejmě to lze vylepšit - pokud by někdo ošetřil obecněji ten timeout nebo tam zapracoval zjišťování verze jádra pomocí uname
, tak bych se vůbec nezlobil.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.