ACPI a Software Suspend

Podobné dokumenty
Jak na speciální klávesy v Linuxu

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Obsah. Kapitola 1 Skříně počítačů 15. Kapitola 2 Základní deska (mainboard) 19. Kapitola 3 Napájecí zdroj 25. Úvod 11

Program Computer Setup

Příručka k programu Computer Setup (F10) modely dx7500 Kancelářský počítač HP Compaq

Základní deska (mainboard, motherboard)

Management procesu I Mgr. Josef Horálek

Instalace OS, nastavení systému

Příručka k nástroji Computer Setup (F10) Počítače HP Elite 7000 MT Series PC

Petr Holášek / 1 of 21

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

NÁVOD K OBSLUZE. Obj. č.: Zkrácený návod k obsluze

EUSSO UPE 4100-BR. Fast Ethernet PCMCIA Card 32 bitová 10/100 Mbps síťová PCMCIA karta. Uživatelský manuál

Bootkity v teorii a praxi. Martin Dráb martin.drab@ .cz

MS WINDOWS I. řada operačních systémů firmy Microsoft *1985 -? Historie. Práce ve Windows XP. Architektura. Instalace. Spouštění

Činnost počítače po zapnutí

Tomáš Borland Valenta

Nástroj Setup. Uživatelská příručka

První použití notebooku GIGABYTE

Logická organizace paměti Josef Horálek

Spuštění instalace. nastavení boot z cd v BIOSu vložení CD s instal. médiem spuštění PC. nastavení parametrů instalace (F2 čěština)

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

P íručka k programu Computer Setup (F10) Stolní počítače HP Compaq pro obchodní účely, modely d220 a d230

Kontrola obsahu balení

Intelligent Platform Management Interface (IPMI) Pavel Slavíček

udev a kamarádi... Středisko UN*Xových technologií

RE5USB programovatelné USB relé s integrovaným watchdogem ( RE5 ) Základní vlastnosti

Stavba operačního systému

Instalace, zálohování a obnova systému založeného na Windows XP embedded

Lekce 7 IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

BIOS (BASIC INPUT-OUTPUT SYSTEM)

Základní pojmy informačních technologií

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE

Nahrávání image flash do jednotek APT81xx, PPC81xx

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Dílčí projekt: Systém projektování textilních struktur 1.etapa: tvorba systému projektování vlákno - příze - tkanina

Computer Setup Uživatelská příručka

1 Osobní počítač Obecně o počítačích Technické a programové vybavení... 4

Část 1. Technická specifikace. Posílení ochrany demokratické společnosti proti terorismu a extremismu

Téma 12: Správa diskových jednotek a system souborů. Téma 12: Správa diskových jednotek a systémů souborů

Obsah. Kapitola 1 BIOS 9. Kapitola 2 Start počítače a POST testy 13. Kapitola 3 Setup 21. Úvod 7

Obsah. Kapitola 1. Kapitola 2 KAPITOLA 3. Úvod 9

Stručná instalační příručka SUSE Linux Enterprise Server 11

Operační systémy. Tomáš Hudec.

P íručka k nástroji Computer Setup (F10) Stolní počítače HP Business Desktop model dx5150

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Metody připojování periferií BI-MPP Přednáška 2

Identifikátor materiálu: ICT-1-08

Úvod do OpenWRT. Ondřej Caletka. 1. března Uvedené dílo podléhá licenci Creative Commons Uveďte autora 3.0 Česko.

2.9 Vnitřní paměti. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Shrnutí Obecné Operační systém Microsoft Windows 7 Ultimate Centrální procesor

Špionážní pero s kamerou, 720x480px

Zkontrolujte dodané příslušenství.

První použití notebooku GIGABYTE

SUSE Linux Enterprise Desktop 10

TEMPO průmyslový panelový počítač

Propiska s kamerou EXCLUSIVE

SÁM O SOBĚ DOKÁŽE POČÍTAČ DĚLAT JEN O MÁLO VÍC NEŽ TO, ŽE PO ZAPNUTÍ, PODOBNĚ JAKO KOJENEC PO PROBUZENÍ, CHCE JÍST.

HelenOS ARM port. Pavel Jančík Michal Kebrt Petr Štěpán

Propiska s kamerou EXCLUSIVE

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Roline USB 2.0 elektronický přepínač 2:1 (4:1)

Návod k obsluze kamery Angel Eye SY-68

Základní programové vybavení počítače

Specifikace předmětu veřejné zakázky

Stručný obsah KAPITOLA 1 KAPITOLA 2 KAPITOLA 3 KAPITOLA 4 KAPITOLA 5 KAPITOLA 6 KAPITOLA 7 KAPITOLA 8 KAPITOLA 9 KAPITOLA 10 KAPITOLA 11 KAPITOLA 12

