ฉันจะป้องกันไม่ให้ตื่นขึ้นมาทันทีจากการระงับและ / หรือไฮเบอร์เนตได้อย่างไร


35

สองสามวันคอมพิวเตอร์เดสก์ท็อป Ubuntu 12.04 ของฉันตื่นขึ้นมาอย่างลึกลับทันทีหลังจากเข้าสู่โหมดพักการทำงาน

ตั้งแต่การติดตั้งคอมพิวเตอร์แล็ปท็อป Ubuntu 12.10 ของฉันก็กลับมาทำงานต่อได้ทันทีหลังจากหยุดชั่วคราวและจำศีล

จะป้องกันได้อย่างไร?

คำตอบ:


35

ปัญหานี้อาจเกิดจากสัญญาณ USB แปลก ๆ gedit /proc/acpi/wakeupแสดงให้ฉันเห็นว่าการปลุกถูกเปิดใช้งานสำหรับ USB0 และ USB2

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

เปลี่ยนเป็นปิดใช้งาน(ทำgedit /proc/acpi/wakeupเครื่องหมายโดยตรวจสอบ อีกครั้งหรือรีเฟรชมุมมองไฟล์)และหลังจากนั้นคอมพิวเตอร์จะหยุดทำงานตามปกติ :-)


วิธีนี้ไม่ได้ผลสำหรับฉัน เปิดใช้งาน PS2K (การปลุกแป้นพิมพ์) แต่การเปลี่ยนแปลงไม่ได้ทำให้แตกต่าง
ไบรซ์

4
ในกรณีของฉันไม่มีอุปกรณ์ USB * ดูเหมือนว่าพวกเขาเชื่อมต่อภายในผ่านฮับ USB: เพิ่ม EHC1, EHC2 และ XHC ไปที่ / proc / acpi / wakeup ช่วยฉัน
Vladimir Rutsky

2
ในกรณีของฉันมันเป็นXHCIสำหรับ USB 3
Andy

@Bazon คุณสามารถโปรดดูhttp://askubuntu.com/questions/852600/ubuntu-16-04-wakes-up-immediately-from-suspend-after-installing-fprint-in-lenovoและช่วยฉันคิดออก
Kasun Siyambalapitiya

สำหรับฉันปิดการใช้งานIGBEทำงาน
Kasun Siyambalapitiya

22

ฉันเพิ่งมีอาการแบบเดียวกันกับ Asus Zenbook Pro UX501 บน Ubuntu 15.04 การแก้ไขที่แน่นอนของ Bazon ไม่ทำงาน แต่การเปลี่ยนแปลงของ Vladimir Rutsky นั้น โดยเฉพาะ:

ถ้าวิ่งออกมาจากขั้วcat /proc/acpi/wakeupแสดงบรรทัดต่อไปนี้

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

(ที่อยู่ pci อาจแตกต่างกัน)

จากนั้นสลับสามรายการนี้เป็นปิดใช้งานโดยออกคำสั่งต่อไปนี้:

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

