Движение мыши пробуждает компьютер от приостановки, как отключить это?

24

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

    
задан user129498 08.02.2013 в 13:40
источник

7 ответов

21

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

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

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

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

    
ответ дан user138339 08.03.2013 в 07:14
10

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

    
ответ дан Randy Skretka 17.11.2013 в 20:55
4

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

Все сделано.

    
ответ дан Minh Nguyen 25.12.2015 в 04:17
1

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

  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. Перезагрузите компьютер.

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

Ссылка Ссылка

    
ответ дан Juraj.Lorinc 30.10.2014 в 08:10
0

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

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

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

    
ответ дан Robie Basak 07.03.2013 в 11:44
0

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

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

    
ответ дан yurividal 26.04.2013 в 14:17
0

Отличное объяснение. Я просто добавил к rc.local следующую команду

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

отключить каждое устройство, кроме PS2K (клавиатура PS2), от пробуждения. Простой и рабочий!

    
ответ дан MeS Fet 09.11.2017 в 11:46