成功移植NET-SNMP到ARM平台

2016-08-13来源: eefocus关键字:成功移植  NET-SNMP  ARM平台
经过一个月的不懈努力终于将NET-SNMP成功移植到了ARM平台,网上关于NET-SNMP的资料很少,仅有的一些文章也都是轻描淡写,很容易被误导,我就是其中的受害者之一,交叉编译过程很复杂,要配置参数,路径,还有库。所以稍有插翅就会前功尽弃。而且每编译一次NET-SNMP都会耗费很多的时间。很容易挫败人的自信心。我整整啃了一个月的英文文档,边看边试。下面把详细过程贴出来,跟大家共享,希望那些也想移植NET-SNMP能够少走弯路。 

主机环境

Windows + vmware(redhat9.0)

IP分配如下:

      ARM开发板:192.168.4.151

      Windows:       192.168.4.44

      Redhat9.0:     192.168.4.150

搭建交叉编译环境

  把交叉编译器解压到/opt/目录下,然后在/etc/profile文件中添加

环境变量,pathmunge /opt/hardhat/devkit/arm/xscale_be/bin.

交叉编译步骤

①. tar –zxvf  net-snmp-5.3.2.tar.gz

②. cd net-snmp-5.3.2

③../configure --host=armv5teb-hardhat-linux           //运行平台

                            --build=i686-linux                           //编译平台

                          --with-cc=xscale_be-gcc                   //交叉编译器

                          --with-ar=xscale_be-ar                      //

                          --prefix=/usr/local/net-snmp              //安装目录

                            --disable-shared                              //静态编译

                            --with-endianness=little                   //指定小端

                            --enable-mini-agent                         //最小的SNMPD

                            --with-openssl=/opt/hardhat             //openssl库路径

                            /devkit/arm/xscale_be/target/usr

④. make (make LDFLAGS="-static",如果没有指定disable-shared)

⑤. make install

⑥. cp EXAMPLE.conf  /usr/local/net-snmp/share/snmp/snmpd.conf

⑦. 配置/usr/local/net-snmp/share/snmp/snmpd.conf文件

⑧.xscale_be-strip /usr/local/net-snmp/sbin/snmpd,压缩snmpd.

移植文件

在移植以前首先要删除AP上的/usr/sbin/snmpd和/etc/snmpd.conf.

1./usr/local/net-snmp/sbin/目录下snmpd进程

2./usr/local/net-snmp/share/snmp/目录下snmpd.conf ,mibs

3./usr/local/net-snmp/bin目录下net-snmp-config, snmpwalk, snmpget等

备注:snmpd,net-snmp-config,snmkwalk,snmpget等工具在移植以前,要先用xscale_be-strip压缩一下。然后snmpd放到AP的/usr/sbin中,

Snmpd.conf放到Ap 的/etc中。其他按照上面目录存放。AP上没有就自动创建。

在AP上运行snmpd

#snmpd –c /etc/snmpd.conf

备注:

1.在AP上运行时会出现缺少libcrypto.so.0.9.6文件。在交叉编译器中(/opt/hardhat/devkit/arm/xscale_be/target/usr/lib)能找到这个文件,然后put到AP的/lib/目录下。或者

 创建软连接ln –s /mnt/ramd/libcrypto.so.0.9.6 /lib/libcrypto.so.0.9.6。

2.原来snmpd.conf在/usr/local/net-snmp/share/snmp/snmpd.conf中,传到AP时放到/etc/目录中,所以在运行时用参数C来指定最新目录。

3.当snmpd进程运行时会在/var/net-snmp目录下创建一个snmpd.conf.

 原来没有,Snmpd.conf文件中有engineboot和engineID。当用net-snmp-config创建v3用户时,下面会自动添加

createuser zhuangqian MD5 “19840318” DES,当然同时也会在/usr/local/net-snmp/share/snmp/snmpd/conf中添加rwuser zhuangqian.

 

如何创建V3用户

方法一

①首先关闭snmpd进程

②net-snmp-config --create-snmpv3-user –a “19840318” zhuangqian

执行上面操作之后,/var/net-snmp/snmpd.conf文件中增加一行

  createuser zhuangqian  MD5 “19840318”  DES

/usr/local/net-snmp/share/snmp/snmpd.conf中增加一行

rwuser zhuangqian

③snmpd 启动进程

④snmpget –v  3  –u  zhuangqian –l  authNoPriv  –a  MD5  –A  “19840318”  localhost  sysUpTime.0或者

  snmpget  -v  3   -u  zhuangqian  –l  authPriv    –a  MD5

   -A  “19840318”  –x  DES – X  “19840318”  localhost sysUpTime.0

方法二

# net-snmp-config  --create-snmpv3-user ↙

# 输入用户名(zhuangqian)↙

# 输入authentication pass-phrase(验证)如19840318长度不小于8

