Pull to refresh

Начальная настройка ИБП APC в Linux с точки зрения чайника

Lumber room
Awaiting invitation
Купив источник бесперебойного питания от APC (а именно — APC Back-UPS ES 550VA), я с удивленьем обнаружил, что «из коробки» он не может похвастаться тесной дружбою с Linux. Конечно, XFCE Power Manager, входящий в состав XFCE 4.4, подхватил и разпознал UPS, но всё, на что он оказался способен — отображение в трее уровня заряда. Какие-либо настройки отсутствовали начисто, нельзя было даже задать выключение ПК при достижении определённого уровня заряда.

Обратившись за консультацией в гугл, я узнал о существовании замечательного демона apcupsd, чья роль заключается в — никогда не поверите — управлении ИБП от APC. Но, как оказалось, практически все руководства по его начальной настройке были откровенно устаревшими — включая, как ни странно, официальный мануал. Споткнуться приходилось уже в самом начале о «cat /proc/bus/usb/devices». Поговорив с гуглом серьёзным и доверительным тоном, я добился от него ссылки на действующий мануал, художественным переводом коего с дополнениями из иных источников сия статья и является.

Итак, начнём с установки самого apcupsd:

sudo apt-get install apcupsd

Разумеется, вышесказанное справедливо для Debian и его производных, включая Ubuntu. Если в вашем дистрибутиве не используется apt-get — думаю, вы всё равно знаете, как поставить необходимый пакет. Надеюсь на это.

Теперь мы отредактируем конфигурационный файл apcupsd:

sudo gedit /etc/apcupsd/apcupsd.conf

В данном случае нас интересуют всего три параметра:
  • UPSCABLE — указываем тип кабеля, которым наш UPS подключён к ПК. В комментариях указаны возможные типы — simple, smart, ether, usb. Нынешние домашние модели подключаются через USB — следовательно, достаточно дописать usb
  • UPSTYPE — тип подключённого UPS. В комментариях перечислены возможные типы и соответствующие им значения параметра DEVICE, наш же выбор — тип usb
  • DEVICE — закомментируем данную строку, поставив перед ней знак # — для USB-устройств она не нужна

Сохраняем изменённый конфигурационный файл, открываем следующий:

sudo gedit /etc/default/apcupsd

Заменяем ISCONFIGURED=no на ISCONFIGURED=yes, сохраняем, закрываем. Отныне apcupsd будет знать, что мы не забыли его настроить.

Теперь достаточно запустить apcupsd:

sudo /etc/init.d/apcupsd start

Если он уже был запущен — вместо start нам, разумеется, надо будет писать restart.

Всё, ваш ПК теперь связан с новеньким ИБП прочными узами дружбы.

А теперь немножко о том, что мы можем настроить в обширном /etc/apcupsd/apcupsd.conf:
  • ONBATTERYDELAY — время (в секундах), определяющее задержку между обнаружением сбоя электропитания и отсылкой события onbattery. По умолчанию — 6
  • BATTERYLEVEL — уровень заряда батареи (в процентах), при котором инициируется выключение компьютера. По умолчанию — 5
  • MINUTES — расчётное время остаточной работы (в минутах), при достижении которого инициируется выключение компьютера. По умолчанию — 3
  • TIMEOUT — параметр актуален для старых ИБП, неспособных определять свой уровень заряда. Задаёт время (в секундах) между сбоем электропитания и отключением компьютера. Для современного ИБП параметр стоит оставить на 0, но выставление иного значения может быть удобно для тестирования работы ИБП. Например, если выставить 30 и выдернуть шнур из розетки, уже через полминуты apcupsd продемонстрирует своё умение выключать компьютер

Выполнения одного из условий (BATTERYLEVEL, MINUTES или TIMEOUT) достаточно для выключения компьютера. Более тонкая настройка не описывается, ибо её необходимость для домашнего пользователя весьма сомнительна.

Долго сказка сказывается, да недолго дело делается: полагаю, описанные действия пользователь произведёт за пару минут. Надеюсь, данная статья поможет кому-нибудь подружить его ИБП APC с Linux, сэкономив время и не завязнув в устаревших мануалах.
Tags: apcapcupsdupsибпlinux
Hubs: Lumber room
You can’t comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.