Fouten in ACPI-slaapstand oplossen

Ga naar: navigatie, zoeken


Fouten in ACPI-slaapstand oplossen

Dit artikel gaat over "hardcore"-debugging van ACPI-slaapstand (slaapstand naar schijf en RAM)

Sinds SUSE 9.3 moet slaapstand naar schijf zonder grote problemen op de meeste computers werken. Bekende kwesties zijn SATA- en SCSI-schijven en propriëtaire X-stuurprogramma's, in het bijzonder fglrx van ATI.

SATA-schijven horen sinds openSUSE 10.2 goed te werken.

De genoemde tips zijn over het algemeen geldig voor slaapstand naar schijf, alhoewel ze hopelijk niet nodig zijn :-)

Slaapstand naar RAM is wat lastiger op te zetten. Alhoewel het op veel laptops (en enkele desktops) werkt, werkt het zelden meteen. Het probleem op veel computers waarop het in principe werkt is dat de grafische kaart niet correct wordt geïnitialiseerd tijdens het hervatten. Dit betekent vaak dat de achtergrondverlichting van het laptopscherm uit blijft. Veel tips over hoe u dit kunt oplossen kunt u vinden in het artikel s2ram. s2ram is een programma dat de meeste bekende omzeilingen implementeert om "het licht weer aan te krijgen" na het hervatten. Het programma is inbegrepen in het pakket suspend. U kunt aanvullende informatie vinden in de kerneldocumentatie (pakket "kernel-source"), in het bestand /usr/src/linux/Documentation/power/video.txt.

Voor de eerste pogingen om slaapstand naar RAM werkend te krijgen is het verstandig om met een minimaal systeem te beginnen en stap-voor-stap op te werken naar een compleet functionerend systeem. Dit minimale systeem wordt hier beschreven.

Om de parameter vga=... comfortabel op de GRUB-prompt te kunnen instellen (de kernel herkent alleen het eerste vga-steekwoord) kunt u deze parameter het beste in /boot/grub/menu.lst plaatsen na het steekwoord "showopts", zodat u deze tijdens elke start kunt zien en bewerken.

Een corresponderende sectie zou er als volgt kunnen uitzien:

###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 9.3
    kernel (hd0,4)/vmlinuz root=/dev/hda7 selinux=0 splash=silent sysrq=yes resume=/dev/hda6 showopts vga=0x342 
    initrd (hd0,4)/initrd

Om met een minimale configuratie te testen, voer "init=/bin/bash" in bij de opstartopties in de bootloader. De kernel start nu rechtstreeks op in een shell zonder door alle opstartscripts te lopen. Nu kunnen we proberen om de slaapstand handmatig aan te roepen: Koppel /proc en /sys aan

mount /proc
mount /sys

Voor slaapstand naar schijf, activeer hier de swap. Niet nodig voor slaapstand naar RAM:

# swapon -a

Start slaapstand naar RAM ("disk" voor slaapstand naar schijf):

echo mem > /sys/power/state

De computer moet nu in de slaapstand gaan (meestal knippert er een LED). Maak de computer wakker (afhankelijk van de pc) met de power-knop, door het deksel te sluiten en openen, of door op de Fn-toets te drukken (de power-led gaat weer aan). De LED van de harde schijf knippert waarschijnlijk kortstondig maar zou dan weer uit moeten gaan. Als het beeldscherm actief is en de vorige inhoud is zichtbaar is het experiment geslaagd: het werkt. Als het scherm zwart blijft, dan gaan we vanaf hier verder.

Controleer eerst of alleen het beeldscherm zwart blijft of dat de computer volledig vast is gelopen. Voer blind dit commando in:

find /

Als de LED van de harde schijf nu knippert, dan lijkt de rest van het systeem te werken, alleen de grafische kaart vraagt de nodige aandacht. Het find-commando kunt u niet normaal beëindigen, dus u dient de computer te resetten.

Als alles tot dusver werkt, ga dan verder met de hints uit het artikel s2ram. Als u er in geslaagd bent de slaapstand naar RAM werkend te krijgen, rapporteer dit dan bij ons zodat we uw computer kunnen toevoegen aan de whitelist.