ฉันจะป้องกันการเคลื่อนไหวของเมาส์ไม่ให้ตื่นขึ้นคอมพิวเตอร์ที่ถูกระงับได้อย่างไร


32

มันน่ารำคาญจริง ๆ เพราะฉันต้องถอดปลั๊กเม้าส์หลังจากหยุดทำงานชั่วคราวเพื่อให้แน่ใจว่าการชนเป็นครั้งคราวจะไม่ทำให้ระบบตื่น ฉันไม่พบอะไรเลยในการตั้งค่าระบบซึ่งสามารถปิดใช้งานสิ่งนี้ได้โดยไม่ต้องไปที่อื่น

คำตอบ:


24

ฉันยังไม่ได้ตรวจสอบ BIOS แต่ฉันพบวิธีแก้ปัญหา!

ข้อมูลสรุปสั้น ๆ : ใน/proc/acpi/wakeupคุณจะเห็นว่าอุปกรณ์ใดบ้างที่เปิดใช้งานเพื่อให้สามารถกลับมาทำงานต่อได้ชั่วคราว รายการนั้นจะแสดงชื่อ (ตัวย่อ) ของชื่อ "อุปกรณ์" ตัวอย่าง "PWRB" หมายถึง "ปุ่มเพาเวอร์"

หากคุณเขียนชื่ออุปกรณ์ไปยังไฟล์นั้นคุณจะสลับระหว่างการเปิด / ปิดการใช้งาน

ฉันเขียนHowTo เล็ก ๆ สำหรับปิดใช้งานการปลุกด้วยเมาส์ตามบล็อกที่ฉันพบข้อมูลนั้น


1
ฟังดูดีกว่าคำตอบของฉันและฉันได้แก้ไขคำตอบของฉันแล้ว ขอบคุณ!
Robie Basak

