GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak provést změny v /proc/acpi/wakeup Permanent?

Měl jsem problém s probouzením Ubuntu 12.04 ihned po přechodu do režimu spánku. Problém jsem vyřešil změnou nastavení v /proc/acpi/wakeup, jak je navrženo v této otázce:Jak zabráním okamžitému probuzení z režimu spánku a/nebo hibernace?.

Po změně nastavení systém přejde bezchybně do režimu spánku a zůstane pozastavený, ale poté, co ho znovu probudím, se nastavení v /proc/acpi/wakeup liší od toho, na jaké jsem je nastavil.

Před pozastavením:

cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
SMB0      S4    *disabled  pci:0000:00:03.2
PBB0      S4    *disabled  pci:0000:00:09.0
HDAC      S4    *disabled  pci:0000:00:08.0
XVR0      S4    *disabled  pci:0000:00:0c.0
XVR1      S4    *disabled  
P0P5      S4    *disabled  
P0P6      S4    *disabled  pci:0000:00:15.0
GLAN      S4    *enabled   pci:0000:03:00.0
P0P7      S4    *disabled  pci:0000:00:16.0
P0P8      S4    *disabled  
P0P9      S4    *disabled  
USB0      S3    *disabled  pci:0000:00:04.0
USB2      S3    *disabled  pci:0000:00:04.1
US15      S3    *disabled  pci:0000:00:06.0
US12      S3    *disabled  pci:0000:00:06.1
PWRB      S4    *enabled   
SLPB      S4    *enabled

Říkám systému, aby se pozastavil, a funguje, jak má. Ale později po probuzení se nastavení změní na:

USB0      S3    *disabled  pci:0000:00:04.0
USB2      S3    *enabled   pci:0000:00:04.1
US15      S3    *disabled  pci:0000:00:06.0
US12      S3    *enabled   pci:0000:00:06.1

nebo

USB0      S3    *enabled   pci:0000:00:04.0
USB2      S3    *enabled   pci:0000:00:04.1
US15      S3    *enabled   pci:0000:00:06.0
US12      S3    *enabled   pci:0000:00:06.1

Nějaké nápady?

Děkuji za Vaši odpověď. Bohužel to nevyřešilo můj problém.

všechny

/sys/bus/usb/devices/usb1/power/wakeup
/sys/bus/usb/devices/usb2/power/wakeup
/sys/bus/usb/devices/usb3/power/wakeup
/sys/bus/usb/devices/usb4/power/wakeup

stejně jako

/sys/bus/usb/devices/3-1/power/wakeup

jsou vypnuty a notebook se i přesto probouzí sám hned po uspání. Zdá se, že jediná věc, na kterou reaguje, je nastavení v /proc/acpi/wakeup, které se neustále mění (resetuje) pokaždé, když vypnu/restartuji notebook.

Nejlepší odpověď

Znovu jsem narazil na tento problém na Ubuntu 12.10. Návrhy od uživatele MTS mi bohužel také nefungovaly. Můžete však napsat skript, který automaticky nastaví vlastnosti usb v /proc/acpi/wakeup těsně před každým pozastavením.

Řešení je založeno na vytvoření závěsného háku (na základě tohoto článku Archwiki). Uložte následující jako /usr/lib/pm-utils/sleep.d/45fixusbwakeup a ujistěte se, že je spustitelný (chmod +x /usr/lib/pm-utils/sleep.d/45fixusbwakeup ).

#!/bin/bash
case $1 in
    hibernate)
            echo "Going to suspend to disk!"
            ;;
    suspend)
            echo "Fixing acpi settings."
            for usb in `cat /proc/acpi/wakeup | grep USB | cut -f1`;
            do
                    state=`cat /proc/acpi/wakeup | grep $usb | cut -f3 | cut -d' ' -f1 | tr -d '*'`
                    echo "device = $usb, state = $state"
                    if [ "$state" == "enabled" ]
                    then
                            echo $usb > /proc/acpi/wakeup
                    fi
            done
            echo "Suspending to RAM."
            ;;
    thaw)
            echo "Suspend to disk is now over!"
            ;;
    resume)
            echo "We are now resuming."
            ;;
    *)
            echo "Somebody is callin me totally wrong."
            ;;
esac

Tím se změní stav každého Zařízení USB, které je aktuálně povoleno, je zakázáno. Pokud chcete změnit pouze konkrétní zařízení USB, změňte smyčku for ve skriptu. Například změnit pouze USB1 a USB3 změnit

for usb in `cat /proc/acpi/wakeup | grep USB | cut -f1`;

do

for usb in 'USB1' 'USB3';

Snad to pomůže někomu dalšímu, kdo má stejný problém. Tento přístup za mě problém vyřešil.

Související:Může Ubuntu skutečně spustit všechny programy Windows?
Ubuntu
  1. Jak upgradovat OpenSUSE 12.2 na 12.3 (počítač a server)

  2. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

  3. Linux – Jak otestovat, zda je blokové zařízení pouze pro čtení z /sys nebo /proc?

  1. Jak provést trvalou změnu na .config/user-dirs.dirs?

  2. Jak se aktualizuje /etc/motd?

  3. Jak získám cestu k procesu v Unixu / Linuxu

  1. Jak provést změny v resolv.conf Permanent v Ubuntu [Rychlý tip]

  2. /proc/[pid]/pagemaps a /proc/[pid]/maps | linux

  3. Kdy mám použít /dev/shm/ a kdy /tmp/?