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. You have
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 NETSERVER ON.
This is the configuration we recommend (i.e. using pthreads and
NETSERVER ON).
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 NETSERVER OFF
4. If you build with pthreads disabled, and you do not use apcnisd,
you must set NETSERVER ON if you wish to have network in-
formation from apcupsd.
Concerning the names one sees with “ps”.
1. With pthreads enabled, on Linux 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. With pthreads 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