研究snmp移植

没错又又有移植的新需求了,做个记录,想想以前那么多年也没做啥记录,最近都给他记录上,也算是集各家之所长做个资料整理了。

1.snmp版本net-snmp-5.9.3,官网下载:Net-SNMP

2.编译configure:./configure --host=arm-linux --with-cc=arm-linux-gnueabihf-gcc --with-endianness=little --disable-embedded-perl --disable-shared --prefix=/home/user/snmp/

其中--disable-embedded-perl,--disable-shared,没有会报错,具体没有深入研究可能跟哪个库相关;配置选项说明如下:

–host=arm-linux    运行平台
–target=arm-linux    目标平台
–build=i686-linux    编译平台
–with-cc=arm-linux-gcc    交叉编译工具
–with-ar=arm-linux-ar    使用的打包工具
–prefix=/usr/local/net-snmp    安装目录
–disable-shared    不编译共享库
–disable-scripts    不要安装mib2c等脚本
–with-endianness=little    指定小端模式
-enable-mini-agent    最小化构建agent
--disable-deprecated    不编译弃用的功能
--without-logfile    指定snmpd不输出日志文件(可以使用--with-logfile指定默认日志文件位置)
--disable-minimalist    删除所有非基本的代码功能
–enable-debugging    打开调试信息
--disable-testing-code    不使用测试代码(某些代码不被使用)
–with-openssl=/opt/hardhat    openssl库路径(用于支持加密等)
–disable-ipv6    不使用IPv6
–disable-manuals    不安装manpage说明页
–disable-ucd-snmp-compatibility    不需要兼容ucd-snmp
–disable-snmptrapd-subagent    不用支持snmptrapd的子代理
–disable-embedded-perl    在SNMP代理和snmptrapd禁用嵌入式Perl。默认启用
–disable-applications    是否关闭snmpget等功能,根据自己的需要选择
--with-default-snmp-version="3"    指定默认协议版本
--enable-as-needed    仅链接需要库,不链接不必要的库(如果只使用其他方法行不通,链接libperl针对应用而非Net-SNMP库。)

3.编译make:make LDFLAGS="-static" ,暂时没有尝试非静态编译会不会移植有问题;

4.编译make install:路径为--prefix=/home/user/snmp/的路径,东西都在这个下面;

5 配置文件snmp.conf的修改:

先将示例的配置文件拷贝到安装目录下:

cp EXAMPLE.conf  /share/snmp/snmpd.conf

修改1:打开对外udp:161端口

#  Listen for connections from the local system only
#agentAddress  udp:127.0.0.1:161    #注释掉
#  Listen for connections on all interfaces (both IPv4 *and* IPv6)
#agentAddress udp:161,udp6:[::1]:161
agentAddress udp:161     #添加

修改2:选择SNMP协议版本

#
#  ACTIVE MONITORING
#

                                    #   send SNMPv1  traps
#trapsink     localhost public
                                    #   send SNMPv2c traps
trap2sink    localhost public
                                    #   send SNMPv2c INFORMs
#informsink   localhost public

修改3:设置访问权限

#
#  ACCESS CONTROL
#

                                                 #  system + hrSystem groups only
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1

                                                 #  Full access from the local host
#rocommunity public  localhost
                                                 #  Default access to basic system info
# rocommunity public  default    -V systemonly
rocommunity public default
 

6.移植:

将share下的mibs库、snmpd.conf、/sbin/下的snmpd移植到板子下,运行snmpd:

./snmpd -c share/snmp/snmpd.conf -f -Le -d -M share/snmp/mibs/

配置说明如下:

注:snmpd命令的有用选项
-c FILE 指定文件为配置文件
-C 不读取默认的配置文件
-d dump接收和发送SNMP数据包
-D TOKEN 对于给定的TOKEN(标志)打开调试信息 ( -Dmib_init)
-I [-]INITLIST 对于要初始化的MIB列表显示
-M DIRLIST 指定MIB库的路径
-V 显示详细信息
-Le 把错误信息输出到日志中
-Lf FILE 把错误信息输出到指定文件中
-m MIBLIST use MIBLIST instead of the default MIB list
-f                    do not fork from the shell

可见基本功能正常LOG如下:

7.安装 SNMP客户端工具MIB Browser

官方下载地址:http://www.ireasoning.com/download.shtml

选择板子IP为192.168.0.140如下:(该软件还不是很会用,后续补充)

 点击get可以在板子获得响应:

 8.总结

至此snmp基本功能调通,后续还有大量移植工作需要完成,最关键的是源码移植,后续再进行补充。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值