朱的工作记录  
技术博客
日历
<2020年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910
统计
  • 随笔 - 2
  • 文章 - 4
  • 评论 - 4
  • 引用 - 0

导航

常用链接

留言簿(1)

随笔档案

文章分类

文章档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 

开发环境

开发主机:SUSE Linux9.3(内核2.6.11.4-20a-default

编译器:mipsel-linux-uclibc-gcc 3.4.3

解压ucd-snmp-4.2.tar.gz源码包

#tar xzvf ucd-snmp-4.2.tar.gz

#cd ucd-snmp-4.2/

# ./configure --with-cc=mipsel-linux-uclibc-gcc --with-ar=mipsel-linux-uclibc-ar --with-cflags="-Os -Dstatvfs=statvfs64 -Wno-error" --with-ldflags="-Wl,--no-undefined -Wl,--warn-once -Wl,--warn-common -Wl,--warn-constructors -Wl,--warn-multiple-gp" --includedir=/uclibc/include --libdir=/uclibc/lib/ --target=mips-elf-linux --host=mips-elf-linux --with-endianness=big --with-sys-contact="Unknown" --with-sys-location="Unknown" --with-logfile="/var/log/snmpd.log" --with-persistent-directory="/var/net-snmp" --disable-debugging --disable-ipv6 --disable-privacy --disable-libtool-lock --without-opaque-special-types --with-mib-modules="yourObject" --disable-FEATURE --without-PACKAGE --without-root-access --with-out-mib-modules="snmpv3" --with-out-mib-modules="notification" --with-out-mib-modules="ucd_snmp"

执行./configure生成Makefile文件。如果需要自定义更多功能,可以修改./configure选项。

注:确保ucd-snmp-4.2/agent/mibgroup/下有yourObject.cyourObject.h文件。



#vi ./mib_module_config.h

编辑mib_module_config.h,保留下面这几个函数,其余的都注释掉。

#define USING_MIBII_MODULE 1

#define USING_YOUROBJECT_MODULE 1

#define USING_MIBII_SYSTEM_MIB_MODULE 1

#define USING_MIBII_SNMP_MIB_MODULE 1

#define USING_MIBII_TCP_MODULE 1

#define USING_MIBII_ICMP_MODULE 1

#define USING_MIBII_IP_MODULE 1

#define USING_MIBII_UDP_MODULE 1

#define USING_MIBII_VACM_VARS_MODULE 1

#define USING_UTIL_FUNCS_MODULE 1



#vi agent/mibgroup/mib_module_inits.h

编辑mib_module_inits.h,保留下面这几个函数,其余的都注释掉。

if (should_init("yourObject")) init_yealinkObject();

if (should_init("snmp_mib")) init_snmp_mib();

if (should_init("system_mib")) init_system_mib();

if (should_init("snmp_mib")) init_snmp_mib();

if (should_init("tcp")) init_tcp();

if (should_init("icmp")) init_icmp(); if (should_init("ip")) init_ip();

if (should_init("udp")) init_udp();

if (should_init("vacm_vars")) init_vacm_vars();


#vi agent/Makefile

编辑Makefile文件,分别在LMIBOBJS 和MIBOBJS这两行去除不需要的模块,可参考mib_module_inits.h里面注册的模块。

#make

生成的snmpd文件在/ ucd-snmp-4.2/agent/

# mipsel-linux-uclibc-strip snmpd

strip去掉一些不必要的信息,减小文件大小


MIB文件转为.c/.h文件

进入ucd-snmp-4.2/local/目录下,复制YOUR-MIB.mib到这个目录。

该目录下有个mib2c脚本文件。

# env MIBS="+YOUR-MIB" ./mib2c yourObject

即可生成.c.h文件。如果遇到mib2c有问题,vi mib2c,查看第一行的perl路径是否正确。

复制生成的yourObject.cyourObject.h文件到ucd-snmp-4.2/agent/mibgroup/目录下。在yourObject.c文件中添加init_yourObjectvar_yourObject函数所需的内容。






 

 

posted on 2011-05-20 10:59 阅读(503) 评论(0)  编辑 收藏 引用 所属分类: linux编程

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


 
Copyright © 朱 Powered by: 博客园 模板提供:沪江博客