一、源码目录项内容
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. 031——VUE中表单控件处理之使用vue控制input和textarea表单项

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. redis在.net架构中的应用(1)--利用servicestack连接redis

    引言:作为少有的.net架构下的大型网站,stackoverflow曾发表了一篇文章,介绍了其技术体系,原文链接http://highscalability.com/blog/2011/3/3/sta ...

  3. mysql5.6与mysql5.5不同

    1.编译阶段 要明白with与without的区别,选项值分1和0,或者对应为on或off,代表支持与不支持:with的1(on)与without的0(off)是同样的,with的0(off)与wit ...

  4. SpringInAction--XML配置Spring Aop

    前面学习了如何用注解的方式去配置Spring aop,今天把XML配置的方法也看了下,下面顺便也做了个记录 先把spring中用xml配置aop的配置元素给贴出来: <aop:advisor&g ...

  5. 简易安装ubuntu- -(虚拟机实现)

    第一步:获取资源 安装vmware 百度上搜索vmware虚拟机,直接在百度上下载下来. 按平时安装东西步骤差不多 最后使用的时候有出现适用30天或者永久使用需要序列号 序列号可以使用 5A02H-A ...

  6. New Concept English three(13)

    1原文打字 32w/m 错词27个 After her husband had gone to work, Mrs Richards sent her children to school and w ...

  7. vue.js 源代码学习笔记 ----- instance index

    import { initMixin } from './init' import { stateMixin } from './state' import { renderMixin } from ...

  8. [Python] print中的左右对齐问题

    一.数值类型(int.float) #  %d.%f是占位符>>> a = 3.1415926>>> print("%d"%a)    #%d只 ...

  9. Ubuntu连接手机步骤

    第一次使用adb之前,需要在home/.android里新建adb_usb.ini文件:0x1782. 注:adb已在安装系统后装好,手机要处于开机状态 查看设备命令: $ adb devices 正 ...

  10. sync or async connect redis in golang

    Head of head 在golang的整个生态里,redis client lib全部都使用多连接或者连接池.这是让人难以理解的,所以我和xiaofei一起写了一个同时支持同步和异步的redis ...