经过一个月的不懈努力终于将NET-SNMP成功移植到了ARM平台,网上关于NET-SNMP的资料很少,仅有的一些文章也都是轻描淡写,很容易被误
导,我就是其中的受害者之一,交叉编译过程很复杂,要配置参数,路径,还有库。所以稍有插翅就会前功尽弃。而且每编译一次NET-SNMP都会耗费很多的
时间。很容易挫败人的自信心。我整整啃了一个月的英文文档,边看边试。下面把详细过程贴出来,跟大家共享,希望那些也想移植NET-SNMP能够少走弯
路。
主机环境
Windows + vmware(redhat9.0)
IP分配如下:
搭建交叉编译环境
环境变量,pathmunge
/opt/hardhat/devkit/arm/xscale_be/bin.
交叉编译步骤
①. tar –zxvf
②. cd net-snmp-5.3.2
③../configure
--host=armv5teb-hardhat-linux
④. make (make
LDFLAGS="-static",如果没有指定disable-shared)
⑤. make install
⑥. cp EXAMPLE.conf
⑦.
配置/usr/local/net-snmp/share/snmp/snmpd.conf文件
⑧.xscale_be-strip
/usr/local/net-snmp/sbin/snmpd,压缩snmpd.
移植文件
在移植以前首先要删除AP上的/usr/sbin/snmpd和/etc/snmpd.conf.
1./usr/local/net-snmp/sbin/目录下snmpd进程
2./usr/local/net-snmp/share/snmp/目录下snmpd.conf ,mibs
3./usr/local/net-snmp/bin目录下net-snmp-config, snmpwalk,
snmpget等
备注:snmpd,net-snmp-config,snmkwalk,snmpget等工具在移植以前,要先用xscale_be-strip压缩一下。然后snmpd放到AP的/usr/sbin中,
Snmpd.conf放到Ap
的/etc中。其他按照上面目录存放。AP上没有就自动创建。
在AP上运行snmpd
#snmpd –c /etc/snmpd.conf
备注:
1.在AP上运行时会出现缺少libcrypto.so.0.9.6文件。在交叉编译器中(/opt/hardhat/devkit/arm/xscale_be/target/usr/lib)能找到这个文件,然后put到AP的/lib/目录下。或者
2.原来snmpd.conf在/usr/local/net-snmp/share/snmp/snmpd.conf中,传到AP时放到/etc/目录中,所以在运行时用参数C来指定最新目录。
3.当snmpd进程运行时会在/var/net-snmp目录下创建一个snmpd.conf.
createuser zhuangqian MD5 “19840318”
DES,当然同时也会在/usr/local/net-snmp/share/snmp/snmpd/conf中添加rwuser
zhuangqian.
如何创建V3用户
方法一
①首先关闭snmpd进程
②net-snmp-config --create-snmpv3-user
–a “19840318” zhuangqian
执行上面操作之后,/var/net-snmp/snmpd.conf文件中增加一行
/usr/local/net-snmp/share/snmp/snmpd.conf中增加一行
rwuser zhuangqian
③snmpd 启动进程
④snmpget –v
方法二
# net-snmp-config
# 输入用户名(zhuangqian)↙
# 输入authentication
pass-phrase(验证)如19840318长度不小于8
# 输入encryption
pass-phrase(加密)如19840318,直接回车则跟上面一样。
测试:
Snmpget –v 3 –l authPriv –u
zhuangqian –A “19840318” –X “19840318”
注意v3中authprotocal
客户端能ping通运行snmpd进程的设备,但取不到值,可能是客户端防火墙问题,取消客户端防火墙试试。
测试V2
snmpwalk –v
snmpget
|
|
来自: 汉江秋月夜 > 《net_snmp》