Můj několikahodinový boj s ACPI mne přiměl napsat tento krátký článek. Už jste někdy pod Linuxem zkoušeli rozběhnout uspávání (S3 nebo S4)?
Když teď mám Linux na notebooku, docela se mi hodí alespoň S4 (suspend to disk). Bohužel ne vždy funguje :(
Když pročítám různé rady, zjišťuji že problém může být v ACPI, jádru, Xorg, grafické kartě nebo někde úplně jinde – stačí si vybrat :)
K uspání je možné použít /sys/power/state nebo /proc/acpi/sleep, „sys“ prý často zlobí – tak jej samozřejmě jako výchozí používají skripty ACPI!
V jádru je nový patch, a tak na mém Lenovu R60 musím předat jádru jako startovací parametr „ec_intr=0“, abych měl alespoň nějakou šanci, že bude sleep fungovat.
No a pozor, máme tu další bug v Xorg. Před uspánim bude asi potřeba přepnout se do konzole a při probuzení konzole->X->konzole->X.
Že bych se na to … :-D
Setkal se někdo se strojem, na kterém funguje ACPI sleep na první pokus nebo jen s mírnou komplikací?
Myslíte, že někdy bude Linux zvládat ACPI tak dobře jako Windows? Jestli si dobře pamatuji, tak je to asi půl roku zpět, co se vývojáři shodli na tom, že je potřeba celé uspávání předělat – ale výsledek nikde.
Mam IBMR40 slackware 11 a muj postup byl nasledujici na jadre 2.6.18.1 vanila sem zakompiloval vsechno z acpi do jadra a cele apm vyhodil pryč automaticky se mi v /proc/acpi vytvořili všechny soubory pak sem jen v KDE klaptop vše nastavil (graficky) a funguje to. vydrž ve widlích byla 5 hodin na powersave nejnižším výkonu po vyladění na linuxu kompilaci jadra pro spravny processor a nastaveni k laptopu taky na nejnižší výkon vydrž 6a1/4 hodiny takže vytězství pro linux V windows 1:0 uvedu nejnižší spotřebu 0,57 W/H v linuxu oproti 0,65W/H windows baterka 4W/H uspání do ram funguje perfektně a po otevření výka se automaticky zapne uspání na disk funguje taky bez problémů zásadní změny v acpi už jsou zavedeny v jádře 2.6.18
mam odskoušeno na mem IBM v distribucích openSUSE 10.1 a Slackware 11 s IBM notebooky by si měly perfektně rozumět jak s linuxem tak s acpi nevim jake změny udělalo lenovo ale pro všechny IBM R40,52 T41,42,43,60 X60 mi to nikdy nedělalo sebemenší problém (pozn. pracuji s notebooky ((opravy atd)) ) mam disk ktery prehazuji mezi nimi na testy a vše je ok s lenovo řadami jsem se ještě nesetkal. omlouvam se za připadne chyby v našem rodnem jazyce
Taky se pridam - mam cinsky OEM na Centrinu (P-M, i855GME apod.).
Instalace spocivala v "aptitude install uswsusp" a odklepani defaultnich hodnot (aspon pokud si dobre vzpominam). Prvni pokus nevysel, kdyz jsem to zkousel asi po mesici znovu, tak to sice psalo ponekud strasidelnou hlasku (neco o pm_ops->prepare a -1), ale suspend to disk (hibernace) fungovalo v pohode (z Xek). Jadro 2.6.17. Mam to namapovane na uspavaci tlacitko (Fn+F1) pomoci acpid.
Na desktopech jsem nikdy problémy neměl (AMD na VIA chipsetech), s notebookem (starší Compaq Presario, Duron a lowend VIA) to bylo horší. V Gentoo to chtělo dost přemlouvání a stejně to nebylo stoprocentní (někdy se to neuspalo, někdy neprobudilo). O to víc jsem byl překvapenej, že v Kubuntu mi jak suspend, tak hibernace chodily hned po instalaci. A stejný zkušenosti maj i kamarádi v nejrůznějších konfiguracích. Doporučuju vyzkoušet (suspend by možná moh chodit i z Live CD).
Me to nikdy nefungovalo. Zkousel jsem to asi pred rokem na Thinkpadu R41. Ted uz ten notebook nemam, takze nevim jestli to uz nahodou nefunguje. Muj problem, byl, ze Thinkpad nevydrzel s ACPI bezet dyl jak deset minut. Jakmile doslo k nejaky zahadny ACPI udalosti,
tak to hodilo panic. Nakonec jsem si stahnul specifikaci APCI a celou ji precet(cca 500 stran). Pak jsem si "disasembloval"
AML kod toho notebooku a zjistil jsem ze to pouziva promenny
(Linux, WinME, WinNT, Win2K, ...). Tyhle promenny si to behem bootu
naplni - pomoci operatoru OSX to zjistuje, jakej OS zrovna bezi.
Bohuzel promenna Linux se v tom AML uz nikde nepouziva
a AML kod pak zabiha do vetvi, ktery asi nikdy nebyly testovany.
Kdyz jsem pomoci nejakyho pathe presvedcil kernel aby se pri acpi
tvaril jako W2k+sp3, tak se to chovalo "jinak" ale stejne to nebylo moc stabilni. Pri uspavani to melo hlavne problemy s grafickou kartou(ATI). Ta se chovala ruzne podle toho, jestli jsem nabootoval
poprve do woken nebo do linuxu. Suspend mi fugoval pouze bez Xek.
Hmm, a o co komu jde? Vzdyt rozchodit je to celkem v pohode, dobry predpoklad je, zkompilovat si vlastni vanilu jadro, nepouzivat zadny distribucni skripty, ale suspendovat pres echo mem|disk > /sys/power/state
Kdyz nefunguje, zjistim proc (zakompiluju si debug hlasky suspendu). Zkusim to s minimalnim systemem, bez modulu, bez X serveru. Suspend na disk by mel bezet. Suspend to ram ma v dokumentaci napsano, ze je problem probudit videokartu, ale pomerne casto funguje pres vbetool dat save a restore, nebo jen po probuzeni proste vzdalene napsat vbetool post. Mel by se objevit obraz. Kdyz to zatuhne, pobavim se s Pavlem Machkem, proc by to mohlo tuhnout a co s tim muzu delat, nejaky tipy vzdycky da. Kdyz si uchodim suspendy jen s textovou konzoli, pridam X server, mel by v pohode bezet, pokud nebezi, stahnu si z webu co nejaktualnejsi driver pro video. Myslim, ze se vsema to uz docela chodi.
Takze by me zajimalo, jak onen nekolika hodinovy boj vypadal..
IBM/Lenovo R60 @ 2.6.18, suspend2ram jsem po par problemech rozchodil (http://thinkwiki.org je vyborny zdroj informaci), uz si to moc nepamatuju, ale myslim ze problem byl v tom, ze jsem musel v biosu vypnout SATA AHCI. Funguje z konzole i z Xek. Suspend2disk jsem zatim nemel potrebu zkouset, ale co jsem cetl tak by to nemusel byt problem (suspend2 patche).
Tak se mi to konečně povedlo rozchodit i na Ubuntu jádru. I když se stále neprobouzí korektně Wifi adaptér (naštěstí pouze po standby). Můj návod je tady: https://launchpad.net/distros/ubuntu/+source/linux-source-2.6.17/+bug/50031/comments/94
Podrobnosti v článku.
A k některým poznámkám - docela s Linuxem pracuju, občas lezu dost hluboko do systému, ale jestli má někdo pocit, že si uživatel bude psát patche do ACPI... Vanila jádro možná, jsem na kompilace jádra a problémy s tím zvyklý z Gentoo, ale nějak se mi do toho příliš nechce.
Jakub
[12] chyba s wifi muze byt zpusobena tim, ze jadro obsahuje (asi stale) chybu v ukladani PCI config space a nasledne zapise same -1 do konfigurace wifi (napsal jsem si vlastni workaround). Je to intel adapter? Pokud ano, pouzivate posledni driver z ipw2200.sf.net?
Ad acpi tlacitka - dost pravdepodobne proste jen chybi v acpidu nastaveni reakce na udalost toho tlacitka, ale tohle rozhodit mi prijde skoro dost elementarni.
A kdyz se divam, jakou verzi jadra zminujete, ani se moc nedivim, ze neco nefunguje. Kdyz neco nefunguje, automaticky zkousim co nejnovejsi verze vseho relevantniho.
Na desktopu mi to ve Fedore Core5 jelo jako po masle - nainstaloval Fedoru + acpitool, cvicne zkusil "acpitool -S" a vic jsem se nestaral. Debian Etch - nainstaloval Debian + hibernate, spustil hibernate a vic se nestaral. Obcas blbnou ATI uzavrene ovladace pri probuzeni, jiny problem jsem nezaznamenal. MPD pokracuje v hrani tam, kde predtim prestal. Jo, tusim se mi korektne neprobudi televizni karta - saa7134.
Notebook (IBM Thinkpad T41) - viz vyse situace s Debianem. Tady je ovsem taky problem - neprobudi se integrovana wifina (Atheros). Zatim jsem to neresil, ale madwifi drivery maji skoro stejne mnozstvi bugu, jako ty od ATI, takze si nedavam velke sance.
Mam gentoo a Acer TravelMate 230. Prvni pokus byl suspend to RAM pres ACPI, notas se k memu poteseni uspal. Kdyz sem ho probudil, tak sem ale uz nic nevidel. Zacal sem smutnit, zmackl kouzelny trojhmat Ctrl+Alt+Del namapomavany na reboot a stroj k memu poteseni korektne vyrebootoval. Chvilku sem googloval a zjistil ze staci jen po probuzeni z RAM jeste extra probudit display pomoci vbetool a od te doby nemam problem. Zrovna sem dones uspanyho notase ze skoly uprostred emerge -u world :-D Na suspend to disk se teprv chystam. Pokud to pude pres acpi a bude to dostatecne rychly, tak to zacnu taky pouzivat...
Mam notebook Compaq Armada M700 a funguje jak uspani na disk tak i do pameti. Bez uprav, hned po instalaci Mandrivy 2006.
http://www.abclinuxu.cz/hardware/sestavy/notebooky/compaq/compaq-armada-m700
Tak to vypadá, že uspávání začíná chodit. Už jsem objevil i rozdíl mezi uspání přes menu gnome-power-manager a ACPI tlačítko. Gnome-power-manager má vlastní skripty a pokud je to možné, nepoužívá vůbec čisté ACPI. Chtělo to nainstalovat Swsusp2 a pohrát si s konfigurací. Teď už ani nevypadává Wifi. Čisté ACPI si s tímto jádrem skutečně příliš nerozumí.
V událostech na ACPI tlačítka mám tedy rovnou jako akci nastaveno hibernate -F /etc/hibernate/příslušný_konfigurák. Přesný návod někdy napíšu.
ad [14] Je potřeba provádět přepnutí do konzole a použít SaveVbeState. V případě swsusp2 (apt-get install hibernate) stačí upravit /etc/hibernate/common.conf:
SwitchToTextMode on
IbmAcpi yes
EnableVbetool yes
RestoreVbeStateFrom /var/lib/vbetool/vbestate
VbetoolPost yes
RestoreVCSAData yes
ad [15] Ubuntu bohužel nevydalo oficiálně novější jádro a to co vydalo má opravdu děsnou implementaci ACPI. Pak by asi jediné východisko bylo vanila jádro.
|Jakub
Na mem Acer travelmate 290 je Kubuntu edgy prvni co se mu to povedlo. Behem tech nekolika let co Linux pouzivam, jsem zkousel snad vsechny distra, ale Kubuntu je fakt prvni Just Works. Mozna je to usmevne, ale me skutecne bavi, kdyz mi chodi mrtve klavesy, USB devices, wifi, sleep, tisk, zvuk, no proste vse, aniz bych se hrabal v milionech konfigach.
ad [20] Souhlasím. Já si s Linuxem docela rád "hraju," takže mi nevadí občas něco trošku složitěji dotvářet, ale Ubuntu/Kubuntu je opravdu nejlepší distribuce, co znám! Ještě se mi docela líbí Fedora, ale Ubuntu o kousek vede.
Jakub
P.S.: Zrovna kompiluju Vanilu, tak jsem zvědavý, jestli bude fungovat lépe (rychleji), než distribuční jádro (které se ze zdrojáků odmítá kompilovat - tak zabugovanou věc jsem dlouho neviděl).