1.移植前装备工作
1.1首先先准备好交叉编译环境
根据不同的板子选择不同的交叉编译环境,这里默认你已经有了交叉编译器。
1.2 下载net-snmp的源码
下面有一些版本的源码
net-snmp-5.4.1.tar.gz源码:
http://download.csdn.net/detail/liang_baikai/9657550
net-snmp-5.7.1.tar.gz源码:
http://download.csdn.net/detail/liang_baikai/9666368
net-snmp-5.7.3.tar.gz源码:
http://download.csdn.net/detail/liang_baikai/9682366
笔者这里用的是net-snmp-5.7.3版本的。
2.编译配置与移植
2.1 解压压缩包
# tar -zxvf net-snmp-5.7.3.tar.gz
然后
# cd net-snmp-5.7.3
. --- --- --- ----------- ----------- -- --- --- --- --- --- --- ----- ----
下面简单说一下各个配置选项都是什么意思
—-选项—————————–说明—
–host= —————————- 运行平台
–target=—————————目标平台
–build=—————————-编译平台
–with-cc=————————- 交叉编译器
–with-ar=————————- 使用的程序打包
–prefix=————————— 安装目录
–disable-shared——————-静态编译
–disable-scripts ——————不要安装mib2c等脚本
–with-endianness=little ———指定小端模式
-enable-mini-agent ————-最小的snmpd
–enable-debugging ————-打开调试信息
–with-openssl=——————-库路径
–disable-ipv6 ———————不使用IPv6
–disable-manuals —————–不安装manpage说明页
–disable-ucd-snmp-compatibility 不需要兼容ucd-snmp
–enable-as-needed ————–如果只使用其他方法行不通,链接libperl针对应用而非Net-SNMP库。
–disable-snmptrapd-subagent 不用支持snmptrapd的子代理
–disable-embedded-perl ——–不使用嵌入式的perl
–disable-embedded-perl ———在SNMP代理和snmptrapd禁用嵌入式Perl。默认启用
–disable-applications ————-是否关闭snmpget等功能,根据自己的需要选择
2.3 编译 配置 移植
配置好了,开始编译
# make
然后下agent目录下应该会生成一个snmpd的文件
这个就是我们需要的可执行程序
将这个文件直接拷贝到板子上面(建议先压缩一下)
压缩前
[root@localhost agent]
-rwxr-xr-x 1 root root 2226333 11-23 06:57 snmpd
压缩后
[root@localhost agent]
[root@localhost agent]
-rwxr-xr-x 1 root root 731052 11-23 07:00 snmpd
明显变小了好多
然后将这个文件拷贝到板子上运行就可以了,还要写一个snmpd.conf文件。笔者这里直接将net-snmp-5.7.3/python/netsnmp/tests/snmpd.conf这个文件拷贝出来的。
然后将snmpd和snmpd.conf这两个文件拷贝到板子上
在板子上执行
# ./snmpd -c snmpd.conf
因为笔者最后要用zabbix监控这块板子,所以现在看看zabbix能否通过SNMP的协议连接上板子。
zabbix面板上显示SNMP的图标亮了,说明移植成功了。