마우스 움직임이 정지 된 컴퓨터를 깨우지 못하게하려면 어떻게합니까?


32

일시 중단 후 마우스가 분리되어 가끔씩 시스템이 깨어나지 않도록하는 것은 정말 성가신 일입니다. 시스템 설정에서 인터넷 검색 으로이 기능을 비활성화 할 수있는 것을 찾지 못했습니다.

답변:


24

아직 BIOS를 확인하지 않았지만 해결책을 찾았습니다!

간단한 요약 :에서 /proc/acpi/wakeup현재 일시 중지 상태에서 재개 할 수있는 장치를 확인할 수 있습니다. 이 목록에는 소위 "장치"의 이름 (약칭)이 표시됩니다. 예를 들어 "PWRB"는 "전원 버튼"을 의미합니다.

해당 파일에 장치 이름을 쓰면 활성화 / 비활성화간에 전환합니다.

나는 그 정보를 찾은 블로그를 기반으로 한 wake-by-mouse 비활성화에 대한 작은 HowTo를 작성 했습니다 .


1
이것은 내 대답보다 훨씬 잘 들리며 그에 따라 대답을 편집했습니다. 감사!
Robie Basak

2
그래서,이 작품 (단, 난 그냥 사용하는 것을 통과에 통지 sudo작동하지 않습니다 : 하나 관련이있다 sudo su첫째, 다음에 에코 /proc/acpi/wakeup. 그러나, 나는 사람이 할 수있는 방법을 발견했는지 궁금하네요 단지 ? 비활성화 마우스를 나는 모두가 (무선) USB를 통해 연결된 내 데스크탑에서 키보드에서 깨우기도 비활성화됩니다.
Marco

15

모든 포스터 덕분에 마우스 웨이크 업이 큰 불편 함을 느끼고 여기에 내 대답이 있습니다. 더 많은 경우 도움이 될 수 있으므로 솔루션에 왜곡을 추가하고 싶습니다. 에서 3 개의 다른 항목을 비활성화해야했습니다 /proc/acpi/wakeup. 내 장치 : EHC1, EHC2, XHCI. 첫 번째 2는 usb2이고 세 번째는 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

재부팅하십시오.


그래도 문제가 해결되지 않으면 파일 /etc/systemd/system/rc-local.service이 없거나 제대로 구성되지 않았을 수 있습니다.

로 테스트

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

sudo systemctl status rc-local

Systemd로 /etc/rc.local을 활성화하는 방법에 따라 :

파일을 작성하십시오.

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

파일을 저장하고 닫습니다. Nano 텍스트 편집기에서 파일을 저장하려면 Ctrl + O를 누른 다음 Enter를 눌러 확인하십시오. 파일을 종료하려면 Ctrl + X를 누르십시오.

다음을 통해 오류가 없는지 확인하십시오.

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

변경 사항을 보려면 재부팅하십시오.


편집 내용이 마음에 들지 않으면 @cipricus를 신고하여 알려주십시오. 위의 링크에 별도의 답변으로 게시하겠습니다.

6

내 시스템은 우분투 15.10입니다

lsusb마우스 장치가 무엇인지 찾기 위해 명령 을 사용하려고했습니다 . 매우 간단합니다. 입력 lsusb한 다음 마우스를 뽑고 (필자의 경우 Bluetooth 수신기) 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와 함께 작동합니다.
민 응 우옌

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.