Làm cách nào để ngăn chặn việc thức dậy ngay lập tức do đình chỉ và / hoặc ngủ đông?


35

Trong vài ngày, máy tính để bàn Ubuntu 12.04 của tôi đã thức dậy một cách bí ẩn ngay sau khi chuyển sang chế độ treo.

Kể từ khi cài đặt, máy tính xách tay Ubuntu 12.10 của tôi cũng đã hoạt động trở lại ngay sau khi tạm dừng và ngủ đông.

Làm thế nào để ngăn chặn những điều đó?

Câu trả lời:


35

Vấn đề này có thể là do tín hiệu USB lạ. gedit /proc/acpi/wakeupcho tôi thấy, thức dậy đó đã được kích hoạt cho USB0 và USB2.

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

chuyển chúng thành bị vô hiệu hóa (được kiểm tra gedit /proc/acpi/wakeuplại hoặc làm mới chế độ xem tệp) và sau đó, máy tính sẽ tạm dừng như bình thường. :-)


Giải pháp này không hiệu quả với tôi. PS2K đã được bật (đánh thức bàn phím) nhưng việc thay đổi nó không tạo ra sự khác biệt.
Bryce

4
Trong trường hợp của tôi không có thiết bị USB *, có vẻ như chúng được kết nối nội bộ thông qua cổng USB: thêm EHC1, EHC2 và XHC vào / Proc / acpi / Wakeup đã giúp tôi.
Vladimir Rutsky

2
Trong trường hợp của tôi, đó là XHCI cho USB 3
Andy

@Bazon bạn có thể vui lòng xem http://askubuntu.com/questions/852600/ubuntu-16-04-wakes-up-immediately-from-suspend-after-installing-fprint-in-lenovovà giúp tôi tìm ra nó
Kasun Siyambalapitiya

Đối với tôi, vô hiệu hóa IGBElàm việc
Kasun Siyambalapitiya

22

Gần đây tôi có triệu chứng tương tự trên Asus Zenbook Pro UX501 trên Ubuntu 15.04. Bản sửa lỗi chính xác của Bazon không hoạt động nhưng biến thể của Vladimir Rutsky thì có. Đặc biệt:

Nếu chạy từ thiết bị đầu cuối cat /proc/acpi/wakeuphiển thị các dòng sau

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

(địa chỉ pci có thể khác nhau)

sau đó chuyển ba cái này thành vô hiệu hóa bằng cách ban hành các lệnh sau:

sudo -s
echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHC > /proc/acpi/wakeup

