|
В настоящее время уже наверно не выпускаются мониторы,
не поддерживающие функций энергосбережения. Здесь я
хочу рассказать подробнее об этих функциях и о том, как их
использовать под управлением ОС Linux.
|
|
Несколько вводных слов |
| |
|
Согласно стандарту управления энергопотреблением
мониторов, монитор может находиться в четырёх
различных режимах. Эти режимы отличаются набором
узлов, находящихся в рабочем состоянии.
Продолжительность выхода монитора на нормальную
работу из режима энергосбережения также различна для
разных режимов.
С помощью DPMS (Display Power Management Signals)
можно программно управлять двумя основными узлами
монитора: блоком вертикальной развертки и блоком
горизонтальной развертки. Кроме того, во всех режимах
энергосбережения с трубки снимается напряжение и
электронный луч гасится.
Первый режим -- Normal operation, никакого
энергосбережения нет, это режим нормальной работы. Все
узлы монитора функционируют. Это единственный режим
работы, при котором на трубку подаётся высокое
напряжение и луч совершает свои движения по экрану.
Второй режим -- Stand-by mode, я бы перевёл это как режим
резервирования. В этом режиме блок вертикальной
развертки продолжает вырабатывать сигнал, а блок
горизонтальной развёртки отключается. Это позволяет
сэкономить около 10 Вт. Монитор выходит из этого режима
практически мгновенно.
Третий режим -- Suspend mode, отложенный режим. В этом
режиме отключается блок вертикальной развёртки, но блок
горизонтальной развёртки продолжает функционировать.
Энергопотребление монитора в этом режиме обычно не
превышает 15 Вт. К нормальной работе монитор
возвращается ощутимо дольше, чем при выходе из режима
Stand-by mode.
Четвёртый режим -- Power-off mode, отвечает полному
отключению питания от узлов развёртки. Выход из этого
режима требует почти столько же времени, сколько
необходимо монитору при включении питания. В этом
режиме обычный монитор потребляет не более 5 Вт.
|
|
Управление консолью |
| |
|
Управление энергосбережением консоли осуществляется с
помощью программы setterm. Консоль может находиться в
трёх состояниях: нормальная работа, погашенный экран
(blank) и энергосберегающий режим. Причем,
энергосбережение может быть включено только после того,
как экран погашен.
Для установления интервалов времени, через которое
консоль будет менять своё состояние, используется две
команды:
setterm -blank #
setterm -powerdown #
Первая из них устанавливает время в минутах, через
которое экран будет гаситься. Вторая -- время, по
прошествии которого будет включаться режим
энергосбережения.
Здесь уместно отметить, что гашение экрана не имеет
никакого отношения к энергосбережению. При погашенном
экране с него просто удаляется изображение, но все узлы
монитора продолжают функционировать.
Чтобы определить, какой именно режим энергосбережения
будет установлен, следует использовать следующие
команды:
для режима Stend-by mode:
setterm -powersave hsync
для режима Suspend mode:
setterm -powersave vsync
или
setterm -powersave on
для режима Power-off mode:
setterm -powersave powerdown
чтобы запретить энергосбережение:
setterm -powersave off
Например, Вы хотите, чтобы при отсутствии каких-либо
действий со стороны пользователя в течение двух минут,
консоль гасла, а по прошествии ещё десяти минут, монитор
переходил в состояние Power-off mode. Тогда Вам следует
включить куда-нибудь в rc.locale следующие команды:
setterm -blank 2
setterm -powerdown 12
setterm -powersave powerdown
Следует также оговориться. Дело в том, что
правильность работы setterm зависит от версии
самой утилиты и версии ядра. Надежно работает только
режим Power-off. Остальные режимы могут вызываться не
вполне корректно, например вместо одного -- другой.
|
|
Управление энергопотреблением монитора в X |
| |
|
Настроить X-сервер можно двумя способами. Первый -- с
помощью утилиты xset, включив её вызов в скрипт,
запускающий X Window System, это обычно startx, или
.xinit. Второй, на мой взгляд более изящный, способ --
внести необходимые изменения в XF86Config. Я опишу оба
способа. Здесь я не буду касаться вопросов сохранения
экрана и управления screensaver'ами.
|
|
Настройка с помощью xset |
| |
|
Вся настройка производится одним-двумя вызовами xset.
Обязятельно необходимо вызвать
xset dpms T1 T2 T3
где T1, T2, T3 -- интервалы времени в секундах, через
которые активизируются режимы Stend-by mode, Suspend
mode, Power-off mode, соответственно. Естественно
необходимо выполнить условие T1>=T2>=T3. Если одно из
чисел равно нулю, то соответствующий режим не
включается.
Если Ваш X-сервер не поддерживает энергосбережение по
умолчанию (а обычно именно так и случается), то Вам
придётся выполнить ещё одну команду:
xset +dpms
которая разрешит серверу включать режимы
энергосбережения. Это можно сделать и передав X-серверу
ключ dpms. Например, при вызове xinit:
xinit -- dpms
(обратите внимание на то, что между "--" и
"dpms" есть пробел).
Чтобы снова отключить энергосбережение, можно
использовать команду:
xset -dpms
Здесь уместно сказать об одной возможности, могущей
оказаться небесполезной. С помощью команды xset можно
принудительно включать различные режимы
эергосбережения:
xset dpms force stendby
xset dpms force suspend
xset dpms force off
Все эти команды вызывают переход монитора в
экономичный режим только при условии, что
энергосбережение разрешено (xset +dpms).
|
|
Настройка с помощью XF86Config |
| |
|
Здесь необходимо выполнить те же установки, что и при
вызове xset.
Чтобы разрешить серверу запуск режимов
энергосбережения, необходимо добавить в секцию Device
запись:
Option "power_saver"
Теперь остается только добавить в секцию Screen записи:
StandbyTime T1
SuspendTime T2
OffTime T3
где T1, T2, T3, как и ранее интервалы времени, через
которые активизируются режимы Stend-by mode, Suspend
mode, Power-off mode, соответственно, но здесь время уже
выражается не в секундах, а в минутах.
|
| Мичурин Алексей Alexey Michurin |
| |