मैं स्थायी / acpi / वेकअप में परिवर्तन कैसे करूं?


17

मैं अपने Ubuntu 12.04 के साथ एक समस्या थी सस्पेंड में जाने के तुरंत बाद जागना। मैंने इस प्रश्न में सुझाए अनुसार / proc / acpi / awup में सेटिंग्स बदलकर समस्या का हल किया: मैं तत्काल सस्पेंड और / या हाइबरनेशन को कैसे रोक सकता हूं?

सेटिंग्स को बदलने के बाद, सिस्टम त्रुटिपूर्ण रूप से निलंबित हो जाता है और निलंबित रहता है, लेकिन जब मैं इसे वापस जगाता हूं, तो / proc / acpi / awup में सेटिंग्स मेरे द्वारा सेट किए गए से भिन्न होती हैं।

सस्पेंड होने से पहले:

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

मैं सिस्टम को निलंबित करने के लिए कहता हूं, और यह उसी तरह काम करता है जैसे इसे करना चाहिए। लेकिन बाद में इसे जगाने के बाद, सेटिंग्स को या तो बदल दिया जाता है:

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

या

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

कोई विचार?


आपकी प्रतिक्रिया के लिए धन्यवाद। दुर्भाग्य से इसने मेरी समस्या का समाधान नहीं किया।

के सभी

/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

साथ ही साथ

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

निष्क्रिय करने के लिए सेट कर रहे हैं, और नोटबुक अभी भी सोने के लिए जा रहा है खुद के द्वारा सही जागो। केवल एक ही चीज़ जो प्रतिक्रिया करने के लिए लगती है, वह है / proc / acpi / awup में सेटिंग, जो कि हर बार जब मैं अपनी नोटबुक को पावर ऑफ / रिस्टार्ट / रीस्टार्ट करता हूं, तो उसे बदलते (रीसेट) करता रहता है।

जवाबों:


11

मैं Ubuntu 12.10 पर फिर से इस समस्या में भाग गया। दुर्भाग्य से उपयोगकर्ता एमटीएस के सुझाव भी मेरे काम नहीं आए। हालाँकि, आप /proc/acpi/wakeupप्रत्येक निलंबन से ठीक पहले usb गुणों को स्वचालित रूप से सेट करने के लिए एक स्क्रिप्ट लिख सकते हैं ।

समाधान एक सस्पेंड हुक ( इस Archwiki लेख पर आधारित ) बनाने पर आधारित है । निम्न के रूप में सहेजें /usr/lib/pm-utils/sleep.d/45fixusbwakeup, और इसे निष्पादन योग्य बनाने के लिए सुनिश्चित करें ( 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

यह क्या करता है वर्तमान में अक्षम करने के लिए सक्षम किए गए प्रत्येक USB डिवाइस की स्थिति को बदल दें । यदि आप केवल विशिष्ट USB उपकरणों को बदलना चाहते हैं, तो स्क्रिप्ट में लूप को बदलें। उदाहरण के लिए केवल USB1 और USB3 परिवर्तन को बदलें

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

सेवा

for usb in 'USB1' 'USB3';

उम्मीद है कि यह किसी और की मदद करता है जिसे एक ही समस्या है। इस दृष्टिकोण ने मेरे लिए समस्या हल कर दी।


1
धन्यवाद! मैंने अपने Sony Vaio लैपटॉप पर USB डिवाइसेस से wakup को अक्षम करने के लिए इस स्क्रिप्ट को संशोधित किया: gist.github.com/rutsky/1ed8e9779f0b2941c5a6
व्लादिमीर रुटस्की

मैंने एलआईडी ओपन (वास्तव में मेरे दृष्टिकोण से बेवकूफ और कष्टप्रद विशेषता) पर वेक अप को अक्षम करने के लिए आपकी स्क्रिप्ट को संशोधित किया। धन्यवाद!
गमकिंस

यह अतिरिक्त उपयोगी हुक उबंटू और कुबंटू में काम करता है, लेकिन ज़ुबांटा 15.04 में नहीं। मुझे आश्चर्य है कि क्यों ... :(
रीलोडर

1
यहाँ शाम- बर्तनों के
Kepi

1
अगर इसे Ubuntu 16.04 के लिए अपडेट किया जा सकता है, तो यह बहुत अच्छा होगा। मैंने यहां से समाधान का उपयोग किया: askubuntu.com/a/620555/463546 (पुराना समाधान), लेकिन यह कुल में थोड़ा बोझिल है।
Aleksandr Dubinsky

9

शायद http://forum.xbmc.org/showthread.php?tid=121158 मदद करेगा?

यह वही है जो यह कहता है:

जो लोग 3.2 कर्नेल में अपडेट कर रहे हैं (जो कि हाल ही में हुए रूट शोषण के कारण सभी को होना चाहिए), आप देखेंगे कि आपका USB वेकअप संभवतः टूट गया है। उन्होंने डिफ़ॉल्ट वेकअप नीति ( http://www.spinics.net/lists/linux-usb/msg53661.html ) बदल दी है , इसलिए आपको कुछ बदलाव करने होंगे:

  • अब आपको वेकअप को सक्षम करने की आवश्यकता नहीं है /proc/acpi/wakeup, यह डिफ़ॉल्ट रूप से सक्षम है
  • आपको डिवाइस के अतिरिक्त USB हब के लिए वेकअप को सक्षम करने की आवश्यकता है /sys/bus/usb/devices/*/power/wakeup

तो यह:

echo USB1 > /proc/acpi/wakeup
echo enabled > /sys/bus/usb/devices/3-1/power/wakeup

हो जाता है:

echo enabled > /sys/bus/usb/devices/usb3/power/wakeup
echo enabled > /sys/bus/usb/devices/3-1/power/wakeup

उम्मीद है कि यह दूसरों को उसी समस्या के निवारण से बचाता है।


2

Ubuntu 15+ के लिए, आपको उपयोग करना होगा systemd इसके बजायrc.local । आप "सिस्टम सिस्टम सेवा बनाना" और निर्देशों का पालन कर सकते हैं, लेकिन ध्यान दें कि आउटपुट को पुनर्निर्देशित करना /proc/acpi/wakeupमुश्किल है। इसे सही ढंग से काम करने के लिए, आपको कुछ ऐसा करना होगा:

/bin/sh -c '/bin/echo XHC > /proc/acpi/wakeup'

सेवा फ़ाइल के लिए उदाहरण आउटपुट (उदाहरण के लिए /etc/systemd/system/suspendfix.service):

[Unit]
Description=fix to prevent system from waking immediately after suspend

[Service]
ExecStart=/bin/sh -c '/bin/echo XHC > /proc/acpi/wakeup'
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

या यहाँ इस गेस में

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.