2012-02-27 200 views
2

我使用ELDK-3.1将NET-SNMP 5.7.1从源代码交叉编译到PowerPC。 当我尝试加载snmpd守护在我的嵌入式板卡,我看到消息:SNMPd:无法打开/ proc/bus/pci

# snmpd -f -Lo 
pcilib: Cannot open /proc/bus/pci 
pcilib: Cannot find any working access method. 

当然我的PPC板没有PCI,我不知道为什么netsnmp寻找它。

在不止一个地方我看到了同样的消息(sourceforge,mail-archive,google-groups),但是ir完全没有答案。另一个变体,在(archlinuxarm)有一点但无益的回应。

任何人都可以帮我吗?

回答

4

我假设你在一个Linux目标上。

Net-SNMP的更改日志列表“[PATCH 3057093]:允许linux使用libpci创建有用的ifDescr字符串”。

配置脚本将搜索可用的libpci,并且找到一个将会定义 HAVE_PCI_LOOKUP_NAMEHAVE_PCI_PCI_H。要禁用此代码:配置后,您可以更改include/net-snmp/net-snmp-config.h中的那些定义,然后重新生成。受影响的代码位于agent/mibgroup/if-mib/data_access/interface_linux.c

+0

我已经试过了,但奇怪的是,没有成功。也许我搞砸了一些东西,所以我会给它一个新的尝试,很快回来告诉。谢谢。 – j4x 2012-02-29 11:44:55

+1

好的。更改'net-snmp-config.h.in'不起作用,但是完全按照你的说法和改变'net-snmp-config.h' _after_ configure的方式工作。我的脚本被打破,并且无需再次调用'configure',所以我的更改丢失了。现在'snmpd'加载时没有错误。再次感谢! – j4x 2012-02-29 13:42:15

0

我使用自带的Raspbian股票snmpd解决了这个问题。

/etc/snmp/snmpd.conf文件我将问题到下一行

agentAddress udp:161,udp6:[::1]:161

不是听上所有接口的,如果我指定的eth0接口即IP地址:

agentAddress udp:10.0.1.5:161,udp6:[::1]:161

Then snmpd Starting fine。

我的推测是股票snmpd试图枚举所有可能的接口,包括pci的。