Datacard. Instrukce k aktualizaci firmware tiskáren. Aktualizační aplikace pro operační systémy Windows

Téma 8: Konfigurace počítačů se systémem Windows 7 IV

Pokročilé architektury počítačů

První použití notebooku GIGABYTE

BIOS. Autor: Bc. Miroslav Světlík

Šifrování systémového disku C: a datového disku D: ve standardním image

IPLC5xx. Procesní stanice MiniPLC Shark. Shrnutí

konec šedesátých let vyvinut ze systému Multics původní účel systém pro zpracování textů autoři: Ken Thompson a Denis Ritchie systém pojmnoval Brian

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.


Testovací protokol USB Token Cryptomate

Digitální učební materiál

Příloha č. 1 k výzvě k podání nabídek

NÁVOD K POUŽITÍ Kamera CEL-TEC S3000 Wifi IR

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Stručný návod pro software dodávaný jako příslušenství k NetMini adaptéru. Komunikace UPS \ NetAgent Mini DK532, DP532. O.K.SERVIS Plus s.r.o.

Full HD širokoúhlá kamera s DVR

Správa stanic a uživatelského desktopu

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Tužka s kamerou EKONOMY, 720x480px

Programátor AVRProg USB v3 MK II Eco Manuál

Téma 5: Konfigurace počítačů se systémem Windows 7. Téma 5: Konfigurace počítačů se systémem Windows 7

GeoPlan. Administrátorská příručka. Výstup byl vytvořen s finanční podporou TA ČR v rámci projektu TA Verze 1.0

Kamera Angel Eye. Návod k použití. Výhody přístroje:

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

Ukazky Zdroje:... 17

1.2 Operační systémy, aplikace

Příručka k nástroji Computer Setup (F10) Řada stolních počítačů Evo Řada pracovních stanic Evo

MSP 430F1611. Jiří Kašpar. Charakteristika

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Příručka k programu Computer Setup (F10) modely dc5700

VYUŽITÍ PYTHONU PRO REALTIMOVÉ ŘÍZENÍ PERIFERIÍ

Transkript:

ACPI a Software Suspend 1.9.2007 Lukáš Turek MFF UK

O čem to bude ACPI DSDT tabulka Suspend to disk swsusp suspend2 µswsusp Suspend to RAM 2

ACPI - úvod Advanced Configuration and Power Interface Specifikace pro komunikaci OS s hardwarem a naopak (správa napájení je jen podmnožina funkce) Abstrakce funkcí hardware Příklad: teplotu CPU je možné číst přes ACPI (/proc/acpi/thermal_zone/thrm/temperature), nebo přímo komunikací s čipem pomocí lm_sensors * Nahrazuje APM (Advanced Power Management) V APM řídil správu napájení BIOS, operační systém měl jen omezené možnosti Linux APM podporuje (CONFIG_APM, démon apmd) I na vypnutí počítače je potřeba APM nebo ACPI 3

ACPI - návrh Na specifikaci ACPI se podílely firmy Hewlett-Packard, Intel, Microsoft, Phoenix, a Toshiba Specifikace byla navržena multiplatformě pro IA-32 (x86) a IA-64 (Itanium) Není omezena jen na přenosné počítače, obsahuje i funkce pro víceprocesorové servery Součástí specifikace je i programovací jazyk ASL (ACPI Source Language), ten se překládá do bytekódu Kompilátor Intelu: http://www.intel.com/technology/iapc/acpi/downloads.htm Možno programovat event handlery (obsluha událostí) Například ACPI timer: probuzení počítače po 15 minutách Potenciální bezpečnostní riziko (rootkit), ale nepřežije restart počítače 4

ACPI realita second system syndom první systém nestačil, druhý musí umět všechno a radši něco navíc Specifikace ACPI má 631 stran: http://www.acpi.info/downloads/acpispec30b.pdf Výrobci nedodržují ACPI standard (a to ani ti, kteří se na něm přímo podíleli) V implementaci ACPI v BIOSu jsou často chyby A ty obchází až ovladač (pro Windows) Implementace v Linuxu je velká asi jako TCP/IP stack * První doporučovaný krok, pokud počítač nenabootuje je parametr kernelu acpi=off OLPC (One Laptop Per Child) ACPI nepoužívá vůbec 5

