Gestionarea energiei Suspendați și hibernați - ArchWiki

În prezent, există trei metode de suspendare disponibile: suspendați la RAM (de obicei numit doar suspenda), suspend pe disc (de obicei cunoscut sub numele de hibernează), și suspendare hibridă (uneori numit în mod adecvat suspendă la amândouă):

gestionarea

  • Suspendați la RAM metoda reduce puterea la majoritatea părților mașinii, în afară de memoria RAM, care este necesară pentru a restabili starea mașinii. Datorită economiilor mari de energie, este recomandabil ca laptopurile să intre automat în acest mod atunci când computerul funcționează pe baterii și capacul este închis (sau utilizatorul este inactiv de ceva timp).
  • Suspendați pe disc metoda salvează starea mașinii în spațiul de schimb și oprește complet mașina. Când aparatul este pornit, starea este restabilită. Până atunci, consumul de energie este zero.
  • Suspendați la amândoi metoda salvează starea mașinii în spațiul de schimb, dar nu oprește mașina. În schimb, invocă suspendarea obișnuită la RAM. Prin urmare, dacă bateria nu este epuizată, sistemul se poate relua din RAM. Dacă bateria este descărcată, sistemul poate fi reluat de pe disc, care este mult mai lent decât reluarea din RAM, dar starea aparatului nu a fost pierdută.

Există mai multe interfețe de nivel scăzut (backend-uri) care oferă funcționalități de bază, iar unele interfețe de nivel înalt oferă modificări pentru a gestiona driverele hardware/modulele kernel problematice (de exemplu, reinițializarea plăcii video).

Cuprins

  • 1 Interfețe de nivel scăzut
    • 1.1 nucleu (swsusp)
    • 1.2 uswsusp
  • 2 interfețe de nivel înalt
    • 2.1 sistemd
  • 3 Hibernare
    • 3.1 Despre partiția swap/dimensiunea fișierului
    • 3.2 Parametrii necesari ai nucleului
      • 3.2.1 Hibernare în fișier swap
      • 3.2.2 Hibernare în fișier swap pe Btrfs
      • 3.2.3 Hibernare într-un volum LVM subțire
    • 3.3 Configurați initramfs
  • 4 Depanare
    • 4.1 ACPI_OS_NAME
    • 4.2 Suspendarea/hibernarea nu funcționează sau nu funcționează consecvent
    • 4.3 Wake-on-LAN
    • 4.4 Treziri instantanee de la suspendare
    • 4.5 Sistemul nu se oprește la hibernare

Interfețe de nivel scăzut

Deși aceste interfețe pot fi utilizate direct, este recomandabil să utilizați unele dintre interfețele de nivel înalt pentru a suspenda/hibernare. Utilizarea directă a interfețelor de nivel scăzut este semnificativ mai rapidă decât utilizarea oricărei interfețe de nivel înalt, deoarece executarea tuturor cârligelor pre și post-suspendare necesită timp, dar cârligele pot seta corect ceasul hardware, pot restaura conexiunile wireless etc.

miez (swsusp)

Cea mai simplă abordare este de a informa direct codul de suspendare a software-ului din kernel (swsusp) pentru a intra într-o stare suspendată; metoda și starea exactă depind de nivelul de suport hardware. Pe nucleele moderne, scrierea șirurilor adecvate în/sys/power/state este mecanismul principal pentru a declanșa această suspendare.

uswsusp

Uswsusp („Userpace Software Suspend”) este o învelitoare în jurul mecanismului suspend-to-RAM al nucleului, care efectuează unele manipulări ale adaptorului grafic din spațiul utilizatorilor înainte de suspendare și după reluare.

Vezi articolul principal Uswsusp.

Interfețe de nivel înalt

Scopul final al acestor pachete este de a oferi binare/scripturi care pot fi invocate pentru a efectua suspendarea/hibernarea. De fapt, conectarea acestora la butoanele de pornire sau la clicurile din meniu sau la evenimentele de pe capacul laptopului este de obicei lăsată în sarcina altor instrumente. Pentru a suspenda/hibera automat în anumite evenimente de alimentare, cum ar fi închiderea capacului laptopului sau procentul de descărcare a bateriei, vă recomandăm să rulați Acpid.

systemd

systemd oferă comenzi native pentru suspendare, hibernare și suspendare hibridă, consultați Gestionarea energiei # Gestionarea energiei cu systemd pentru detalii. Aceasta este interfața implicită utilizată în Arch Linux.

Consultați Gestionarea energiei # Sleep hooks pentru informații suplimentare despre configurarea suspendării/hibernării cârligelor. A se vedea, de asemenea, systemctl (1), systemd-sleep (8) și systemd.special (7) .

Hibernare

Pentru a utiliza hibernarea, trebuie să creați o partiție sau un fișier swap. Va trebui să îndreptați nucleul către swap folosind parametrul resume = kernel, care este configurat prin boot loader. De asemenea, va trebui să configurați initramfs. Acest lucru îi spune nucleului să încerce să reia din swap-ul specificat în spațiul utilizatorilor timpurii. Acești trei pași sunt descriși în detaliu mai jos.

Despre partiția swap/dimensiunea fișierului

Chiar dacă partiția de swap este mai mică decât memoria RAM, aveți totuși mari șanse de hibernare cu succes. Conform documentației kernelului:

/ sys/power/image_size controlează dimensiunea imaginii create de mecanismul suspend-to-disk. Se poate scrie un șir reprezentând un număr întreg non-negativ care va fi folosit ca limită superioară a dimensiunii imaginii, în octeți. Mecanismul de suspendare pe disc va face tot posibilul pentru a se asigura că dimensiunea imaginii nu va depăși acel număr. Cu toate acestea, dacă acest lucru se dovedește a fi imposibil, va încerca să suspende oricum folosind cea mai mică imagine posibilă. În special, dacă „0” este scris în acest fișier, imaginea suspendată va fi cât mai mică posibil. Citirea din acest fișier va afișa limita curentă a dimensiunii imaginii, care este setată la 2/5 din RAM disponibilă în mod implicit.

Puteți fie să micșorați valoarea/sys/power/image_size pentru a face imaginea suspendată cât mai mică posibil (pentru partițiile de swap mici), sau să o măriți pentru a accelera posibil procesul de hibernare. Pentru sistemele cu o cantitate mare de memorie RAM, valori mai mici pot crește drastic viteza de reluare a unui sistem de hibernare. A se vedea systemd # systemd-tmpfiles - fișiere temporare pentru a face această modificare persistentă.