Date: Thu, 6 May 2010 21:56:25 +0200 From: Hans Petter Selasky <hselasky@c2i.net> To: freebsd-usb@freebsd.org Subject: Re: apcupsd port regression from 7x. to 8.x Message-ID: <201005062156.25982.hselasky@c2i.net> In-Reply-To: <201005061949.o46Jngdt028521@lava.sentex.ca> References: <201005061949.o46Jngdt028521@lava.sentex.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005062156.25982.hselasky>