一、源码目录项内容
agent:编译snmpd程序所需的文件,mibs源文件;
apps:其他相关的程序:snmpwalk,snmptrap,snmptest,snmpget,snmpset;
mibs:mibs 接口配置文件
 
二、snmpd 编译方式
1、静态库方式
1)最小化编译:(-enable-mini-agent),编译出来的体积较小,但是很多接口都没有;
2)最大化编译:(-enable-mini-agent),几乎能用到的接口都会包含,体积较大;
2、动态库方式
    只需要把新引入的MIB模块的.c和.h文件编译成.so库,通过设置snmpd.conf由snmpd代理程序动态加载。需要snmpd代理程序支持dlmod或load命令,其次需要系统支持(unix);
3、子代理 编译方式
    新增mibs 作为独立的子代理,让snmpd在主代理的模式运行。对于snmpd不需要任何的更改和配置。把子代理编译生成的程序运行起来就可以扩展自定义MIB库。
 
三、snmpd 编译安装
1、编译、压缩程序
1)配置脚本
./configure --host=arm-marvell-linux-gnueabi --with-cc=arm-marvell-linux-gnueabi-gcc --with-ar=arm-marvell-linux-gnueabi-ar 
--disable-shared --disable-scripts --with-endianness=little -enable-mini-agent --disable-ipv6 --disable-manuals
--disable-ucd-snmp-compatibility --enable-as-needed --disable-embedded-perl
2)编译选项
--disable-agent Do not build the agent (snmpd).
--disable-applications Do not build the apps (snmpget, ...).
--disable-manuals Do not install the manuals.
--disable-scripts Do not install the scripts (mib2c, ...).
--disable-mibs Do not install the mib files.
--disable-mib-loading Do not include code that parses and
manipulates the mib files.
--enable-mini-agent 最小化构建agent,很多接口都没有(内存、网络等等和子代理模式),如果不选择这项,编译出来的snmpd体积较大,
但是几乎所有的mibs接口已经包含。
注意:注意:使用子代理模式,snmpd程序不能编译 mini-agent选项
 
3)选择版本,1 2 3 对应1 2c 3;
其他选择项,我们直接回车(后面这些选择项对应获取的信息,可以通过snmpd.conf修改);
4)make
编译完成后进入 agent目录,查看是否生成了snampd文件;
5)压缩可执行程序
arm-marvell-linux-gnueabi-strip snmpd
3、错误类型
错误A:/usr/lib/gcc-cross/arm-linux-gnueabi/4.9/../../../../arm-linux-gnueabi/bin/ld: cannot find -lperl

    collect2: error: ld returned 1 exit status
解决办法:configure配置的时候加上一个参数--disable-embedded-perl
 
 
四、配置文件设置和启动命令
1、配置文件(/etc 目录下)
# sec.name source community
com2sec notConfigUser default public
# groupName securityModel securityName
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
# name incl/excl subtree mask(optional)
view all included .
# group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact all none none #snmpd 运行在子代理模式
master agentx
1)首先定义一个首共同体名称(community),这里是 public。以及可以访问这个 public 的用户名(sec name),这里是 notConfigUser 。public 相当于用户 notConfigUser 的密码。
 
2、启动
1)

snmpd -c /etc/snmpd/snmpd.conf -f -Le -d -M /etc/snmpd/mibs
2)启动参数
注: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

