Subject: Re: Network UPS Tools: please test USB and SNMP drivers
To: Geert Hendrickx <ghen@netbsd.org>
From: Manuel Bouyer <bouyer@antioche.eu.org>
List: pkgsrc-users
Date: 08/22/2006 23:17:21
--Q68bSM7Ycu6FN28Q
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Wed, Aug 16, 2006 at 03:43:07PM +0200, Geert Hendrickx wrote:
> Hi,
>
> after reorganizing the net/ups-nut (Network UPS Tools) package a bit, I was able
> to easily add new packages for the USB (bcmxcp_usb, newhidups and tripplite_usb)
> and SNMP (snmp-ups) drivers: net/ups-nut-usb and net/ups-nut-snmp, respectively.
> They build and install fine, but I don't have the hardware to test them further.
> Could anyone with USB or network (SNMP) enabled UPS'es please test these drivers
> and let me know whether they work?
usb worked more or less for me, for ups-nut-2.0.3 (I don't know if pkgsrc has
something newer now), but required the attached kernel patch. But I has
frequent issues where the driver would stop talking to the UPS, requiring
a reboot of the box (a restart of the daemon didn't fix it), so I gave up
and got a usb/serial dongle.
--
Manuel Bouyer <bouyer@antioche.eu.org>
NetBSD: 26 ans d'experience feront toujours la difference
--
--Q68bSM7Ycu6FN28Q
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="usb.diff"
Index: usb/ugen.c
===================================================================
RCS file: /cvsroot/src/sys/dev/usb/ugen.c,v
retrieving revision 1.71
diff -u -r1.71 ugen.c
--- usb/ugen.c 2 Mar 2005 11:37:27 -0000 1.71
+++ usb/ugen.c 22 Aug 2006 21:12:32 -0000
@@ -556,7 +556,8 @@
}
sce->state |= UGEN_ASLP;
DPRINTFN(5, ("ugenread: sleep on %p\n", sce));
- error = tsleep(sce, PZERO | PCATCH, "ugenri", 0);
+ error = tsleep(sce, PZERO | PCATCH, "ugenri",
+ mstohz(sce->timeout));
DPRINTFN(5, ("ugenread: woke, error=%d\n", error));
if (sc->sc_dying)
error = EIO;
@@ -620,7 +621,8 @@
}
sce->state |= UGEN_ASLP;
DPRINTFN(5, ("ugenread: sleep on %p\n", sce));
- error = tsleep(sce, PZERO | PCATCH, "ugenri", 0);
+ error = tsleep(sce, PZERO | PCATCH, "ugenri",
+ mstohz(sce->timeout));
DPRINTFN(5, ("ugenread: woke, error=%d\n", error));
if (sc->sc_dying)
error = EIO;
--Q68bSM7Ycu6FN28Q--