1. 概念了解
SNMP 是專門設計用於在 IP 網絡管理網絡節點(服務器、工作站、路由器、交換機及 HUBS 等)的一種標准協議,它是一種應用層協議。 SNMP 使網絡管理員能夠管理網絡效能,發現並解決網絡問題以及規劃網絡增長。通過 SNMP 接收隨機消息(及事件報告)網絡管理系統獲知網絡出現問題。
SNMP 管理的網絡有三個主要組成部分:管理的設備、代理和網絡管理系統。
管理設備是一個網絡節點,包含 SNMP 代理並處在管理網絡之中。
被管理的設備(如路由器、訪問服務器,交換機和網橋、 HUBS 、相關主機)用於收集並儲存管理信息。通過 SNMP , NMS 能得到這些信息。
SNMP 代理是被管理設備上的一個網絡管理軟件模塊。
2.移植前准備
a.從http://www.net-snmp.org/網址下載net-snmp-5.6.1.1.tar.gz源碼包
b.確定已安裝交叉編譯器arm-linux-gcc
3.移植過程
1.解壓net-snmp-5.6.1.1.tar.gz
2.配置
CC=arm-linux-gcc ./configure --prefix=/usr/local/arm_netsnmp --build=i386-linux --host=arm-linux --enable-mini-agent --disable-ipv6 --with-endianness=little --disable-manuals --disable-ucd-snmp-compatibility --enable-as-needed --disable-embedded-perl --without-perl-modules --disable-snmptrapd-subagent --disable-applications --disable-scripts
3.編譯make
4.安裝make install
注:出錯的話,看下出錯原因,有些庫沒裝的話,要裝上。我的是這個庫:apt-get install libperl.dev
5.移植到開發板
a.在arm_netsnmp底下生成的snmpd移植到開發板/tmp/ArmSnmp(目錄自己隨便找個地方放)
b.vi snmpd.conf,添加內容如下:
rocommunity public
rwcommunity 123456
wq保存退出
6.測試結果
a.先在開發板運行如下命令:
[root@EM9X60 /tmp/ArmSnmp]#./snmpd -C -c ./snmpd.conf
b.然後在linux主機運行:
root@an-virtual-machine:/usr/local/net-snmp/bin# ./snmpget -v2c -c public 192.168.1.94 sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux EM9X60 2.6.30 #92 Wed Mar 30 17:39:47 CST 2011 armv5tejl
注:snmpget是linux主機平台的(下載源碼後,默認安裝就可以得到)