Portál AbcLinuxu, 2. května 2025 05:08

Slackware, suspend to RAM a suspend to disk s vanilla jádrem

16.4.2006 00:16 | Přečteno: 1826× | Slackware

Tak jsem se dnes opět trochu rýpal v jádře a snažil jsem se rozběhat suspend to disk. Uspání do paměti už mi funguje přes týden a tak to tu plácnu pěkně pohromadě. Pro začátek jen pár poznámek, potřebujeme PC které má ACPI, suspend nefunguje se SMP kernelem.

O co jde? (Motivace)

Suspend to RAM znamená (jak asi většina z vás tuší) uspáni, kdy data zůstávají v paměti. Vypne se pouze disk, procesor se přepne do režimu spánku... prostě se šetří šťáva.

Suspend to disk je už o poznání užitečnější, jen si představte systém nastartovaný k použití za pouhých 30 vteřin :). Jde o to, že se data z paměti uloží na disk a počítač se vypne. Po zapnutí se data nahrají zpět.

Co budeme potřebovat

Zdrojáky kernelu řady 2.6, já jsem to zkoušel na 2.6.16.5, nějaký použitelný konfig ke kernelu, tak aby to co vyprodukujeme bylo použitelné a také nějakou zkušenost s kompilací jádra. Pro začátečníky bude vhodný seriál Cesta do hlubin kompilace jádra.

S chutí do toho a půl je hotovo (a rychle od toho)

Stažený archiv se zdrojovými kódy jádra si rozbalíme do /usr/src/, v tomto adresáři uděláme symlink linux -> linux-2.6.16.5. Můžeme aplikovat patche, v mém případě patch vesafb-tng. A jako root spustit make xconfig, nebo make menuconfig.

Při konfiguraci nezapomeneme zvolit v sekci Power Management support položku Software Suspend. Pozornost věnujme položce Default resume partition, jako její hodnotu napište blokové zařízení které odkazuje na swap partition, Tuto volbu lze předávat kernelu i jako parametr resume=/dev/other_device. V sekci ACPI (Advanced Configuration and Power Interface) Support povolíme ACPI Support a zatrhneme Sleep States a /proc/acpi/sleep.

Teď už stačí zkompilovat jádro a moduly, jádro zkopírovat do /boot upravit zavaděč tak aby jej byl schopen nabootovat, a hurá dál.

Pokud vše proběhlo jak mělo, tak můžeme zkusit uspat počítač. Uděláme to velmi jednoduchým příkazem:

echo 1 > /proc/acpi/sleep       # for standby
echo 2 > /proc/acpi/sleep       # for suspend to ram
echo 3 > /proc/acpi/sleep       # for suspend to ram, but with more power conservative
echo 4 > /proc/acpi/sleep       # for suspend to disk
echo 5 > /proc/acpi/sleep       # for shutdown unfriendly the system

A teď k trochu kyselému jablíčku, nic není tak jednoduché, zjistil jsem, že pár věcí nefunguje po probuzení zrovna správným způsobem. Při spání na disk a následném probuzení nefungoval lirc, samozřejmě modem, z neznámého důvodu přestalo reagovat tlačítko rozhraní acpi a vůbec nejhůř dopadly Xka s proprietárním modulem od nVidiie. Výsledkem je tento skript:

#!/bin/bash
#/etc/acpi/susend.sh
sh /etc/rc.d/rc.lirc stop
sh /etc/rc.d/rc.ppp stop
/sbin/rmmod button
/sbin/init 3
echo 4 > /proc/acpi/sleep
sleep 1
/sbin/init 4
sh /etc/rc.d/rc.lirc start
sh /etc/rc.d/rc.ppp start
/sbin/modprobe button

Závěr a celkové zhodnocení :)

Co dodat... snad jen tolik: je velmi příjemné mís stroj nastartován za půl minuty :) (i přes ty drobné komplikace to stojí za vyzkoušení).

Dost mě překvapilo, že suspend z vanilly chodí takhle použitelně.

Keep Slack'in

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

16.4.2006 00:51 dizz | skóre: 21 | blog: Dizzyho_Blog
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
Odpovědět | Sbalit | Link | Blokovat | Admin
Hmm 30 vterin ?Stoji to za tu namahu?? me pocitac od grubu do desktopu (-cas co tukam heslo) je 45 sekund
Chuck Norris dohral GNU/Linux... a dvakrat!
16.4.2006 08:15 Darek | skóre: 11 | blog: darek_blog | Chomutov
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
Tak mi to nedalo a ja to mam za 23 vterin, od klepnuti na LILO do nabehnuti WindowMakera, takze to stoji za to, je to polovina casu, plus dalsi cas co ti nabiha grafika. Jinak ja mam Slack + susp to disk (vanilla 2.6.15.1) a je to na IBM X21 (700MHz,256MB RAM)
Little Falls & Little Valley 2
16.4.2006 09:56 KS | skóre: 10 | blog: blg | Horní polní u západní dolní
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
Odpovědět | Sbalit | Link | Blokovat | Admin
Mi to taky nedalo. Co když máš 1GB ramky. To jsou potom asi 2 minuty. Co potom 2 GB?
Pochybnost, nejistota - základ poznání
David Watzke avatar 16.4.2006 13:10 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
LOL ;-) Mám GB RAM a naskočilo to taky za nějakých 20 sekund. Ale zrušil jsem to, je mi to na nic, počítač nevypínám a když jo, tak abych mohl vlézt do Windows (což se opravdu jen tak nestává).
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
16.4.2006 10:24 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
Odpovědět | Sbalit | Link | Blokovat | Admin
Zdravim

