В данном разделе находится общая информация.
В данном разделе находятся примеры различных Linux shell скриптов.
В данном разделе находятся примеры различных скриптов на WSH.
В данном разделе находятся материалы по разным темам.
В данном разделе находится гостевая книга.

Правильный CSS!

Для корректного отображения страницы, рекомендуется использовать браузер поддерживающий JavaScript.

Для навигации пользуйтесь боковым меню и кнопками "Описание" и "Подробно".

Особенности настройки nut-2.4.1 и ИБП Powercom IMP-425AP (баг "battery.charge: 0.0")

История подключения IMP-425AP

Выбран данный девайс был из соображений соотношения цены/качества и наличию его поддержки в Network UPS Tools (NUT) (см. UPS hardware compatibility list (stable) на www.networkupstools.org).
Подключить его не составило особого труда. Достаточно поставить nut-2.4.1, подключить ИБП к USB (появляется устройство /dev/ttyUSB0), которое прописываем в /etc/ups/ups.conf и стартуем службу upsd (если upsd стартует не от root, то необходимо предварительно выставить требуемому пользователю соответствующие права на /dev/ttyUSB0).

Баг:

Радость была не долгой - служба upsd, получив данные battery.charge: 0.0 с ИБП, как ей и положено, отправила сигнал завершения работы.
С учетом того, что ИБП уже заряжался около 6 часов и корректно отрабатывал самотестирование, был исключен аппаратный глюк. И действительно, полазив по форумам, было найдено упоминание о данной проблеме http://forum.pcm.ru/viewtopic.php?f=3&t=2627.

Решение:

Патчить powercom.c (nut-2.4.1), однако текст патча в ветке форума не нашелся. Для устранения этой вопиющей несправедливости, привожу текст своего патча (см. Подробности).
В powercom.c (nut-2.4.1) производится переопределение types[type].name=KIN даже если в настройках задан type=IMP для UPS Powercom IMP-425AP и подобных, что приводит к ошибочному определению battery.charge: 0.0

PS: Готовые сборки пропатченого nut-2.4.1 для openSUSE-11.2 доступны в: http://download.opensuse.org/repositories/home:/nk_rec/

Патч для powercom.c, исправляющий баг "battery.charge: 0.0" для IMP-425AP и подобных

Текст патча:

--- drivers/powercom.c	2009-02-17 12:20:48.000000000 +0300
+++ drivers/powercom.c	2010-03-02 15:48:25.354735038 +0300
@@ -852,21 +852,30 @@

	/* setup flow control */
	types[type].flowControl.setup_flow_control();
-	if (!strncmp(types[type].name, "BNT",3) || !strcmp(types[type].name, "KIN") || !strcmp(types[type].name, "IMP")){
+	if (getval("type") == NULL){
		if (!ups_getinfo()) return;
		if (raw_data[UPSVERSION]==0xFF){
			types[type].name="IMP";
-			model=IMPmodels[raw_data[MODELNUMBER]/16];
		}
		if (raw_data[MODELNAME]==0x42){
			if (!strcmp(types[type].name, "BNT-other"))
				types[type].name="BNT-other";
			else
				types[type].name="BNT";
-			model=BNTmodels[raw_data[MODELNUMBER]/16];
		}
		if (raw_data[MODELNAME]==0x4B){
			types[type].name="KIN";
+		}
+	}
+	if (!strncmp(types[type].name, "BNT",3) || !strcmp(types[type].name, "KIN") || !strcmp(types[type].name, "IMP")){
+		if (!ups_getinfo()) return;
+		if (!strcmp(types[type].name, "IMP")){
+			model=IMPmodels[raw_data[MODELNUMBER]/16];
+		}
+		if (!strncmp(types[type].name, "BNT",3)){
+			model=BNTmodels[raw_data[MODELNUMBER]/16];
+		}
+		if (!strcmp(types[type].name, "KIN")){
			model=KINmodels[raw_data[MODELNUMBER]/16];
		}
		linevoltage=voltages[raw_data[MODELNUMBER]%16];

			
Пока в nut не исправили этот глючек, т.е. как минимум для nut-2.4.1 это решений будет актуально.

Rambler's Top100

Yandex.Metrika

Page modification: Птн Сен 10 16:48:09 MSD 2010
Используется Quanta+ 3.5.10 Under the GPL v2 license.
Hosted by uCoz