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