Bagaimana cara mencegah agar saya tidak segera bangun dari penundaan dan / atau hibernasi?

35

Selama beberapa hari, komputer desktop Ubuntu 12.04 saya secara misterius bangun segera setelah pergi ke mode menangguhkan.

Sejak instalasi, komputer laptop Ubuntu 12.10 saya juga telah melanjutkan segera setelah penundaan dan hibernasi.

Bagaimana cara mencegahnya?

Bazon
sumber

Jawaban:

35

Masalah ini mungkin disebabkan oleh sinyal USB yang aneh. gedit /proc/acpi/wakeupmenunjukkan kepada saya, wakeup itu diaktifkan untuk USB0 dan USB2.

sudo -s
echo USB0 > /proc/acpi/wakeup
echo USB2 > /proc/acpi/wakeup

mengalihkannya ke dinonaktifkan (diperiksa gedit /proc/acpi/wakeuplagi atau menyegarkan tampilan file) , dan setelah itu, komputer tetap dalam penangguhan seperti seharusnya. :-)

Bazon
sumber
Solusi ini tidak berhasil untuk saya. PS2K diaktifkan (bangun keyboard) tetapi mengubahnya tidak ada bedanya.
Bryce
4
Dalam kasus saya tidak ada perangkat USB *, sepertinya mereka terhubung secara internal melalui USB-hub: menambahkan EHC1, EHC2 dan XHC ke / proc / acpi / wakeup membantu saya.
Vladimir Rutsky
2
Dalam kasus saya itu XHCI untuk USB 3
Andy
@Bazon, bisakah Anda melihatnya http://askubuntu.com/questions/852600/ubuntu-16-04-wakes-up-immediately-from-suspend-after-installing-fprint-in-lenovodan membantu saya mengetahuinya
Kasun Siyambalapitiya
Bagi saya penonaktifan IGBEbekerja
Kasun Siyambalapitiya
22

Baru-baru ini saya memiliki gejala yang sama pada Asus Zenbook Pro UX501 di Ubuntu 15.04. Perbaikan tepat Bazon tidak berhasil tetapi variasi Vladimir Rutsky berhasil. Secara khusus:

Jika berjalan dari terminal cat /proc/acpi/wakeupmenunjukkan baris berikut

EHC1      S3    *enabled  pci:0000:00:xx.x
EHC2      S3    *enabled  pci:0000:00:xx.x
XHC       S3    *enabled  pci:0000:00:xx.x

(alamat pci mungkin berbeda)

kemudian matikan ketiga ini untuk dinonaktifkan dengan mengeluarkan perintah berikut:

