Q: When using USB, I get the following log messages: usb-uhci.c: inter-
rupt, status 3, frame# 826. What does it mean?
A: It means one transfer worked (bit 0 in status) and another one (after
that) failed (bit 1) at time frame 826. This kind of soft error is common
on USB and if everything seems to be working, you can ignore it.
Q: apcnisd doesn’t work. It always gives: FATAL ERROR in apcipc.c at
line 497. attach shmarea: shared memory version mismatch (or UPS
not yet ready to report)
A: Unfortunately apcnisd does not work with pthreads enabled. Youhave
the following options:
1. If you build with pthreads enabled, apcnisd will not work no
matter what you do.
2. If you build with pthreads enabled, and you want to have net-
work information from apcupsd, you must set NETSERVERON.
This is the configuration we recommend (i.e. using pthreads and
NETSERVERON).
3. If you build with pthreads disabled, you have the choice of using
apcnisd or the NETSERVER code. If you wish to use apcnisd,
you must set NETSERVEROFF
4. If you build with pthreads disabled, and you do not use apcnisd,
you must set NETSERVERON if you wish to have network in-
formation from apcupsd.
Concerning the names one sees with “ps”.
1. With pthreads enabled, onLinux machines, you will see multiple
copies of apcupsd running, but they will all be called apcupsd
rather than apcmain, apcser, ... They will still run as LWP,but
we are unable to set the names on threads (LWP).Note, though
ps shows “multiple copies” of apcupsd running, it is really one
memory image but with multiple threads.
2. Withpthreads disabled, we are able to set the child process names
(at least on Linux) so you will see apcmain, apcser, apcnis, ... in
the ps output. In this case, they are really different processes
each with its own memory image (the code image is most likely
shared).
100