การดำเนินการด้านบนไม่ได้ช่วยแก้ปัญหาของฉัน :(
Kasun Siyambalapitiya

สำหรับฉันปิดการใช้งานIGBEทำงานด้านบนสามคนไม่ได้
Kasun Siyambalapitiya

@ilikerrobots วิธีนี้ไม่แก้ไขอย่างถาวรวิธีแก้ไขถาวร
Kasun Siyambalapitiya

GLAN เปลี่ยนกลับเป็นเปิดใช้งานอย่างรวดเร็ว มีความคิดอะไรบ้าง
อัลเฟรดเอ็ม

ที่จะทำให้มันยังคงวางไว้ในรายการ cron @rebootหมดเวลาสำหรับ ฉันพบว่ามีประโยชน์ในการรันเสียงสะท้อนถ้าเปิดใช้งานจริงโดยการทดสอบเชลล์สคริปต์อย่างนั้นegrep -q '^XHC1\s+S[0-9]\s+\*enabled' /proc/acpi/wakeup && echo XHC1 > /proc/acpi/wakeup(อุปกรณ์ปัญหาของฉันคือ XHC1 - ชิปเซ็ต USB)
David Schoen

15

หากคุณรู้ว่าอุปกรณ์ใดที่ปลุกพีซีของคุณให้ไปที่ขั้นตอนแรกเพื่อทำตามคำแนะนำ หากคุณไม่เปิด terminal แล้วทำ:

cat /var/log/syslog

และค้นหาว่าอุปกรณ์ใดที่ปลุกพีซีของคุณ

ดังนั้นตอนนี้:

  1. ตีใน terminal:

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

เพื่อแสดงรายการพอร์ต usb ทั้งหมดที่ปลุกพีซีของเรา

sudo su

ตอนนี้เรามีสิทธิ์รูท

2. ฉันมีพอร์ต USB 8 พอร์ตและในตัวอย่างนี้สมมติว่าฉันต้องการปิดการใช้งาน usb8 ดังนั้น:

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

ไปข้างหน้าและทดสอบ ตอนนี้อุปกรณ์เฉพาะในพอร์ต USB 8 จะไม่ปลุกพีซี

ขั้นตอนถัดไปเพื่อทำการเปลี่ยนแปลงแบบถาวรหลังจากบูตแต่ละครั้ง:

3

sudo nano /etc/rc.local

และเราวางคำสั่งจากขั้นตอนที่ 2 ในนั้น (ก่อนทางออก 0 ของหลักสูตร)

แค่นั้นแหละ.

เป็นตัวเลือกเฉพาะในกรณีของฉันหลังจากหลับ / ตื่นกระบวนการอุปกรณ์ USB 8 ย้อนกลับไปที่เปิดใช้งาน

  1. เขียนudevกฎเพื่อดำเนินการคำสั่งหลังจากบูตทุกครั้งหลับตื่นขึ้นมา

เปิดเทอร์มินัลและทำ:

lsusb

ที่ข้อมูลรหัสอุปกรณ์คีย์บอร์ดของคุณตัวเลข 4 ตัวแรกคือรหัสผู้ขายและตัวเลขถัดไป 4 หลักคือรหัสผลิตภัณฑ์ ภาพหน้าจอ

ถัดไปทำ:

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

โดยที่ "wakeup" ป้อนชื่อสคริปต์ที่คุณต้องการ หมายเลข 10 คือลำดับความสำคัญในกรณีที่คุณมีกฎ udev อื่น ๆ จำนวนที่น้อยกว่า 'กฎ' จะถูกเรียกใช้ก่อนกฎอื่น ๆ

คัดลอกวางสิ่งนี้และแทนที่รหัสผู้ขายและรหัสผลิตภัณฑ์ด้วยรหัสผู้จำหน่ายคีย์บอร์ดไร้สายของคุณเองและรหัสผลิตภัณฑ์

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

* usb8สำหรับฉันคือคีย์บอร์ดไร้สายของฉัน (คุณสามารถเห็นได้ในภาพหน้าจอ (Bus 008)) แทนที่ด้วยของคุณเอง

Ctrl+ Oเพื่อบันทึก, Ctrl+ Xเพื่อออกและรีบูต


ขอบคุณ! มันดูน่าสนใจ คุณจะคิดเพิ่มคำแนะนำของคุณได้ที่นี่ (เปลี่ยนมันจึงอยู่ที่ปัญหาเฉพาะของคำถามนี้)
เจฟฟรีย์

ขอบคุณ นี่ไม่ใช่สิ่งที่ฉันต้องการ แต่มันทำให้ฉันสามารถแก้ไขปัญหาได้ - โดยการแก้ไขไฟล์ rc.local (ปัญหาของฉันไม่ได้เฉพาะกับพอร์ต USB) ผมได้โพสต์วิธีการแก้ปัญหาของตัวเอง แต่คุณจะได้รับเงินรางวัล (ฉันไม่สามารถได้รับรางวัลมาก่อนในวันพรุ่งนี้แม้ว่า)
เจฟฟรีย์

สิ่งที่ปลอดภัยที่จะปิดการใช้งาน? ฉันจะประสบปัญหาไหมหากปิดการใช้งานทั้งหมด การเปิดใช้งานเฉพาะสำหรับฉันคือ / sys / บัส / usb / อุปกรณ์ / 1-2 / พลังงาน / ปลุก: เปิดใช้งาน
อัลเฟรดเอ็ม

syslog ไม่ได้พูดถึงสิ่งที่ทำให้คอมพิวเตอร์ตื่นขึ้นด้วย
เคนชาร์ป

5

เพื่อให้การแก้ไขเป็นไปอย่างถาวร

(ฉันกำลังรวบรวมวิธีแก้ปัญหาที่ได้รับจาก Bazon, Ilikerobots และ Pavlos Theodorou - พวกเขาช่วยกันแก้ไขปัญหาเฉพาะของฉัน)

หากต้องการแก้ไขปัญหาอย่างถาวรไม่ว่าจะเป็นพอร์ต USB ที่ปลุกระบบหรือสิ่งอื่น:

  1. ค้นหาสิ่งที่ได้รับอนุญาตให้ปลุกระบบของคุณ:

gedit / proc / acpi / wakeup

คุณอาจได้รับบรรทัดเหล่านี้หรือคล้ายกัน:

EHC1 S3 * เปิดใช้งาน pci: 0000: 00: xx.x

EHC2 S3 * เปิดใช้งาน pci: 0000: 00: xx.x

XHC S3 * เปิดใช้งาน pci: 0000: 00: xx.x

จากนั้นเปิด:

sudo gedit /etc/rc.local

และเพิ่มบรรทัดเหล่านี้ (หรือคล้ายกันขึ้นอยู่กับผลลัพธ์ด้านบน) ก่อน exit 0

echo EHC1> / proc / acpi / wakeup

echo EHC2> / proc / acpi / wakeup

echo XHC> / proc / acpi / wakeup


โอ้ฉันไม่ได้คิดถึงมัน แน่นอนมันอาจเป็นพอร์ตอื่นนอกเหนือจากยูเอสบี ฉันดีใจที่คุณแก้ไขมัน
Pavlos Theodorou
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.