/ Proc / acpi / wakeup dosyasında nasıl değişiklik yapabilirim?


17

Askıya alındıktan hemen sonra uyanma Ubuntu 12.04 ile ilgili bir sorun yaşadım. Bu soruda önerildiği gibi / proc / acpi / wakeup içindeki ayarları değiştirerek sorunu çözdüm: Hemen uyandırmayı askıya alma ve / veya hazırda bekletme modundan nasıl koruyabilirim? .

Ayarları değiştirdikten sonra, sistem sorunsuz bir şekilde askıya alınır ve askıda kalır, ancak uyandıktan sonra / proc / acpi / wakeup içindeki ayarlar onları ayarladığımdan farklıdır.

Askıya alınmadan önce:

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

Sisteme askıya almasını söylüyorum ve olması gerektiği gibi çalışıyor. Ancak daha sonra uyandıktan sonra ayarlar şu şekilde değiştirilir:

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

veya

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

Herhangi bir fikir?


Cevabınız için teşekkürler. Maalesef sorunumu çözmedi.

hepsi

/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

Hem de

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

devre dışı bırakılmış durumda ve dizüstü bilgisayar uykuya daldıktan hemen sonra kendi kendine uyanıyor. Tepki vermesi gereken tek şey, / proc / acpi / uyandırma ayarları, dizüstü bilgisayarımı her kapatıp açtığımda değişmeye (sıfırlamaya) devam ediyor.

Yanıtlar:


11

Bu sorunla Ubuntu 12.10'da tekrar karşılaştım. MTS kullanıcısının önerileri maalesef benim için de işe yaramadı. Ancak, /proc/acpi/wakeupher askıya alınmadan hemen önce usb özelliklerini otomatik olarak ayarlamak için bir komut dosyası yazabilirsiniz .

Çözüm, askıya alma kancası oluşturmaya dayanmaktadır ( bu Archwiki makalesine dayanarak ). Aşağıdakini farklı kaydedin ve /usr/lib/pm-utils/sleep.d/45fixusbwakeupyürütülebilir ( chmod +x /usr/lib/pm-utils/sleep.d/45fixusbwakeup) olduğundan emin olun .

#!/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

Bunun yaptığı, şu anda etkin olan her USB aygıtının durumunu devre dışı bırakmaktır. Yalnızca belirli USB aygıtlarını değiştirmek istiyorsanız, koddaki for döngüsünü değiştirin. Örneğin, yalnızca USB1 ve USB3 değişikliğini değiştirmek için

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

için

for usb in 'USB1' 'USB3';

Umarım bu aynı sorunu yaşayan başka birine yardımcı olur. Bu yaklaşım benim için sorunu çözdü.


1
Teşekkürler! Sony Vaio dizüstü bilgisayarımdaki USB cihazlarından uyanmayı devre dışı bırakmak için bu komut dosyasını değiştirdim: gist.github.com/rutsky/1ed8e9779f0b2941c5a6
Vladimir Rutsky

Ben LID açık (gerçekten benim açımdan gerçekten aptal ve sinir bozucu özelliği) uyandırma devre dışı bırakmak için komut dosyasını değiştirdim. Teşekkür ederim!
Gumkins

Bu ekstra kullanışlı kanca Ubuntu ve Kubuntu'da çalışır, ancak Xubuntu 15.04'te çalışmaz. Acaba neden ... :(
Reloader

1
İşte pm-utils yerine systemd uyku kancası için Vladimir Rutsky'den değiştirilmiş komut dosyası: gist.github.com/kepi/9dea7aee8a59f3e7c10a
Kepi

1
Bu Ubuntu 16.04 için güncellenebilseydi, harika olurdu. Buradan çözüm kullandım: askubuntu.com/a/620555/463546 (eski çözüm), ancak toplamda biraz hantal.
Aleksandr Dubinsky

9

Belki http://forum.xbmc.org/showthread.php?tid=121158 yardımcı olur?

Yazdığı bu:

3.2 çekirdeğe güncelleme yapanlar için (son kök istismarından dolayı herkes olmalı), USB uyandırma işleminizin muhtemelen bozuk olduğunu fark edeceksiniz. Varsayılan uyandırma politikasını değiştirdiler ( http://www.spinics.net/lists/linux-usb/msg53661.html ), bu nedenle birkaç değişiklik yapmanız gerekir:

  • artık uyandırmayı etkinleştirmenize gerek yok /proc/acpi/wakeup, varsayılan olarak etkindir
  • içindeki cihaza ek olarak USB hub için uyandırmayı etkinleştirmeniz gerekir /sys/bus/usb/devices/*/power/wakeup

Yani, bu:

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

Oluyor:

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

Umarım bu başkalarının da aynı sorunu gidermesini önler.


2

Ubuntu 15+ için systemdbunun yerine kullanmalısınız rc.local. Google'a "Systemd hizmeti oluşturma" ve talimatları uygulayabilirsiniz, ancak çıktıyı yönlendirmenin /proc/acpi/wakeupzor olduğunu unutmayın . Düzgün çalışması için aşağıdaki gibi bir şey yapmanız gerekir:

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

Hizmet dosyası için örnek çıktı (ör. /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

Veya burada bu özünde

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.