# 输入encryption pass-phrase(加密)如19840318,直接回车则跟上面一样。

测试:

Snmpget –v 3 –l authPriv –u zhuangqian –A “19840318” –X “19840318”  localhost  sysUpTime.0

注意v3中authprotocal  MD5  SHA  Privprotocal  DES   AES

客户端能ping通运行snmpd进程的设备,但取不到值,可能是客户端防火墙问题,取消客户端防火墙试试。

测试V2

snmpwalk –v  2c  -c  public  192.168.4.151  if

snmpget  –v  2c  –c  public  192.168.4.151  system.sysName.0

关键字:成功移植  NET-SNMP  ARM平台 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/article_2016081328413.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:ARM7与CORTEX M3内核高速度下的真实性能分析
下一篇:ARM汇编----IMPORT

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

成功在mini2440上移植ffmpeg
在mini2440上,整个移植过程分三个步骤:(1)编译x264;(2)编译ffmpeg;(3)移植成功后,进行测试,即使用ffmpeg录像。(1)编译x264官网上下了个最新的x264,地址http://www.videolan.org/developers/x264.html。我下载的文件是last_x264.tar.bz2。解压命令为#tar -jxv -f last_x264.tar.bz2,解压后的目录为x264-snapshot-20130313-2245。进入解压后的目录,执行命令./configure --disable-asm,则会生成config.mak。之后就需要修改这个config.mak文件了,改写
发表于 2020-05-14
成功在mini2440上移植ffmpeg
arm中tslib-1.4移植成功,但qt应用程序 触摸屏没有响应
原因有多种可能。1. 移植qt的时候需要加入-qt-mouse-tslib(./configure -qt-mouse-tslib -xxxx)2. 确保export QWS_MOUSE_PROTO="TSLIB:/dev/input/event1 intelliMouse:/dev/input/mice"如果是qtopia时,export QWS_MOUSE_PROTO="TPanel:/dev/input/event1 USB:/dev/input/mice"
发表于 2020-02-14
成功移植SQLite3到ARM Linux开发板
/local/bin目录,将动态库文件复制到/usr/local/lib目录,并对动态库做链接。12345cp /media/sda1/sqlite3 /usr/locl/bincp /media/sda1 libsqlite3.so.0.8.6 /usr/local/libcd /usr/local/libln -s libsqlite3.so.0.8.6 libsqlite3.so.0ln -s libsqlite3.so.0.8.6 libsqlite3.so7、运行sqlite在开发板上执行sqlite3命令,看到如下信息说明sqlite3移植成功
发表于 2020-01-30
成功移植SQLite3到ARM Linux开发板
STM8L最小系统板移植Atomthreads成功
终于花了一天时间把atomthreads1.3移植到了STM8L151K4。由于之前有了移植STM8S的经验,这次整个过程清晰了很多。并且我也安装了STVP+COSMIC编译环境,因此这回也更加注重代码在不同编译器的兼容性。原版Atomthreads1.3的port目录下有点乱,所有编译器的相关文件都放在同一个目录下,我同样对目录结果进行了调整。让代码看起来更易读。同时,原作包括的意法半导体的外设库,一方面太陈旧,一方面也只有一小部分驱动程序,使用起来不方便,还有更重要的是,这个库对STM8L不适用。因此我把最新的ST驱动库整个放了进来。原作者之所以只拿了一小部分驱动,无非是考虑可能最后编译的二进制文件太大。其实这点不用担心,好
发表于 2020-01-18
成功移植icore的shell串口到STM32F4
icore开发板上的例子光盘下的  \iCore_扩展相关\code\7_uart1_shell工程文件,删除FSMC.c 和RCC.c 两个C文件和H文件移植步骤:第一、替换到之前的启动代码,添加startup_stm32f4xx.s 和system_stm32f4xx.c 两个文件。system_stm32f4xx.h可以替代到rcc.h 第二、改写NVIC.c 里的初始化代码。static int initialize(void){ SCB->VTOR = ((unsigned long)0x08000000); //Set the Vector Table base location at
发表于 2019-03-09
成功移植icore的shell串口到STM32F4
Fedora8上交叉编译qtopia4移植成功到s3c2410开发板
教程是这样的: 一.硬件平台 1.主机: PC机,512M内存以上。 2.目标机: UP-NetARM2410-S实验平台。 二.移植软件资源 1.Red Hat Linux 9.0(主机操作系统) 2.gcc-3.4.1.tar.gz(主机编译器) 3.arm-linux-gcc-3.4.1.tar.bz2(交叉编译器) 4.tslib-1.3.tar.bz2(管理目标平台的触摸屏) 5.qtopia-opensource-src-4.2.1.tar.gz(包含Qt, Qtopia core) 2 . GUI
发表于 2017-11-30
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved