apcupsd port regression from 7x. to 8.x
Hans Petter Selasky
hselasky at c2i.net
Thu May 6 19:59:16 UTC 2010
On Thursday 06 May 2010 21:49:46 Mike Tancsa wrote:
> While apcupsd works fine with one ups hooked up, apcupsd is not able
> to find multiple ones like it did on RELENG_7. Looking at the way
> the code is compiled, it uses the generic libusd driver to talk to
> and find the UPSes on RELENG_8. Not sure if this is a bug with
> apcupsd or how it works with RELENG_8.
>
> Running the daemon in debug mode, it loops through the following
> code, but always finds the same UPS and never 'moves on' to the next
> UPS like it did in RELENG_7. Has anyone got multiple UPSes working
> with apcupsd on RELENG_8 ?
>
>
> /* Initialize libusb */
> Dmsg0(200, "Initializing libusb\n");
> usb_init();
>
> /* Enumerate usb busses and devices */
> i = usb_find_busses();
> Dmsg1(200, "Found %d USB busses\n", i);
> i = usb_find_devices();
> Dmsg1(200, "Found %d USB devices\n", i);
>
> /* Iterate over all devices, checking for idVendor=APC */
> bus = usb_get_busses();
> while (bus)
> {
> dev = bus->devices;
> while (dev)
> {
> Dmsg4(200, "MDT bus loop %s:%s - %04x:%04x\n",
> bus->dirname, dev->filename,
> dev->descriptor.idVendor, dev->descriptor.idProduct);
>
> if (dev->descriptor.idVendor == VENDOR_APC) {
> Dmsg2(200, "Trying device %s:%s\n", bus->dirname,
> dev->filename); if (init_device(ups, dev)) {
> /* Successfully found and initialized an UPS */
> astrncpy(ups->device, bus->dirname, sizeof(ups->device));
> astrncat(ups->device, ":", sizeof(ups->device));
> astrncat(ups->device, dev->filename, sizeof(ups->device));
> return 1;
> }
> }
>
> dev = dev->next;
> }
>
> bus = bus->next;
> }
>
> /* Failed to find an UPS */
> ups->device[0] = 0;
> return 0;
> }
>
> Where as the following are attached. It only is ever able to talk to
> the ups on ugen1.2
>
> 0[upsmon1]# usbconfig
> ugen0.1: <UHCI root HUB VIA> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps)
> pwr=ON ugen1.1: <UHCI root HUB VIA> at usbus1, cfg=0 md=HOST spd=FULL
> (12Mbps) pwr=ON ugen2.1: <UHCI root HUB VIA> at usbus2, cfg=0 md=HOST
> spd=FULL (12Mbps) pwr=ON ugen3.1: <UHCI root HUB VIA> at usbus3, cfg=0
> md=HOST spd=FULL (12Mbps) pwr=ON ugen4.1: <EHCI root HUB VIA> at usbus4,
> cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON ugen0.2: <Back-UPS ES 725
> FW:802.n2.D USB FW:n2 APC> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps)
> pwr=ON
> ugen4.2: <USB2.0 Hub vendor 0x05e3> at usbus4, cfg=0 md=HOST spd=HIGH
> (480Mbps) pwr=SAVE
> ugen4.3: <Back-UPS ES 500 FW:801.e5.D USB FW:e5 APC> at usbus4, cfg=0
> md=HOST spd=LOW (1.5Mbps) pwr=ON
> ugen0.3: <Back-UPS RS 1500 FW:8.g7 .D USB FW:g7 American Power
> Conversion> at usbus0, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON
> ugen4.4: <Back-UPS ES 650 FW:825.B1.D USB FW:B1 APC> at usbus4, cfg=0
> md=HOST spd=LOW (1.5Mbps) pwr=ON
> ugen4.5: <Back-UPS RS 1500 FW:8.g8 .D USB FW:g8 American Power
> Conversion> at usbus4, cfg=0 md=HOST spd=LOW (1.5Mbps) pwr=ON
> ugen4.6: <Back-UPS ES 500 FW:824.B1.D USB FW:B1 APC> at usbus4, cfg=0
> md=HOST spd=LOW (1.5Mbps) pwr=ON
> ugen1.2: <Back-UPS ES 500 FW:824.B1.D USB FW:B1 APC> at usbus1, cfg=0
> md=HOST spd=LOW (1.5Mbps) pwr=ON
> 0[upsmon1]#
>
>
> 0.000 apcupsd: apcupsd.c:219 Options parsed.
> 0.001 apcupsd: apcconfig.c:803 After config scriptdir:
> "/usr/local/etc/apcupsd.a"
> 0.001 apcupsd: apcconfig.c:804 After config pwrfailpath: "/var/run/a"
> 0.001 apcupsd: apcconfig.c:805 After config nologinpath: "/var/run"
> 0.001 apcupsd: apcupsd.c:242 Config file
> /usr/local/etc/apcupsd.a/apcupsd.conf processed.
> 0.001 apcupsd: :newups.c:102 write_lock at drivers.c:181
> 0.001 apcupsd: drivers.c:183 Looking for driver: usb
> 0.001 apcupsd: drivers.c:187 Driver dumb is configured.
> 0.001 apcupsd: drivers.c:187 Driver apcsmart is configured.
> 0.001 apcupsd: drivers.c:187 Driver net is configured.
> 0.001 apcupsd: drivers.c:187 Driver usb is configured.
> 0.001 apcupsd: drivers.c:190 Driver usb found and attached.
> 0.001 apcupsd: newups.c:108 write_unlock at drivers.c:207
> 0.001 apcupsd: drivers.c:209 Driver ptr=0x805c8e4
> 0.001 apcupsd: apcupsd.c:261 Attached to driver: usb
> 0.003 apcupsd: newups.c:102 write_lock at generic-usb.c:614
> 0.003 apcupsd: generic-usb.c:398 Initializing libusb
> 0.003 apcupsd: generic-usb.c:403 Found 0 USB busses
> 0.007 apcupsd: generic-usb.c:405 Found 0 USB devices
> 0.007 apcupsd: generic-usb.c:416 /dev/usb:/dev/ugen1.2 - 051d:0002
> 0.007 apcupsd: generic-usb.c:419 Trying device /dev/usb:/dev/ugen1.2
> 0.153 apcupsd: hidutils.c:62 Report descriptor:
> 0.153 apcupsd: apclog.c:158 Dumping 840 bytes @ 0x2823e000
>
>
Have you tried FreeBSD 8-STABLE ?
--HPS
More information about the freebsd-usb
mailing list