Docela by me zajimalo k cemu potom ten SW suspend je kdyz tam provadis init 3 a nasledne init 4. IMHO to docela nasilne schodi grafiku (cili odstreli KDE) a po nabootovani uvidim akorat grafickej login.

Mozna se k tomu dostanu taky, jsem ve stavu ze svuj kernel patchuju ruznejma hloupostma, ted se snazim o bootsplash, ne a ne se ukazat...

Zdenek
www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
vogo avatar 16.4.2006 10:35 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
Skriptík co jsem uvedl se provádí místo příkazu halt, a ten init 3, init 4 je tam pro to, abych po probuzení nezůstal civět na černou obrazovku, protože pokud běží Xka s modulem od nVidie, tak to tak dopadá :(. A k čemu je to vůbec takhle dobré? k tomu, že se stahne čas startu.
fbsplas bude další zápisek, už mám opatchováno a teď pročítám dokumentaci, už jsem si s tím jednou hrál, ale tentokrát bych to chtěl včetně initramdisku, aby to bylo komplet :)
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
vogo avatar 16.4.2006 11:06 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
Uf nejde mi zkompilovat splashutils, teď už na to nemám náladu, a mám spoustu dalších věcí na práci, tudíž odkládám na neurčito... :(
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
stativ avatar 16.4.2006 11:39 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
Pokud je to ten samy problem, jako ma software suspend 2 (a to urcite je), tak staci pouzivat misto agpgart nvidiackou podporu AGP (myslim ze nvagp se to jmenuje). Ja kvuli tomu prestal ss2 pouzivat (moje zakladovka nema podporu od nVidie).
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
vogo avatar 16.4.2006 12:15 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
moc díky za tip, funguje to bezvadně, stačila volba Option "NvAGP" "1" do xorg.conf
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
16.4.2006 12:07 Dunric | skóre: 21
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
Taky myslím, že tak ztrácíš hlavní výhodu suspendování a tou je obnova do stavu před uspáním - v tomhle případě do sezení KDE. Na tohle pohodlí se hrozně rychle zvyká :-)

S proprietárními ovladači je jenom trápení. Měl jsem podobný problém s ovladačem od ATI, ale vyřešil jsem ho následujícím trikem. Před suspendem na disk nejdřív přepnu z X na textovou konzoli(textový mód, nikoli framebuffer). Po probuzení logicky zase přepnutí z konzole do X.

In the garden sleeps a messenger ·
Jan Zahornadsky avatar 16.4.2006 11:39 Jan Zahornadsky | skóre: 22 | blog: hans_blog
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
Odpovědět | Sbalit | Link | Blokovat | Admin
Proč potřebuješ shazovat grafiku? Mě s nVidií funguje suspend i z grafiky a oproti 2.6.15 mi to ani nerozhodí konzole.
Actually, I was half an hour into the pointer scripting documentation when she got dressed and left.
17.4.2006 13:33 Jar-Jar Blinks | skóre: 12
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
Odpovědět | Sbalit | Link | Blokovat | Admin
Software suspend funguje se SMP kernelem ... jen musi mi podporu pro odpojeni procesoru ... tusim ze je to polozka
CONFIG_HOTPLUG_CPU=y
toz tak -)

mimochodem software suspend roste tady v cechach ... jeho vyvojarem je pan Machek ... sikovny tot pan -)
jose17 avatar 22.4.2006 12:09 jose17 | skóre: 44 | blog: Joseho_blog | Bratislava
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
Odpovědět | Sbalit | Link | Blokovat | Admin
hmm, 30 sekúnd. a mohol by si prosím uviesť hw konfiguráciu Tvojho stroja + koľko MB ma partícia pre suspend-to-disk? díky.
Ja vim, on vi, ty nano!
vogo avatar 23.4.2006 19:32 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: Slackware, suspend to RAM a suspend to disk s vanilla jádrem
AMD Athlon XP@ 2200MHz, 512MB RAM, swapáč má 1024MB, disk je Seagate Baracuda 120GB 8MB cache 7200ot/min
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.