编译在虚拟机完成。
./configure --host=arm-linux-gnu --target=arm-linux-gnu --with-cc=/tools/Xilinx/SDK/2019.1/gnu/aarch64/lin/aarch64-linux/bin/aarch64-linux-gnu-gcc --prefix=/home/snmpInstall --disable-scripts --with-endianness=little --enable-mini-agent --disable-ipv6 --disable-manuals --enable-as-needed --disable-ucd-snmp-compatibility --disable-embedded-perl --disable-shared -enable-debugging
参数详解
./configure --host=目标平台名 --target=目标平台名 --build=编译平台名 --with-cc=编译器路径 --prefix=SNMP包在目标板卡上的预期路径
其中,平台名是由 CPU类型-制造商-操作系统 或 CPU类型-制造商-内核-操作系统 格式表示的规范的系统名称。编译平台名可以缺省,由config.guess从当前设备获取;目标平台名缺省时将默认为编译平台名,因此交叉编译时必需在参数中指定。
可以查看文件夹中 config.sub来找到平台名。
config.guess 这个是在构建环境上运行的一个脚本,它用来猜测构建机的配置环境,因为这个脚本是在构建机上运行,所以它可以动态执行uname等命令来获得构建机的环境,所以我们一般不要指定这个变量,从而让脚本自动获得。
config.sub 这个是将host target build变量正则化的一个脚本,它的sub就是substitute的缩写。因为用户提供的build可能并不符合脚本正规的四元组或者三元组的结构,所以这个脚本将它转换为标准的格式,从而可以进行格式化处理。
原文链接:C++学习(四零一)config.guess config.sub_hankern的博客-CSDN博客_config.guess
--disable-embedded-perl 缺少该参数将导致编译失败,报缺少perl lib错误;
--disable-shared 缺少将导致编译不完整,不产生动态库,原因未知;
其他参数含义参考:https://www.itdaan.com/blog/2015/09/16/e6b0d689b4e0f2d2f43b15a5604deb7e.html
脚本执行过程中会要求输入配置,回车跳过即可。
成功后显示如下信息
执行make,成功后显示:
执行make install,至此,编译完成。
安装包位于/home/snmpInstall,把整个snmpInstall文件夹压缩
安装包包含5个文件夹:
bin中是对应snmp不同功能的可执行文件,包括snmpwalk\snmpget\snmptrap等;
sbin中是进程类可执行文件,包括agent端的回复请求进程snmpd,和NMS端的接收trap/inform进程snmptrapd。bin&sbin对应的源文件位于net-snmp-5.9.1中的app文件夹
include中是所有的头文件;
lib中包含net-snmp动态库所有so文件,lib中动态库对应的源文件位于net-snmp-5.9.1中的snmplib文件夹。
share中保存配置文件和MIB,用于agent/NMS端的自定义配置。
非标MIB安装:Linux snmp导入MIB库 - 風£飛 - 博客园
解压到目标板卡的/home下解压,必须令安装包的绝对路径与prefix参数相同
需要知道交换机读和写权限的comunity名称,snmpget功能只需要用到读权限。配置交换机的snmp版本为v2c。
安装包中的include文件夹拷贝到项目中,并添加包含路径
安装包中的lib文件夹配置到项目动态库路径
从net-snmp-5.9.1中的app文件夹中得到snmpget.c,改写main函数:main函数改名,将输入参数改为调用参数,将打印改为返回值。
参考:https://www.yuque.com/dashboard/notes#QfaW
moxa交换机获取端口状态的oid为:.1.3.6.1.4.1.8691.603.1.1.2.1.1.3.n 该值从moxa的私有MIB中得到(.1.3.6.1.4.1为企业分支,8691为moxa的企业代码)。
使用moxa交换机的只读comunity名,默认为"public"
port为snmp请求的默认接收端口161,ip为moxa交换机的调试ip
snmp版本号为v2c
版权说明:如非注明,本站文章均为 扬州驻场服务-网络设备调试-监控维修-南京泽同信息科技有限公司 原创,转载请注明出处和附带本文链接。
请在这里放置你的在线分享代码