嵌入式设备snmpd 移植和测试(78K为例)的更多相关文章

  1. Local Binary Convolutional Neural Networks ---卷积深度网络移植到嵌入式设备上?

    前言:今天他给大家带来一篇发表在CVPR 2017上的文章. 原文:LBCNN 原文代码:https://github.com/juefeix/lbcnn.torch 本文主要内容:把局部二值与卷积神 ...

  2. 嵌入式设备web服务器比较

    目录(?)[-] Boa Thttpd Mini_httpd Shttpd Lighttpd Goahead AppWeb Apache 开发语言和开发工具 结论 备注   现在在嵌入式设备中所使用的 ...

  3. 嵌入式设备web服务器

    操作系统:ubuntu10.04 前言:    为了提高对设备的易操作性,很多设备中提供pc机直接通过浏览器操作设备的功能.这就需要在设备中实现web服务器.    现在在嵌入式设备中所使用的web服 ...

  4. S04_CH01_搭建工程移植LINUX/测试EMMC/VGA

    S04_CH01_搭建工程移植LINUX/测试EMMC/VGA 1.1概述: 本章内容是在已经提供安装了VIVADO2015.4 的ubuntu系统下,进行.大家可以下周我们已经提供的虚拟机镜像,我们 ...

  5. 在嵌入式设备中实现webrtc的第三种方式①

    最近两年,我对于网络知识,包括底层协议学习比较多,webrtc这种几乎是使用到了所有层面网络协议的技术也逐渐进入我的视野. 之前我提出了两种在嵌入式设备上实现webrtc的方式,一是用官方代码,然后改 ...

  6. 嵌入式设备上的 Linux 系统开发

    转载:http://www.ibm.com/developerworks/cn/linux/embed/embdev/index.html   如果您刚接触嵌入式开发,那么大量可用的引导装载程序(bo ...

  7. 嵌入式设备hacking(转)

    原帖地址:http://drops.wooyun.org/papers/5157 0x00 IPCAM hacking TOOLS github-binwalk firmware-mod-kit ID ...

  8. 【ARM-Linux开发】ARM嵌入式设备Linux系统启动步骤和方式

    1). 简介 本文简单介绍ARM嵌入式设备基于嵌入式Linux操作系统时候的启动步骤和启动方式, 区别与X86平台,ARM平台下并没有一个标准的启动步骤,不同ARM SoC都会使用各自定义的boot ...

  9. 在内核中异步请求设备固件firmware的测试代码

    在内核中异步请求设备固件firmware的测试代码 static void ghost_load_firmware_callback(const struct firmware *fw, void * ...

随机推荐

  1. 016PHP基础知识——流程控制(四)

    <?php /** * 流程控制(四) do...while * do{ 代码段 * }while(){ * } * 特点:最少会执行一次代码段 */ /*$i=5; do{ echo $i; ...

  2. Ansible 1.9.0发布 来一起看看这个配置管理新贵

    Ansible 1.9.0(版本代号是Dancing In the Street,Ansible每个主要版本代号都是VanHallen乐队的一首曲子)的主要变化是: Added kerberos su ...

  3. Unity 3D 无法显示中文的解决方法

    大家开始用unity3D时想必都会遇到一个问题,使用中文时会乱码.这是由于编码方式不同导致的,具体解决方法如下: 程序写代码什么的最好下个像Notepad++类似的工具,这里使用Notepad++修改 ...

  4. 20165202 2017-2018-2 《Java程序设计》第8周学习总结

    20165202 2017-2018-2 <Java程序设计>第8周学习总结 教材学习内容总结 Ch12 进程与线程 线程是比进程更小的单位,一个进程在其执行过程中,可以产生多个线程 Ja ...

  5. Servlet自动加载

    --初始化数据库连接 在<servlet>标签下 <servlet-name>ServletDemo</servlet-name> <servlet-clas ...

  6. 继承users表,添加新字段成一个新表

    1. Tools > Run manage.py Task 创建app,users startapp users 2.修改users中的models from django.db import ...

  7. (转)MapReduce Design Patterns(chapter 7 (part 2))(十四)

    External Source Input Pattern Description 这种模式不从hdfs加载数据,而是从hadoop以外系统,例如RDB或web service加载. Intent 想 ...

  8. 循环中的let和const声明

    一.循环中的let声明 每次循环的时候let声明都会创建一个新变量i,并将其初始化为i的当前值,所以循环内部创建的每个函数都能得到属于他们的i的副本. 最初的: for (var i = 0 ; i ...

  9. ios 10.3下载 Xcode8配置支持 ios 10.3下载

    一不小心,手机又升级了,哎

  10. BZOJ4975: [Lydsy1708月赛]区间翻转( 博弈&逆序对)

    4975: [Lydsy1708月赛]区间翻转 Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 265  Solved: 140[Submit][Stat ...