linuks.lt logo Linux

Linux at home/office
Идеи Linux для дома и офиса
Linux sprendimai namuose ir ofise

Меню

Начало

Скачать

Установка

Сервер
для малого
Бизнеса

Домашний
сервер

В офисе и
дома

В магазине

-------

Контакты

Закладки

0 добавлено

Выход из спящего режима

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

Для начал посмотрим на список всех устройств, которые способны будить - команда в терминале "cat /proc/acpi/wakeup":

~> cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
PCE2      S4    *disabled 
PCE3      S4    *disabled 
PCE6      S4    *disabled 
PCE7      S4    *disabled 
PCE9      S4    *disabled 
PCEA      S4    *disabled  pci:0000:00:0a.0
RLAN      S4    *enabled   pci:0000:02:00.0
SBAZ      S4    *disabled  pci:0000:00:14.2
PS2K      S4    *disabled  pnp:00:08
UAR1      S4    *disabled  pnp:00:09
P0PC      S4    *disabled  pci:0000:00:14.4
UHC1      S4    *disabled  pci:0000:00:12.0
UHC2      S4    *disabled  pci:0000:00:12.1
UHC3      S4    *disabled  pci:0000:00:12.2
USB4      S4    *enabled   pci:0000:00:13.0
UHC5      S4    *disabled  pci:0000:00:13.1
UHC6      S4    *disabled  pci:0000:00:13.2
UHC7      S4    *disabled  pci:0000:00:14.5

Псевдоним устройства в первом столбце и его имя в последнем столбце у каждого компьютера могут отличаться. В данном примере строчка "USB4 S4 *enabled" как раз и олицетворяет USB клавиатуру

Для того, чтобы запретить вывод из спящего режима, нужно выполнить команду:

echo disabled > /sys/devices/pci0000\:00/0000\:00\:13.0/power/wakeup

"/sys/devices/pci0000:00/0000:00:13.0/power/wakeup" - это специальный файл, который хранит необходимую нам настройку. Снова выполним команду "cat /proc/acpi/wakeup", чтобы убедиться, что настройка выполнена верно:

~> cat /proc/acpi/wakeup
Device  S-state   Status   Sysfs node
PCE2      S4    *disabled 
PCE3      S4    *disabled 
PCE6      S4    *disabled 
PCE7      S4    *disabled 
PCE9      S4    *disabled 
PCEA      S4    *disabled  pci:0000:00:0a.0
RLAN      S4    *enabled   pci:0000:02:00.0
SBAZ      S4    *disabled  pci:0000:00:14.2
PS2K      S4    *disabled  pnp:00:08
UAR1      S4    *disabled  pnp:00:09
P0PC      S4    *disabled  pci:0000:00:14.4
UHC1      S4    *disabled  pci:0000:00:12.0
UHC2      S4    *disabled  pci:0000:00:12.1
UHC3      S4    *disabled  pci:0000:00:12.2
USB4      S4    *disabled   pci:0000:00:13.0
UHC5      S4    *disabled  pci:0000:00:13.1
UHC6      S4    *disabled  pci:0000:00:13.2
UHC7      S4    *disabled  pci:0000:00:14.5

*enabled сменилось на *disabled

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

#!/bin/sh
echo disabled > /sys/devices/pci0000\:00/0000\:00\:13.0/power/wakeup

Подключившись администратором, сохраним этот скрипт под именем disable_wake в директории /etc/init.d, сделаем файл исполняемым и настроим запуск в режимах runlevel3 и runlevel5:

# cp disable_wake /etc/init.d
# chmod 755 /etc/init.d/disable_wake
# cd /etc/init.d/rc3.d/
# ln -s ../disable_wake S99disable_wake
# cd ..
# cd /etc/init.d/rc5.d/
# ln -s ../disable_wake S99disable_wake

Теперь при каждом запуске компьютера возможность будить компьютер USB клавиатурой будет отключаться. Если нужно наоборот, разрешить тому или иному устройству будить компьютер - измените "echo disabled" на "echo enabled" в скрипте. Также в скрипте можно указать несколько строчек для разных устройств, например:

#!/bin/sh
echo disabled > /sys/devices/pci0000\:00/0000\:00\:13.0/power/wakeup
echo disabled > /sys/devices/pci0000\:00/0000\:00\:13.1/power/wakeup
echo disabled > /sys/devices/pci0000\:00/0000\:00\:13.2/power/wakeup
echo disabled > /sys/devices/pci0000\:00/0000\:00\:14.5/power/wakeup
echo enabled > /sys/devices/pnp0/00:08/power/wakeup

Данный пример отключает возможность будить компьютер по нескольким USB устройствам, а также разрешает будить по PS/2 клавиатуре (псевдоним PS2K)

(с) 2008-2015, linuks.lt :: Hosted by motozone.lt :: Copyrights :: optimized for lynx