ACPI tabulky Informace o systému, v jazyce AML RSDP (Root System Description Pointer) RSDT (Root System Description Table) DSDT (Differentiated System Description Table) XSDT (Extended System Description Table) FADT (Fixed ACPI Description Table) FACS (Firmware ACPI Control Structure) SBST (Smart Battery Table) ECDT (Embedded Controller Boot Resources Table) MADT (Multiple APIC Description Table) SRAT (System Resource Affinity Table) SLIT (System Locality Distance Information Table) SSDT (Secondary System Descriptor Table) 6

DSDT tabulka Největší a nejdůležitější z ACPI tabulek Dodávaná s hardware (součást BIOSu) OS ji načítá při bootu Hiearchický formát Informace o konfiguraci hardware /proc/acpi/dsdt AML bytekód je možné dekompilovat: * cat /proc/acpi/dsdt > dsdt.aml iasl -d dsdt.aml > dsdt.asl 7

DSDT pokračování V DSDT tabulce mohou být chyby (výrobce zajímá jen jestli to funguje ve Windows) Naštěstí je možno DSDT tabulku dekompilovat, upravit, zkompilovat a zadat kernelu: Device Drivers ---> Generic Driver Options ---> [ ] Select only drivers that don't need compile-time external firmware Power management options (ACPI, APM) ---> ACPI (Advanced Configuration and Power Interface) Support [*] Include Custom DSDT (dsdt.aml) Custom DSDT Table file to include ---> 8

ACPI States Stav počítače G0 normální běh G1 spánek S1 CPU běží, ale nevykonává instrukce S2 nepoužívá se S3 stav CPU a periferií uložen v paměti S4 stav systému včetně paměti uložen na disk G2 vypnutý počítač, může být probuzen např. ze sítě G3 při odpojení od napájení Vedle toho stav periferií (D0-D3) a procesoru (C0-C3) Co váš počítač podporuje zjistíte v /sys/power/state * (standby = S1, mem = S3, disk = S4) S4 (suspend to disk s podporou BIOSu na speciální partition) už v kernelu není, nahrazuje ho swsusp 9

ACPI - využití Různé informace v /proc/acpi teplota CPU: /proc/acpi/thermal_zone/thrm/temperature lm_sensors ale řekne víc stav baterie: /proc/acpi/battery/bat0/state a další podle hardware... LED diody podle výrobce, např. /proc/acpi/asus/wled chystá se unifikovaný ovladač Tlačítka démon acpid možné tlačítkům přiřadit akce (skripty) * skripty se spouští pod rootem, takže spuštění Firefoxu po stisku tlačítka s modrým E je trochu komplikovanější... 10

Software Suspend 11

Software Suspend Kompletní stav systému se uloží na disk, počítač se vypne Při bootu se stav zase obnoví Nepotřebuje podporu podporu BIOSu (ani ACPI), pro hardware je to normální vypnutí a zapnutí Užitečné pro notebooky, ale i pro desktop: systém naběhne rychleji, nemusíte znovu spouštět programy a přemýšlet kde jste skončili... Několik implementací (sdílí dost kódu): swsusp (v kernelu) suspend2 (patch) µswsusp (s podporou userspace) 12

swsusp Již dlouho v kernelu Současní správci: Pavel Machek, Rafael Wysocki Dokumentace: Documentation/power/swsusp.txt Problémy, které musí software suspend řešit Potřebuji uložit kompletní stav paměti ale na to potřebuji paměť (buffery disku,...) Při ukládání paměti nesmí nic do paměti zapisovat, jinak bude image nekonzistentní, zařízení se tedy musí uspat, aby nezapisovaly přes DMA ale pro zápis na disk potřebuji řadič, ten může být na PCI 13

swsusp - princip Paměť se atomicky (při zakázaný přerušeních) kopíruje do volné paměti Image tedy může mít velikost maximálně 50% volné paměti Nadbytečná data v paměti se musí odswapovat, musí se vyprázdnit disková cache... Po probuzení se odswapovaná data načítají pomalu stránku po stránce (náhodné přistupy na disk), zatímco image by se mohlo načíst sekvenčně během několika vteřin Zařízení se před kopírování uspí a pak zase probudí probouzí se všechna zařízení, těžko se dá poznat která jsou potřeba (disk připojený na SCSI řadič v PCI za PCI bridge...) 14

swsusp upozornění Filesystém zůstává připojený je možné nabootovat jiný OS, ale ten nesmí připojovat oddíly, které byly připojeny při suspendu grub musí být schopen načíst kernel, ale připojený oddíl může být v nekonzistentním stavu doporučuji používat boot partition Probouzet se musí s přesně stejným kernelem jako při uspání je-li jiný, swsusp to pozná a bez varování image smaže swsusp automaticky ukládá image na první swap partition, pro obnovu potřebuje partition zadat parametrem resume=/dev/hdx Ovladač řadiče disku musí být zakompilovaný v kernelu 15

