Pm-utils

Ga naar: navigatie, zoeken

pm-utils - de volgende generatie slaapstand-architectuur

pm-utils zal het nieuwe slaapstand-raamwerk worden. Het wordt normaliter door HAL gebruikt om de verschillende hacks uit te voeren die nodig zijn voor het omzeilen van de fouten in stuurprogramma's en de subsystemen die nog niet bekend zijn met de slaapstand.

Alhoewel pm-utils een raamwerk is dat in de toekomst door alle Linux-distributies zal worden gebruikt zijn er nu nog enkele SUSE-specifieke functies en patches die nog niet in de generieke versie zitten. Ik zal de configuratievariabelen die specifiek zijn voor SUSE als zodanig markeren.

Basicfunctionaliteit (of "hoe het werkt")

Het concept is vrij eenvoudig, het hoofdscript (pm-action, aangeroepen via symbolische koppelingen als pm-suspend of pm-hibernate) voert zogenaamde "hooks" op alfabetische volgorde uit. Dit zijn scripts die uit de map /etc/pm/hooks, Als alle hooks zijn uitgevoerd wordt de computer in slaap gebracht. Nadat de computer weer is ontwaakt worden alle hooks in omgekeerde volgorde uitgevoerd met de parameter resume (hervatten vanuit RAM) of thaw (hervatten vanaf schijf).

De hooks voeren diverse zaken uit, zoals het voorbereiden van de bootloader, het stoppen van het bluetooth-subsysteem of het uitladen van kritieke modules.

Zowel pm-suspend als pm-hibernate worden normaliter vanuit HAL aangeroepen, aangestuurd door desktop-applets zoals gnome-power-manager of kpowersave.

Configuratie

Het hoofdconfiguratiebestand is /etc/pm/config. Aanvullende configuratiebestanden kunnen in de map /etc/pm/config.d worden geplaatst. Onthoud dat de configuratiebestanden en de hooks uitvoerbaar dienen te zijn.

Variabelen in /etc/pm/config

SUSPEND_MODULES="button" 

de lijst van modules die uitgeladen worden vóór slaapstand.

SUSE-specifieke variabelen

HIBERNATE_METHOD={userspace,kernel} 

selecteert de methode slaapstand naar schijf. Valt standaard terug naar userspace.

S2RAM_OPTS=""

opties die worden doorgegeven aan s2ram. Zie ook bij s2ram voor meer informatie.

Probleemoplossing

Als de slaapstand niet goed werkt, dan kunt u mogelijk de oorzaak terugvinden in het logbestand /var/log/pm-suspend.log'. Hier staan de hooks in die zijn uitgevoerd en wat de uitvoer van ze was.

Uw eigen hooks aanmaken

Als u iets specifieks met uw systeem wilt doen tijdens het uitvoeren van de slaapstand, dan kunt u uw eigen hook in de map /etc/pm/hooks plaatsen. De hooks in deze map worden op alfabetische volgorde aangeroepen tijdens de slaapstand (dat is de reden waarom de namen allemaal beginnen met 2 cijfers, om het ordenen expliciet te maken) en in omgekeerde volgorde tijdens het hervatten.

Ik geef u hier een voorbeeld van een hook die alleen wat informatie in uw logbestand zal schrijven:

#!/bin/bash
case $1 in
    hibernate)
        echo "Hallo allemaal, we gaan zo naar de slaapstand op schijf!"
        ;;
    suspend)
        echo "Oh, dit keer gaan we naar slaapstand naar RAM. VET!!"
        ;;
    thaw)
        echo "oh, de slaapstand naar schijf is voorbij, het systeem wordt hervat..."
        ;;
    resume)
        echo "hé, de slaapstand naar RAM is voorbij...."
        ;;
    *)  echo "iemand roept me op een totaal verkeerde manier aan."
        ;;
esac

Plaats dit in het bestand /etc/pm/hooks/66dummy, maak het uitvoerbaar met chmod +x /etc/pm/hooks/66dummy en het bestand zal wat nutteloze regels uitvoeren tijdens de slaapstand en het hervatten.

WAARSCHUWING: alle hooks worden als root uitgevoerd. Dit betekent dat u voorzichtig moet zijn bij het aanmaken van tijdelijke bestanden, moet controleren of de variabele 'PATH' correct is ingesteld, etc. om problemen met de veiligheid te voorkomen.

Diverse tips en trucs

slaapstand handmatig starten

Om voor foutopsporing de slaapstand handmatig aan te roepen, zonder dat u HAL of een ander raamwerk hoeft te gebruiken, start als root het script pm-suspend (slaapstand naar RAM) of pm-hibernate (slaapstand naar schijf).

Attentie: dit is alleen bedoeld voor foutopsporing, en u dient goed te weten waar u mee bezig bent wanneer u deze commando's gebruikt.

slaapstand naar RAM gebruiken op computers die niet in de whitelist van s2ram staan

Als u slaapstand naar RAM wilt forceren, dan dient u -f toe te voegen aan de variabele S2RAM_OPTS in het bestand /etc/pm/config. U dient ook alle andere opties die voor uw computer nodig zijn in deze variabele te plaatsen. Hier een voorbeeld:

S2RAM_OPTS="-f -a 3"

Als u slaapstand naar RAM werkend krijgt kunt u uw computer aanmelden voor de whitelist, zoals beschreven op de pagina s2ram.

een hook uitschakelen

Als u niet wilt dat een bepaalde hook wordt uitgevoerd, bijv. omdat deze nutteloos is of zelfs problemen geeft, dan ontvangen we graag een bugrapport daarover. U kunt zo'n module vrij eenvoudig uitzetten door het bestand niet uitvoerbaar te maken met het commando

chmod -x /etc/pm/hooks/de_hook