sudo -s
echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHC > /proc/acpi/wakeup
ilikerobots
sumber
Melakukan di atas tidak menyelesaikan masalah saya :(
Kasun Siyambalapitiya
Bagi saya penonaktifan IGBEbekerja, tiga di atas tidak
Kasun Siyambalapitiya
@ilikerrobots Ini tidak memperbaikinya secara permanen, cara memperbaikinya secara permanen
Kasun Siyambalapitiya
GLAN dengan cepat beralih kembali ke diaktifkan. Ada yang tahu kenapa?
Alfred M.
Untuk membuatnya tetap memasukkannya ke dalam cron entry waktunya @reboot. Saya menemukan itu berguna untuk hanya menjalankan gema jika itu sebenarnya diaktifkan dengan meletakkan tes di skrip shell seperti itu egrep -q '^XHC1\s+S[0-9]\s+\*enabled' /proc/acpi/wakeup && echo XHC1 > /proc/acpi/wakeup(perangkat masalah saya adalah XHC1 - chipset USB).
David Schoen
15

Jika Anda tahu perangkat mana yang membangunkan PC Anda, lanjutkan ke langkah pertama untuk mengikuti panduan ini. Jika tidak, buka terminal dan lakukan:

cat /var/log/syslog

Dan temukan perangkat mana yang membangunkan PC Anda.

Jadi sekarang:

  1. tekan di terminal:

    grep . /sys/bus/usb/devices/*/power/wakeup
    

Untuk daftar semua port usb yang membangunkan pc kami.

sudo su

kita sekarang memiliki rootillillage.

2. Saya memiliki 8 port USB dan dalam contoh ini katakanlah saya ingin menonaktifkan USB8, jadi:

echo disabled > /sys/bus/usb/devices/usb8/power/wakeup

Silakan dan coba itu. Sekarang perangkat tertentu di port USB 8 tidak akan membangunkan PC.

Langkah selanjutnya, untuk membuat perubahan permanen setelah setiap boot:

3.

sudo nano /etc/rc.local

Dan kami menempelkan perintah dari langkah 2. Di sana (sebelum pintu keluar 0 tentu saja).

Itu dia.

opsional Hanya jika setelah proses tidur / bangun perangkat USB 8, dalam contoh saya, kembali ke diaktifkan.

  1. Tulis udevjuga aturan untuk menjalankan perintah setelah setiap boot, tidur, bangun.

Buka terminal dan lakukan:

lsusb

Pada informasi id perangkat keyboard Anda, 4 digit pertama adalah id vendor dan 4 digit berikutnya adalah id produk tangkapan layar

Selanjutnya lakukan:

sudo nano /etc/udev/rules.d/10-wakeup.rules

Di mana "bangun" masukkan nama skrip yang Anda inginkan. Nomor 10 adalah prioritas jika Anda memiliki banyak aturan udev lainnya, semakin rendah angka 'aturan' akan dijalankan sebelum yang lain.

Salin tempel ini dan ganti id vendor dan id produk dengan id vendor keyboard dan id produk nirkabel Anda sendiri.

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="062a", ATTRS{idProduct}=="4101" RUN+="/bin/sh -c 'echo disabled > /sys/bus/usb/devices/usb8/power/wakeup'"

* USB8 bagi saya adalah keyboard nirkabel saya (Anda juga dapat melihatnya di tangkapan layar (Bus 008)), ganti dengan milik Anda.

Ctrl+ Ountuk menyimpan, Ctrl+ Xuntuk keluar dan reboot.

Pavlos Theodorou
sumber
Terima kasih! ini terlihat menarik. maukah Anda menambahkan panduan Anda di sini (mengubahnya sehingga membahas masalah khusus dari pertanyaan ini)
geoffrey
Terima kasih. ini tidak seperti yang saya inginkan, tetapi itu membuat saya untuk memperbaiki masalah - dengan memodifikasi file rc.local (masalah saya tidak spesifik untuk port USB). Saya telah memposting solusi saya sendiri, tetapi Anda akan mendapatkan hadiahnya (saya tidak bisa memberikannya sebelum besok)
geoffrey
Mana yang aman untuk dinonaktifkan? Apakah saya akan mengalami masalah jika saya menonaktifkan semua? Satu-satunya yang diaktifkan bagi saya adalah / sys / bus / usb / devices / 1-2 / power / wakeup: enabled
Alfred M.
syslog bahkan tidak menyebutkan apa yang membangunkan komputer
Ken Sharp
5

Untuk membuat perbaikan permanen

(Saya menyusun solusi yang disediakan oleh Bazon, Ilikerobots, dan Pavlos Theodorou - bersama-sama mereka mengatasi masalah khusus saya)

Untuk memperbaiki masalah secara permanen, apakah itu port USB yang membangunkan sistem atau yang lainnya:

  1. Cari tahu apa yang diperbolehkan untuk membangunkan sistem Anda:

gedit / proc / acpi / wakeup

Anda mungkin mendapatkan garis ini atau yang serupa:

EHC1 S3 * diaktifkan pci: 0000: 00: xx.x

EHC2 S3 * diaktifkan pci: 0000: 00: xx.x

XHC S3 * diaktifkan pci: 0000: 00: xx.x

Kemudian buka:

sudo gedit /etc/rc.local

dan tambahkan baris-baris ini (atau serupa, tergantung pada hasil di atas) sebelumnya exit 0

echo EHC1> / proc / acpi / wakeup

echo EHC2> / proc / acpi / wakeup

echo XHC> / proc / acpi / wakeup

geoffrey
sumber
oh saya tidak memikirkannya. tentu saja bisa jadi port lain selain usb. saya senang Anda menyelesaikannya.
Pavlos Theodorou