通过一个月的不懈努力总算将NET-SNMP成功移植到了ARM渠道,网上关于NET-SNMP的材料很少,仅有的一些文章也都是轻描淡写,很简单被误导,我便是其间的受害者之一,穿插编译进程很杂乱,要装备参数,途径,还有库。所以稍有插翅就会前功尽弃。并且每编译一次NET-SNMP都会消耗许多的时刻。很简单挫折人的自信心。我整整啃了一个月的英文文档,边看边试。下面把具体进程贴出来,跟我们同享,期望那些也想移植NET-SNMP可以少走弯路。
主机环境
Windows + vmware(redhat9.0)
IP分配如下:
ARM开发板:192.168.4.151
Windows: 192.168.4.44
Redhat9.0: 192.168.4.150
建立穿插编译环境
把穿插编译器解压到/opt/目录下,然后在/etc/profile文件中添加
环境变量,pathmunge /opt/hardhat/devkit/arm/xscale_be/bin.
穿插编译过程
①. tar –zxvf net-snmp-5.3.2.tar.gz
②. cd net-snmp-5.3.2
③../configure –host=armv5teb-hardhat-linux //运转渠道
–build=i686-linux //编译渠道
–with-cc=xscale_be-gcc //穿插编译器
–with-ar=xscale_be-ar //
–prefix=/usr/local/net-snmp //装置目录
–disable-shared //静态编译
–with-endianness=little //指定小端
–enable-mini-agent//最小的SNMPD
–with-openssl=/opt/hardhat //openssl库途径
/devkit/arm/xscale_be/target/usr
④. make (make LDFLAGS=”-static”,假如没有指定disable-shared)
⑤. make install
⑥. cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.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/目录下。或许
创立软衔接ln –s /mnt/ramd/libcrypto.so.0.9.6 /lib/libcrypto.so.0.9.6。
2.本来snmpd.conf在/usr/local/net-snmp/share/snmp/snmpd.conf中,传到AP时放到/etc/目录中,所以在运转时用参数C来指定最新目录。
3.当snmpd进程运转时会在/var/net-snmp目录下创立一个snmpd.conf.
本来没有,Snmpd.conf文件中有engineboot和engineID。当用net-snmp-config创立v3用户时,下面会主动添加
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文件中添加一行
createuser zhuangqian MD5 “19840318” DES
/usr/local/net-snmp/share/snmp/snmpd.conf中添加一行
rwuser zhuangqian
③snmpd 发动进程
④snmpget –v 3 –u zhuangqian –l authNoPriv –a MD5 –A “19840318” localhost sysUpTime.0或许
snmpget -v 3 -u zhuangqian –l authPriv –a MD5
-A “19840318” –x DES – X “19840318” localhost sysUpTime.0
办法二
# net-snmp-config –create-snmpv3-user ↙
# 输入用户名(zhuangqian)↙
# 输入authentication pass-phrase(验证)如19840318长度不小于8
# 输入encryption pass-phrase(加密)如19840318,直接回车则跟上面相同。
测验:
Snmpget –v 3 –l authPriv –u zhuangqian –A “19840318” –X “19840318” localhost sysUpTime.0
留意v3中authprotocal MD5 SHA Privprotocal DES AES
客户端能ping通运转snmpd进程的设备,但取不到值,可能是客户端防火墙问题,撤销客户端防火墙试试。
测验V2
snmpwalk –v 2c -c public 192.168.4.151 if
snmpget –v 2c –c public 192.168.4.151 system.sysName.0