I cross-compiled NET-SNMP 5.7.1 from sources to a PowerPC using ELDK-3.1.
When I try to load the snmpd
daemon in my embedded board, I see the message:
# snmpd -f -Lo
pcilib: Cannot open /proc/bus/pci
pcilib: Cannot find any working access method.
Of course my PPC board has no PCI, and I wonder why is netsnmp looking for it.
In more than one place I see this same message (sourceforge, mail-archive, google-groups), but ir has no answer at all. Another variant, with a little but unhelpful responses at (archlinuxarm).
Can anybody please help me?
I resolved the issue using the stock
snmpd
that comes with the Raspbian.In
/etc/snmp/snmpd.conf
file I isolated the issue to the following lineagentAddress udp:161,udp6:[::1]:161
Instead of listening on all interfaces, if I specify the the ip address of the
eth0
interface i.e.:agentAddress udp:10.0.1.5:161,udp6:[::1]:161
Then
snmpd
starts fine.My speculation is that the stock
snmpd
tries to enumerate all possible interfaces including the pci ones.I'm assuming you're on a Linux target.
Net-SNMP's changelog lists "[PATCH 3057093]: allow linux to use libpci for creating useful ifDescr strings".
The configure script will search for an available libpci, and, having found one, will define
HAVE_PCI_LOOKUP_NAME
andHAVE_PCI_PCI_H
. To disable this code: after configuring, you can change those defines ininclude/net-snmp/net-snmp-config.h
, then rebuild. The affected code is inagent/mibgroup/if-mib/data_access/interface_linux.c
.There's also a patch in this bug report: http://sourceforge.net/p/net-snmp/bugs/2449/