Làm ở trên không giải quyết vấn đề của tôi :(
Kasun Siyambalapitiya

Đối với tôi IGBE, việc vô hiệu hóa đã hoạt động, trên ba không
Kasun Siyambalapitiya

@ilikerrobots Điều này không khắc phục được vĩnh viễn, làm thế nào để khắc phục nó vĩnh viễn
Kasun Siyambalapitiya

GLAN nhanh chóng chuyển trở lại để kích hoạt. Bất cứ ý tưởng tại sao?
Alfred M.

Để làm cho nó tồn tại, đặt nó trong một mục cron được định thời gian cho @reboot. Tôi thấy hữu ích khi chỉ chạy echo nếu nó thực sự được kích hoạt bằng cách đặt thử nghiệm trong tập lệnh shell như vậy egrep -q '^XHC1\s+S[0-9]\s+\*enabled' /proc/acpi/wakeup && echo XHC1 > /proc/acpi/wakeup(thiết bị có vấn đề của tôi là XHC1 - chipset USB).
David Schoen

15

Nếu bạn biết thiết bị nào đánh thức PC của bạn, hãy đến bước đầu tiên để làm theo hướng dẫn. Nếu bạn không, sau đó mở terminal và làm:

cat /var/log/syslog

Và tìm thiết bị nào đang đánh thức PC của bạn.

Vậy bây giờ:

  1. đánh trong thiết bị đầu cuối:

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

Để liệt kê tất cả các cổng usb đánh thức máy tính của chúng tôi.

sudo su

bây giờ chúng ta có quyền riêng tư gốc.

2.Tôi có 8 cổng USB và trong ví dụ này, hãy nói rằng tôi muốn tắt usb8, vì vậy:

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

Đi trước và kiểm tra nó. Bây giờ thiết bị cụ thể trong cổng USB 8 sẽ không đánh thức PC.

Bước tiếp theo, để thay đổi vĩnh viễn sau mỗi lần khởi động:

3.

sudo nano /etc/rc.local

Và chúng tôi dán lệnh từ bước 2. Trong đó (trước khi thoát 0 tất nhiên).

Đó là nó.

tùy chọn Chỉ khi sau khi ngủ / thức dậy, thiết bị USB 8, trong ví dụ của tôi, trở lại kích hoạt.

  1. Viết một udevquy tắc quá để thực hiện lệnh sau mỗi lần khởi động, ngủ, thức dậy.

Mở một thiết bị đầu cuối và làm:

lsusb

Tại thông tin id thiết bị bàn phím của bạn, 4 chữ số đầu tiên là id nhà cung cấp và 4 chữ số tiếp theo là id sản phẩm ảnh chụp màn hình

Tiếp theo làm:

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

Trong đó "thức dậy" nhập tên tập lệnh bạn muốn. Số 10 là ưu tiên trong trường hợp bạn có nhiều quy tắc udev khác, số 'quy tắc' càng thấp sẽ được thực thi trước các quy tắc khác.

Sao chép dán này và thay thế id nhà cung cấp và id sản phẩm bằng id nhà cung cấp bàn phím không dây và id sản phẩm của bạn.

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

* usb8 đối với tôi là bàn phím không dây của tôi (bạn cũng có thể thấy trong ảnh chụp màn hình (Bus 008)), hãy thay thế nó bằng bàn phím của riêng bạn.

Ctrl+ Ođể lưu, Ctrl+ Xđể thoát và khởi động lại.


cảm ơn! Điều này có vẻ thú vị. bạn có phiền khi thêm hướng dẫn của mình vào đây không (thay đổi nó để giải quyết vấn đề cụ thể của câu hỏi này)
geoffrey

cảm ơn. đây không phải là điều tôi muốn, nhưng tôi phải khắc phục sự cố - bằng cách sửa đổi tệp RC.local (vấn đề của tôi không dành riêng cho các cổng USB). Tôi đã đăng giải pháp của riêng mình, nhưng bạn sẽ nhận được tiền thưởng (mặc dù tôi không thể trao giải trước ngày mai)
geoffrey

Cái nào an toàn để vô hiệu hóa? Tôi sẽ gặp vấn đề nếu tôi vô hiệu hóa tất cả? Kích hoạt duy nhất đối với tôi là / sys / bus / usb / thiết bị / 1-2 / power / Wakeup: được bật
Alfred M.

syslog thậm chí không đề cập đến những gì đang đánh thức máy tính
Ken Sharp

5

Để sửa chữa vĩnh viễn

(Tôi đang biên dịch các giải pháp được cung cấp bởi Bazon, Ilikerobots và Pavlos Theodorou - cùng nhau giải quyết vấn đề cụ thể của tôi)

Để khắc phục sự cố vĩnh viễn, cho dù đó là cổng USB đánh thức hệ thống hay điều gì khác:

  1. Tìm hiểu những gì được phép đánh thức hệ thống của bạn:

gedit / Proc / acpi / thức dậy

Bạn có thể nhận được những dòng này hoặc tương tự:

EHC1 S3 * đã bật pci: 0000: 00: xx.x

EHC2 S3 * đã bật pci: 0000: 00: xx.x

XHC S3 * đã bật pci: 0000: 00: xx.x

Sau đó mở:

sudo gedit /etc/rc.local

và thêm các dòng này (hoặc tương tự, tùy thuộc vào kết quả ở trên) trước exit 0

tiếng vang EHC1> / Proc / acpi / thức dậy

tiếng vang EHC2> / Proc / acpi / thức dậy

tiếng vang XHC> / Proc / acpi / thức dậy


oh tôi đã không nghĩ về nó. tất nhiên nó có thể là một cổng khác ngoài usb. Tôi rất vui vì bạn đã giải quyết nó.
Pavlos Theodorou
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.