2
ดังนั้นงานนี้ ( แต่ผมสังเกตเห็นว่าในการผ่านเพียงแค่ใช้sudoจะไม่ทำงาน: หนึ่งจะต้องทำsudo suก่อนแล้วสะท้อนไป/proc/acpi/wakeup. แต่ฉันสงสัยว่าทุกคนที่ได้พบวิธีการเพียง ? ปิดการใช้งานเมาส์ฉันมีทั้ง บนเดสก์ท็อปของฉันเชื่อมต่อผ่าน USB (ไร้สาย) และสิ่งนี้จะปิดใช้งานการปลุกจากแป้นพิมพ์ด้วย
Marco

15

ขอขอบคุณผู้โพสต์ทุกคนเนื่องจากเม้าส์เม้าส์เป็นความไม่สะดวกที่สำคัญและฉันได้รับคำตอบที่นี่ ฉันต้องการเพิ่มวิธีการแก้ปัญหาที่อาจช่วยในกรณีเพิ่มเติม ผมต้องปิดการใช้งาน 3 /proc/acpi/wakeupรายการที่แตกต่างกันใน อุปกรณ์ของฉัน: EHC1, EHC2, XHCI. 2 ตัวแรกคือ usb2 และรายการที่ 3 เป็น usb3 โปรดทราบว่าแม้ว่าตัวรับส่งสัญญาณ usb สำหรับเมาส์ของฉันจะเสียบเข้ากับพอร์ต usb2 และไม่มีอะไรอยู่ในพอร์ต usb3 ใด ๆ คอมพิวเตอร์จะปลุกด้วยการเลื่อนเมาส์จนกว่าจะมีการปิดใช้งานทั้ง 3รายการ

$ cat /proc/acpi/wakeup | sort 
Device  S-state   Status   Sysfs node
EHC1      S3    *disabled  pci:0000:00:1d.0
EHC2      S3    *disabled  pci:0000:00:1a.0
GLAN      S4    *enabled   pci:0000:08:00.0
.. ,, ..
USB7      S3    *disabled
WLAN      S3    *disabled  pci:0000:03:00.0
XHCI      S3    *disabled  pci:0000:07:00.0

หากต้องการปิดใช้งานรายการปลุกทุกครั้งที่เริ่มต้นคุณสามารถเพิ่มสิ่งนี้ลงใน/etc/rc.local..

echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHCI > /proc/acpi/wakeup

แก้ไขโดย cipricus:

ฉันกำลังแก้ไขสิ่งนี้เพราะฉันต้องการเพิ่มรายละเอียดเพิ่มเติมเพื่อให้คำถามที่แยกจากกันของฉันถูกปิดเป็นรายการที่ซ้ำกันของคำตอบข้างต้นตามคำตอบนี้ ฉันคิดว่ามันมีประโยชน์มากกว่าการโพสต์เป็นคำตอบแยกต่างหาก

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

sudo sh -c "echo EHC1 > /proc/acpi/wakeup"
sudo sh -c "echo EHC2 > /proc/acpi/wakeup"
sudo sh -c "echo XHCI > /proc/acpi/wakeup"

(ในกรณีของฉันคนแรกก็พอแม้หลังจากการทดสอบกับพอร์ต USB อื่น ๆ )

*** หาก/etc/rc.localไฟล์ไม่มีอยู่ - อ้างอิงจากโพสต์นี้ :

printf '%s\n' '#!/bin/bash' 'exit 0' | sudo tee -a /etc/rc.local
sudo chmod +x /etc/rc.local

ไฟล์ควรมีลักษณะดังนี้:

#!/bin/bash
echo EHC1 > /proc/acpi/wakeup
echo EHC2 > /proc/acpi/wakeup
echo XHCI > /proc/acpi/wakeup

exit 0

Reboot


หากยังใช้งานไม่ได้อาจเป็นเพราะไฟล์/etc/systemd/system/rc-local.serviceหายไปหรือไม่ได้รับการกำหนดค่าอย่างเหมาะสม

ทดสอบด้วย

sudo /etc/init.d/rc.local start

และ

sudo systemctl status rc-local

ต่อไปนี้วิธีการเปิดใช้ /etc/rc.local กับ Systemd :

สร้างไฟล์:

sudo nano /etc/systemd/system/rc-local.service

จากนั้นเพิ่มเนื้อหาต่อไปนี้ลงในนั้น

[Unit]
 Description=/etc/rc.local Compatibility
 ConditionPathExists=/etc/rc.local

[Service]
 Type=forking
 ExecStart=/etc/rc.local start
 TimeoutSec=0
 StandardOutput=tty
 RemainAfterExit=yes
 SysVStartPriority=99

[Install]
 WantedBy=multi-user.target

บันทึกและปิดไฟล์ หากต้องการบันทึกไฟล์ในโปรแกรมแก้ไขข้อความนาโนให้กด Ctrl + O แล้วกด Enter เพื่อยืนยัน หากต้องการออกจากไฟล์กด Ctrl + X

ตรวจสอบทั้งหมดได้ดีโดยไม่มีข้อผิดพลาดด้วย:

sudo systemctl start rc-local.service
sudo systemctl status rc-local.service

รีบูตเพื่อดูการเปลี่ยนแปลง


หากคุณไม่ชอบการแก้ไขของฉันโปรดแจ้งให้เราทราบโดยการตั้งค่าสถานะ @cipricus และฉันจะโพสต์เป็นคำตอบแยกที่เชื่อมโยงกับด้านบน

6

ระบบของฉันคือ Ubuntu 15.10

ฉันพยายามใช้lsusbคำสั่งเพื่อค้นหาอุปกรณ์เมาส์คืออะไร มันง่ายมากคุณพิมพ์lsusbแล้วถอดปลั๊กเมาส์ (ในกรณีของฉันมันคือตัวรับสัญญาณบลูทู ธ ) แล้วพิมพ์lsusbอีกครั้ง อุปกรณ์มีลักษณะดังนี้:

Bus 007 Device 008: ID 24ae:2000

ตอนนี้ค้นหาใน/sys/bus/usb/devices/โฟลเดอร์โดยใช้วิธีเดียวกัน (ถอดปลั๊ก / ปลั๊ก) 7-2*ในกรณีของฉันฉันพบว่าพวกเขาอยู่ที่ไหนสักแห่งในโฟลเดอร์เริ่มต้นด้วย

ตอนนี้พยายามอ่าน idProduct และ idVendor ตัวอย่างเช่น: cat /sys/bus/usb/devices/7-2.3/idProduct=> 2000, =>cat /sys/bus/usb/devices/7-2.3/idVendor 24aeแค่นั้นแหละ.

ในที่สุดฉันก็สร้างสคริปต์ใน/lib/systemd/system-sleepไดเรกทอรีตั้งชื่อตามที่คุณต้องการ

#! /bin/sh

if [ ! -r /sys/bus/usb/devices/7-2.3/power/wakeup ]; then
    exit 0
fi
case "$1" in
    pre )
    echo disabled > /sys/bus/usb/devices/7-2.3/power/wakeup
;;
esac

เสร็จเรียบร้อย.


มันทำงานร่วมกับ Ubuntu 18.04 บนแล็ปท็อปของฉัน
Minh Nguyen

1

สคริปต์นี้แก้ไขปัญหาของฉัน ตรวจสอบมัน

    #!/bin/bash

# allow only one instance
r=$(pidof -x -o $$ ssmonoff.sh)
set -- $r
if [ "${#@}" -ge 1 ]; then
    echo "Script already running. Exit..."
    exit
fi

