Uspání a hibernace
Tento návod je psán pro notebook, ale měl by analogicky fungovat i pro stolní počítače.
Návod je na smetišti! Znamená to, že je zastaralý, a může být více ke škodě než k užitku. Pokud máte zájem, můžete se ho ujmout a přepsat ho do aktuální platné podoby. |
Existují dvě cesty, jak uspat (sleep, hibernate) váš notebook. Buď použijete přímo implementaci ACPI obsaženou v jádru nebo vylepšíte pomocí „hibernate skriptů“. Druhá varianta se (alespoň na mém notebooku) jeví jako lepší (zcela funkční).
Podmínky
Tento text je psán pro notebook Lenovo R6O a systém Ubuntu 6.10. Nicméně bude funovat i jinde, jen možná budete muset provést drobné změny nastavení.
Nezapomeňte si všechny důležité upravované soubory zálohovat.
Část první - ACPI
Implementace ACPI v distribučním jádru 2.6.17-10-generic není nejlepší, nicméně částečně funkční. I přes maximální snahu nejde vyřešit jeden problém - po probuzení (jen ze suspendu) nefunguje integrovaný Wi-Fi adaptér (wpa_supplicant jej dokola resetuje). Ale to vyřešíme později hibernate skriptem. Nejprve připravíme ACPI.
Otevřete si v textovém editoru soubor /etc/default/acpi-support a upravte následující řádky:
ACPI_SLEEP=true ACPI_HIBERNATE=true ACPI_SLEEP_MODE=standby SAVE_VBE_STATE=true VBESTATE=/var/lib/acpi-support/vbestate POST_VIDEO=true SAVE_VIDEO_PCI_STATE=true USE_DPMS=true # Pokud používáte kartu ATI, pak ještě "RADEON_LIGHT=true" DOUBLE_CONSOLE_SWITCH=true
Zbylé volby nechte ve výchozím stavu.
Dále editujte /etc/X11/xorg.conf a do části „Device“ přidejte volbu Option „VBERestore“ „yes“
POZOR!!! Tato volba způsobí zatuhnutí systému, pokud používáte Separate Heads konfiguraci a VBERestore zapnete v „Device“ sekcích, které přísluší Separate Heads. Při takové konfiguraci nelze v Separate Heads módu počítač uspávat. Nyní editujte ještě /boot/grub/menu.lst a přidejte do příslušné řádky „kernel“ tyto parametry: - „resume=/dev/vas_swapovaci_soubor“ a zkontrolujte, že váš swap má alespoň dvojnásobek velikosti operační paměti. - Doporučuje se přidat volbu ec_intr=0, ale suspend na některých systémech funguje i bez toho. Nyní restartujte počítač a zkuste, zda ACPI sleep/hibernate pracuje. POZOR! Gnome-power-manager nemusí nutně volat ACPI! Nejlépe ACPI otestujete, pokud pracují tlačítka sleep/hibernate, a nebo ručním spuštěním příslušného skriptu z /etc/acpi. ===== Část druhá - hibernate skript ===== Pokud používáte Ubuntu, stačí pouze stahnout skripty hibernate: apt-get install hibernate Nyní upravíme hlavní skript /etc/hibernate/common.conf: <code> SaveClock restore-only IbmAcpi yes # Pokud se jedná o notebook IBM # Pokud používáte Xorg driver „915“ (vysoké rozlišení u IBM notebooků), pak ještě „Runi915resolution yes“ LockGnomeScreenSaver yes UnloadBlacklistedModules yes # Budeme potřebovat pro síťovou kartu LoadModules auto # … a pak zase zpětně načíst. DownInterfaces eth0 eth1 # Bez toho zas nejede drátová síť UpInterfaces auto # … a zase nahodit. PauseAudio yes EjectCards yes RestartServices laptop-mode EnableVbetool yes # Jinak se nevrátí obraz :) RestoreVbeStateFrom /var/lib/vbetool/vbestate VbetoolPost yes RestoreVCSAData yes SwitchToTextMode yes # Velmi důležité pro rozsvícení obrazovky. XStatus gnome </code>Pak ještě zajistíme korektní probuzení síťové karty. Přidejte do /etc/hibernate/blacklisted-modules řádky: <code> tg3 # Napište modul své síťové karty (u mne tg3). speedstep-centrino </code>Vše ostatní je připraveno. Nyní tedy začneme testovat. Otevřete konzoli a zadejte: sudo /usr/sbin/hibernate -F /etc/hibernate/ram.conf --dry-run Počítač se neuspí (dry-run volba), ale projeví se případné chyby v konfiguračním souboru. Když vše proběhne v pořádku, spusťte příkaz bez volby –dry-run. Počítač by se měl uspat a následně probudit (pravděpodobně stitkem tlačítka napájení). Hibernaci spustíte příkazem: sudo /usr/sbin/hibernate -F /etc/hibernate/disk.conf Opět lze pro testování použít –dry-run. Až bude konfigurace funkční, je potřeba přiřadit skripty k ACPI tlačítkům. Nejjednodušší je editovat soubory /etc/acpi/events/ibm-sleepbtn a ibm-hibernatebtn (pokud máte jiný notebook, hledejte odpovídající soubory). Stačí pouze přepsat řádku action na action=/usr/sbin/hibernate -F /etc/hibernate/ram.conf (disk.conf pro hibernate tlačítko). Po restartu počítače jej lze uspat/hibernovat pomocí ACPI tlačítek. Bohužel stále nemusí fungovat uspání přes gnome-power-manager. Tento způsob uspání je u mne 100% funkční. Uspání přes gnome-power-manager se budu věnovat později, až vyřeším všechny problémy.