當前位置:首頁 » 編程軟體 » snmp靜態編譯

snmp靜態編譯

發布時間: 2023-06-12 17:57:54

Ⅰ 為什麼移植snmp生成的snmpd文件不能運行

准備工作
1、net-snmp5.7.1源碼

2、linux編譯環境,IP地址192.168.2.115

3、Powerpc平台,本次移植到飛思卡爾,IP地址192.168.2.20

環境搭建步驟
1、主機-Powerpc:
主機和Powerpc互相ping,檢測網口連通性;

如果網口無法工作,使用串口的zmodem進行文件下載,但是此方法較慢;

2、下載文件方法:
windows平台

開啟tftpd.exe,配置伺服器工作路徑為文件所在目錄;

通過串口或者網口與Powerpc通信,在Powerpcshell下運行:

tftp -r [download_file] 192.168.2.115 –g

SecureCRT使用zmodem傳送文件,此方法比tftp方法速度慢。

Linux系統需要tftp伺服器或者nfs伺服器支持

移植net-snmp
1、配置
CC=/usr/freescale-2010.09/bin/powerpc-linux-gnu-gcc./configure--build=i386-linux --host=ppc-linux --disable-ipv6--with-endianness=big--disable-manuals--disable-ucd-snmp-compatibility--enable-as-needed--disable-embedded-perl --without-perl-moles--disable-snmptrap-subagent--disable-scripts--with-mib-moles="ucd_snmp" --enable-shared
修改項包括:平台相關交叉編譯鏈,host取值,位元組序(Powerpc屬大端位元組序),其他配置不變

2、編譯
本工程因為需要載入動態庫,因此須使用動態編譯

動態編譯:

#make
編譯時不需要重新指定安裝目錄,一律選擇默認

//若有動態庫,會提示錯誤:缺少庫,拷貝過去即可。編譯完成後大小41K左右

靜態編譯:

#makeLDFLAGS=」-static」
//使用-static選項指明是靜態編譯,安裝完成後大小1.6M左右

3、安裝
#make install
編譯完snmp後,在安裝階段會鏈接目標文件生成庫文件,並將庫文件默認安裝在本地/usr/local/lib和 /usr/lib下

4、壓縮文件
安裝完成後snmpd路徑:/usr/local/sbin/snmpd

@Powerpc-linux-stripsnmpd
靜態:會將1.6M的文件壓縮為649K

動態:只有46K

拷貝文件
1、SNMPD的拷貝
將壓縮後的snmpd拷貝至/usr/sbin目錄下,修改許可權為755;

2、配置文件的拷貝
將編譯環境的/etc/snmp目錄下snmpd.conf snmp.conf 這兩個文件拷貝至:Powerpc板的/usr/local/share/snmp目錄下;

3、MIB庫文件的拷貝
將MIB庫文件拷貝至Powerpc板/usr/local/share/snmp/mibs中:

拷貝SNMP系統MIB庫和我們自己開發的MIB庫到目標板 的/usr/local/share/snmp/mibs;

cp ./mib <目標板>/usr/local/share/snmp/mibs;

cp SGCC-MIB.my <目標板>/usr/local/share/snmp/mibs;
這樣,我們自己開發的MIB庫SGCC-MIB和snmp自帶的MIB庫就整合在一起了。

4、命令的拷貝
通過tftp或者nfs掛載方式,拷貝本地snmp相關命令到Powerpc板:

#這里是snmp相關操作方法

cd/usr/local/bin/

cp agentxtrapnet-snmp-c* snmp* encode_keychange /usr/bin/

# snmp的守護線程和trap監聽命令許可權更改為755。

cp/usr/local/sbin/snmp*/usr/sbin/

[注]路徑不定,只要在需要時將命令所在路徑導入PATH即可

使用命令測試:

@snmpget–v2c –cprivate 127.0.0.1 sysUpTime.0 #返回正確

5、運行庫的拷貝
通過tftp或者nfs掛載方式,拷貝本地snmp相關庫文件到目標板,用以支持項目運行:

Cp usr/lib/libnetsnmp* /usr/lib

Cp usr/local/lib/libnetsnmp* /usr/lib

將需要snmp支持的第三方庫——我們的arm網管程序編譯而成的庫文件,拷貝/usr/local/lib;

這樣,我們的網管程序就可得到SNMP的支持

[注]路徑不定,只要在需要時將庫文件所在路徑導入LD_LIBRARY_PATH即可

Ⅱ uclinux下net-snmp編譯完成後程序在目標板(uclinux+arm)上運行時提示Cannot find mole (SNMPv2-MIB):

你的庫文件或模塊代碼有缺失。重新下載個snmpagent開發包吧。

熱點內容
android敏捷開發 發布:2025-05-11 11:56:49 瀏覽:79
腳本pon 發布:2025-05-11 11:52:27 瀏覽:825
ct5推薦哪個配置 發布:2025-05-11 11:47:45 瀏覽:741
領購未上傳發票 發布:2025-05-11 11:43:27 瀏覽:716
查看華為雲伺服器的ip地址 發布:2025-05-11 11:24:44 瀏覽:235
長沙銀行密碼多少 發布:2025-05-11 11:24:38 瀏覽:671
緩存手機視頻合並軟體哪個好 發布:2025-05-11 11:22:30 瀏覽:698
伺服器c盤怎麼清除 發布:2025-05-11 11:16:33 瀏覽:39
動態估演算法 發布:2025-05-11 11:06:19 瀏覽:923
sql2008使用教程 發布:2025-05-11 10:53:16 瀏覽:315