dbus-monitor --session "type='signal',interface='org.gnome.ScreenSaver'" | ( while read line; do
    if echo $line | grep "boolean true" &> /dev/null; then
            xinput --set-prop "Dell Premium USB Optical Mouse" "Device Enabled" "0"
            xset dpms force off
    else
            xinput --set-prop "Dell Premium USB Optical Mouse" "Device Enabled" "1"
    fi
done )

สิ่งที่คุณต้องทำคือก่อนอื่นเรียกใช้sudo xinput listค้นหาชื่อที่กำหนดของเมาส์ USB ของคุณและวางลงบนสคริปต์ จากนั้นบันทึกไฟล์เป็น "ssmonoff.sh" ทำให้สามารถเรียกใช้งานได้และตั้งค่าให้ทำงานเมื่อเริ่มต้น


1

คำอธิบายที่ดี ฉันเพิ่งเพิ่ม rc.local คำสั่งต่อไปนี้

for d in `cat wakeup |grep enabled|grep -v PS2K|cut -b -4`; do echo $d >/proc/acpi/wakeup ; done

เพื่อปิดการใช้งานทุกอุปกรณ์กว่า PS2K (แป้นพิมพ์ PS2) จากการปลุก ง่ายและทำงาน!


0

อาจมีวิธีเฉพาะสำหรับฮาร์ดแวร์ของคุณซึ่งในกรณีนี้อาจมีตัวเลือกให้ใช้งานผ่านการตั้งค่า BIOS ของระบบ

การไปที่เมนู BIOS ของคุณเพื่อเปลี่ยนการตั้งค่ายังเป็นระบบเฉพาะ โดยปกติแล้วคุณจะต้องกดคีย์หลังจากรีบูตเครื่องและปุ่มสำหรับกดมักจะปรากฏบนหน้าจอ

อย่างไรก็ตามคำตอบของ user138339 ดูเหมือนว่าจะเป็นวิธีทั่วไปมากขึ้นในการบรรลุสิ่งที่คุณต้องการและคุณสามารถทำได้จากระบบที่ทำงานอยู่


0

นี่คือ "การสอน" ทีละขั้นตอนของฉันที่จะทำให้มันทำงานสำหรับคุณ:

  1. ใช้คำสั่งcat /proc/acpi/wakeupเพื่อแสดงรายการอุปกรณ์ที่ปลุก
  2. ใช้คำสั่งsudo sh -c "echo XXXX >/proc/acpi/wakeup"(แทนที่ "XXXX" ด้วยรหัสอุปกรณ์ของคุณ) เพื่อสลับสถานะอุปกรณ์ (เปิด / ปิดการใช้งาน) ไปที่อุปกรณ์หนึ่งครั้งและพยายามระงับเครื่องของคุณและปลุกโดยใช้อุปกรณ์ที่คุณต้องการปิดการใช้งานจนกว่าอุปกรณ์ที่สมควรจะไม่สามารถปลุกเครื่องได้ อย่าลืมเปิดใช้งานอุปกรณ์ที่คุณไม่ต้องการปิดการใช้งานเสมอ
  3. เมื่อคุณพบอุปกรณ์ที่เหมาะสมที่สร้างบนเดสก์ท็อปไฟล์ "acpi_wakeup" ที่มีรหัสต่อไปนี้: #!/bin/sh printf "XXXX" > /proc/acpi/wakeup (อย่าลืมแทนที่ "XXXX" ด้วยรหัสอุปกรณ์ของคุณ)
  4. /etc/init.d/ย้ายหรือคัดลอกไฟล์ไปยังโฟลเดอร์ ในการคัดลอกไฟล์ใช้คำสั่งต่อไปนี้: sudo cp /home/USERNAME/Desktop/acpi_wakeup /etc/init.d/acpi_wakeup (แทนที่ "USERNAME" ด้วยชื่อผู้ใช้จริงของคุณ)
  5. ทำให้ไฟล์ปฏิบัติการ: sudo chmod 755 /etc/init.d/acpi_wakeup
  6. จากนั้นใช้ 'update-rc.d' เพื่อสร้างลิงก์สัญลักษณ์ที่ต้องการโดยอัตโนมัติในไดเรกทอรีอื่น: sudo update-rc.d acpi_wakeup defaults (มันแสดงWARNING: ...missing LSB tags and overridesแต่มันก็โอเคคุณไม่จำเป็นต้องกังวลเกี่ยวกับมัน)
  7. รีบูทคอมพิวเตอร์ของคุณ

แหล่งที่มาและการอ่านเพิ่มเติม:

http://www.das-werkstatt.com/forum/werkstatt/viewtopic.php?f=7&t=1985 http://ubuntuforums.org/showthread.php?t=814939&page=3

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