swsusp - použití Konfigurace kernelu Power management options (ACPI, APM) [*] Software Suspend (/dev/hda2) Default resume partition ---> Default resume partition nahrazuje parametr resume= Spuštění suspend: echo disk > /sys/power/state 16

swsusp proces Uspání (suspend) Zastavení uživatelských procesů Zastavení vláken kernelu Uvolnění paměti Zmražení zařízení (devices): suspend(pmsg_freeze) Atomická kopie paměti Probuzení zařízení: resume() Zápis image do swapu Uspání zařízení: suspend(pmsg_suspend) Vypnutí počítače Obnova (resume) je opačný proces 17

swsusp potřebná podpora Software Suspend je transparentní pro uživatelské procesy (ale mohou být problémy, například s náhlou změnou času) Musí být upraveno každé kernelové vlákno volání try_to_freeze() na bezpečném místě, kde nedrží žádný zámek Příklad: mm/pdflush.c Vlákna potřebná pro uložení image mají flag PF_NOFREEZE Ovladač každého zařízení musí implementovat funkce suspend() a resume() pro uložení a načtení stavu Pokud je neimplementuje, musí se modul před uspáním vyhodit, suspend2 má blacklist modulů Někdy ani unload nepomůže (sdhci) Příklad: drivers/net/skge.c 18

Suspend2 Zatím mimo kernel Patch na http://www.suspend2.net/ Správce: Nigel Cunningham Umožňuje vybrat swap partition, navíc možnost ukládat image do souboru Volitelně komprese (LZF) a šifrování pomocí cryptoapi v kernelu Ukazatel průběhu zápisu image Runtime konfigurace v /sys/power/suspend2/ Spuštění suspend: echo > /sys/power/suspend2/do_suspend Ale lepší je použít skript hibernate, který vyhodí moduly na blacklistu, přepne do konzole atd., navíc podporuje všechny 3 implementace Software Suspend 19

Suspend2 ukládání paměti Hlavní výhoda suspend2: image může mít velikost skoro celé paměti Suspend2 dělí stránky do 2 skupin Pageset1 ty, které je nutno kopírovat atomicky, např. kernel Pageset2 stránky uživatelských procesů (pagecache), které se po uspání procesů nezmění Od verze 2.2.9 jsou v Pageset2 jen read-only stránky, původní chování se nastaví echo 1 > /sys/power/suspend2/full_pageset2 Mě bez tohoto nastavení suspend selže, že se nepodařilo zastavit kswapd0 Stačí uvolnit paměť pro kopii stránek v Pageset1 řádově 10MB Proč tedy není v kernelu? příliš mnoho kódu, autor odmítá rozdělit na nezávislé části 20

µswsusp Userspace Software Suspend Přesun co nejvíce činností do userspace (ukládání image, komprese, šifrování) Autoři: Pavel Machek, Rafael Wysocki Nutná podpora už je v kernelu Documentation/power/userland-swsusp.txt Potřebný userspace program: http://suspend.sf.net/ databáze potřebných hacků pro jednotlivé počítače * 21

µswsusp - princip Device /dev/snapshot read přečtení image write obnova image ioctl nastavení parametrů Sdílí omezení swsusp image maximálně 50% RAM userspace program nesmí zapisovat na oddíl disku, který byl připojen v okamžiku snapshotu => nelze jednoduše uložit snapshot na root partition userspace program by neměl z připojeného disku ani číst Obnova také vyžaduje userspace program => je potřeba initrd/initramfs 22

Suspend to RAM ACPI S3 Stav periferií a procesoru se uloží do paměti, napájena je jen paměť V kernelu musí být vybráno ACPI Sleep States (CONFIG_ACPI_SLEEP) Suspend se spustí echo mem > /sys/power/state pokud máte štěstí, počítač se uspí pokud máte opravdu hodně štěstí, tak se i probudí Pozor na acpid: probouzíte-li počítač tlačítkem Power, událost se dostane do systému a acpid vypne počítač 23

Suspend to RAM - problémy Na rozdíl od Software Suspend se neprovede boot, a BIOS nemůže inicializovat periferie Typicky se neinicializuje grafická karta a nerozsvítí se displej několik triků: suspend z X Window vbetool post acpi_sleep=s3_bios acpi_sleep=s3_mode Dnes je spíše štěstí, když S3 funguje, ale blýská se na lepší časy, do věci se vložil přímo Linus Torvalds Debugování Suspend to RAM pomocí hashe ukládané do RTC (hardwarových hodin) je možné zjistit, kde to vytuhlo 24