Внесите постоянные изменения в `/ proc / acpi / wakeup` (и остановите мышь usb от пробуждения ноутбука) [duplicate]

Это действительно раздражает, поскольку я должен отключить мышь после приостановки, чтобы гарантировать, что случайный удар не пробуждает систему. Я ничего не обнаружил в системных настройках, которые могли бы отключить это ни путем поиска.

24
задан 26 April 2013 в 19:31

14 ответов

Я еще не проверял BIOS, но нашел решение!

Краткое описание: В /proc/acpi/wakeup вы можете видеть, какие устройства в настоящее время разрешены для возобновления с приостановки. В этом списке показаны имена (сокращенные) так называемых «Устройства». Пример: «PWRB» означает «кнопка питания».

Если вы пишете имена устройств в этом файле, вы переключаете их между включенными / отключенными.

Я написал небольшую HowTo для отключения пробуждения -by-mouse, основанный на блоге, где я нашел эту информацию.

19
ответ дан 17 July 2018 в 13:48

Благодаря всем плакатам, когда мышь пробуждает большое неудобство, и я получил ответы здесь. Я хочу добавить свой поворот к решениям, поскольку это может помочь в большем количестве случаев. Мне пришлось отключить 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

все 3

Я редактирую это, потому что мне нужно было добавить более подробную информацию, чтобы отдельный мой вопрос был закрыт как дубликат вышеизложенного на основе этого ответа; Я думаю, что это более полезно, чем опубликовать как отдельный ответ.

*** Проверьте, какие элементы необходимо отключить - как указано здесь - для каждого из элементов, которые были опубликованы как 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

Перезагрузка.

10
ответ дан 17 July 2018 в 13:48

Это мой пошаговый «учебник», чтобы он работал для вас:

Используйте команду cat /proc/acpi/wakeup, чтобы показать список устройств пробуждения. Используйте команду sudo sh -c "echo XXXX >/proc/acpi/wakeup" (замените «XXXX» «с кодом вашего устройства», чтобы переключить состояние устройства (включено / отключено). Идите по одному устройству за раз и попробуйте приостановить работу своего устройства и разбудить его с помощью устройства, которое вы хотите отключить, до тех пор, пока заслуженное устройство не сможет разбудить машину. Не забывайте всегда включать обратно устройства, которые вы не хотите отключать. Когда вы найдете нужное устройство, создайте в своем рабочем столе файл acpi_wakeup, содержащий следующий код: #!/bin/sh printf "XXXX" > /proc/acpi/wakeup (не забудьте заменить «XXXX» на код вашего устройства) Переместите или скопируйте файл в папку /etc/init.d/. Чтобы скопировать файл, используйте следующую команду: sudo cp /home/USERNAME/Desktop/acpi_wakeup /etc/init.d/acpi_wakeup (замените «USERNAME» на свое фактическое имя пользователя) Сделайте исполняемый файл: sudo chmod 755 /etc/init.d/acpi_wakeup Затем используйте «update-rc.d», чтобы автоматически создавать необходимые символические ссылки в других каталогах: sudo update-rc.d acpi_wakeup defaults (он показывает WARNING: ...missing LSB tags and overrides, но все в порядке. Вам не нужно беспокоиться об этом) Перезагрузите компьютер.

Источники и дальнейшее чтение:

Источники и дальнейшее чтение:

1
ответ дан 17 July 2018 в 13:48

Отличное объяснение. Я просто добавил к 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
ответ дан 17 July 2018 в 13:48

Моя система Ubuntu 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

Все сделано.

3
ответ дан 17 July 2018 в 13:48

Может быть определен способ вашего оборудования, и в этом случае этот параметр может быть доступен через настройки BIOS вашей системы.

Доступ к вашему меню BIOS для изменения настроек также зависит от системы. Обычно вы нажимаете клавишу сразу после перезагрузки, а клавиша для нажатия часто отображается на экране.

Однако ответ пользователя138339 кажется более общим способом достижения того, что вам нужно, и вы можете сделать это из работающая система.

0
ответ дан 17 July 2018 в 13:48

этот скрипт решил мою проблему. проверьте это.

#!/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», сделайте его исполняемым и установите для запуска при запуске.

0
ответ дан 17 July 2018 в 13:48

Я еще не проверял BIOS, но нашел решение!

Краткое описание: В /proc/acpi/wakeup вы можете видеть, какие устройства в настоящее время разрешены для возобновления с приостановки. В этом списке показаны имена (сокращенные) так называемых «Устройства». Пример: «PWRB» означает «кнопка питания».

Если вы пишете имена устройств в этом файле, вы переключаете их между включенными / отключенными.

Я написал небольшую HowTo для отключения пробуждения -by-mouse, основанный на блоге, где я нашел эту информацию.

19
ответ дан 20 July 2018 в 13:52
  • 1
    Это звучит намного лучше, чем мой ответ, и я отредактировал свой ответ соответственно. Благодаря! – Robie Basak 8 March 2013 в 15:59
  • 2
    Итак, это работает (однако, я заметил попутно, что просто использование sudo не будет работать: сначала нужно сделать sudo su, затем эхо-сигнал /proc/acpi/wakeup. Однако мне интересно, нашел ли кто-нибудь способ на просто отключить мышь? У меня есть на моем рабочем столе, подключенном через (беспроводной) USB, и это также отключит пробуждение с клавиатуры. – Marco 3 October 2014 в 12:38

Благодаря всем плакатам, когда мышь пробуждает серьезное неудобство, и я получил свои ответы здесь. Я хочу добавить свой поворот к решениям, поскольку это может помочь в большем количестве случаев. Мне пришлось отключить 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

все 3

Я редактирую это, потому что мне нужно было добавить более подробную информацию, чтобы отдельный мой вопрос был закрыт как дубликат вышеизложенного на основе этого ответа; Я думаю, что это более полезно, чем опубликовать как отдельный ответ.

*** Проверьте, какие элементы необходимо отключить - как указано здесь - для каждого из элементов, которые были опубликованы как 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

Перезагрузка.

10
ответ дан 20 July 2018 в 13:52
  • 1
    Если вам не нравится мое редактирование, сообщите мне, отметив @cipricus, и я отправлю вам отдельный ответ, связанный с вышеуказанным. – cipricus 21 May 2018 в 15:07

Это мой пошаговый «учебник», чтобы он работал для вас:

Используйте команду cat /proc/acpi/wakeup, чтобы показать список устройств пробуждения. Используйте команду sudo sh -c "echo XXXX >/proc/acpi/wakeup" (замените «XXXX» «с кодом вашего устройства», чтобы переключить состояние устройства (включено / отключено). Идите по одному устройству за раз и попробуйте приостановить работу своего устройства и разбудить его с помощью устройства, которое вы хотите отключить, до тех пор, пока заслуженное устройство не сможет разбудить машину. Не забывайте всегда включать обратно устройства, которые вы не хотите отключать. Когда вы найдете нужное устройство, создайте в своем рабочем столе файл acpi_wakeup, содержащий следующий код: #!/bin/sh printf "XXXX" > /proc/acpi/wakeup (не забудьте заменить «XXXX» на код вашего устройства) Переместите или скопируйте файл в папку /etc/init.d/. Чтобы скопировать файл, используйте следующую команду: sudo cp /home/USERNAME/Desktop/acpi_wakeup /etc/init.d/acpi_wakeup (замените «USERNAME» на свое фактическое имя пользователя) Сделайте исполняемый файл: sudo chmod 755 /etc/init.d/acpi_wakeup Затем используйте «update-rc.d», чтобы автоматически создавать необходимые символические ссылки в других каталогах: sudo update-rc.d acpi_wakeup defaults (он показывает WARNING: ...missing LSB tags and overrides, но все в порядке. Вам не нужно беспокоиться об этом) Перезагрузите компьютер.

Источники и дальнейшее чтение:

Источники и дальнейшее чтение:

1
ответ дан 20 July 2018 в 13:52

Отличное объяснение. Я просто добавил к 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
ответ дан 20 July 2018 в 13:52

Моя система Ubuntu 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

Все сделано.

3
ответ дан 20 July 2018 в 13:52
  • 1
    Он работает с Ubuntu 18.04 на моем ноутбуке. – Minh Nguyen 17 July 2018 в 06:33

Может быть определен способ вашего оборудования, и в этом случае этот параметр может быть доступен через настройки BIOS вашей системы.

Доступ к вашему меню BIOS для изменения настроек также зависит от системы. Обычно вы нажимаете клавишу сразу после перезагрузки, а клавиша для нажатия часто отображается на экране.

Однако ответ пользователя138339 кажется более общим способом достижения того, что вам нужно, и вы можете сделать это из работающая система.

0
ответ дан 20 July 2018 в 13:52

этот скрипт решил мою проблему. проверьте это.

#!/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», сделайте его исполняемым и установите для запуска при запуске.

0
ответ дан 20 July 2018 в 13:52

Другие вопросы по тегам:

Похожие вопросы: