{"id":1330,"date":"2015-09-04T13:04:03","date_gmt":"2015-09-04T05:04:03","guid":{"rendered":"http:\/\/kaoru.tech\/?p=1330"},"modified":"2015-09-04T13:33:18","modified_gmt":"2015-09-04T05:33:18","slug":"howto-cross-compile-and-configurate-net-snmp","status":"publish","type":"post","link":"http:\/\/kaoru.tech:7000\/wordpress\/?p=1330","title":{"rendered":"HOWTO Cross Compile and Configurate net-snmp"},"content":{"rendered":"<h1>Precondition<\/h1>\n<ul>\n<li>Hardware platform: ATMEL SAM9X5 Series<\/li>\n<li>Cross-compile tool: denx eldk-4.2<\/li>\n<\/ul>\n<h1>CrossCompile<\/h1>\n<h2>openssl<\/h2>\n<p>denx\u7684eldk-4.2\u7248\u672c\u7684arm\u7f16\u8bd1\u5668\u81ea\u5e26\u7684openssl\u5e93\u7248\u672c\u4e3a0.9.8b\uff0c\u5728\u7f16\u8bd1net-snmp\u7684\u65f6\u5019configure\u4f1a\u51fa\u9519\uff1a<\/p>\n<p><code>checking for BIO_dgram_get_peer... configure: error: DTLS support requires a newer version of OpenSSL<\/code><\/p>\n<p>\u6240\u4ee5\u9700\u8981\u4f7f\u7528\u9ad8\u7248\u672c\u7684openssl\u3002<\/p>\n<p><code>$ git clone\u00a0git:\/\/git.openssl.org\/openssl.git<\/code><\/p>\n<p>\u7531\u4e8enet-snmp\u4e0d\u652f\u63011.1\u7684\u7248\u672c\uff0c\u5e76\u4e14\u51fa\u4e8eHeartblood\u7684\u8003\u8651\uff0c\u6700\u7ec8\u9009\u7528\u7684\u662f0.9.8y\u7684\u7248\u672c\u3002<\/p>\n<p>openssl-0.9.8\u7684LIST\u6ca1\u6709\u5305\u542blinxu-elf-arm\u6216\u8005linux-armv4\uff0c\u5982\u679c\u6309\u7167&#8221;Configure shared no-asm linux=arm-linux-gcc&#8221;\u7f16\u8bd1\uff0c\u4f1a\u51fa\u73b0\uff1a<\/p>\n<blockquote><p>You gave the option &#8216;shared&#8217;. Normally, that would give you shared libraries.<br \/>\nUnfortunately, the OpenSSL configuration doesn&#8217;t include shared library support<br \/>\nfor this platform yet, so it will pretend you gave the option &#8216;no-shared&#8217;.<\/p><\/blockquote>\n<p>google\u4e86\u4e00\u4e0b\uff0c0.9.8\u7684openssl\u91c7\u7528\u7edf\u4e00\u7684linux-generic32\u7684target\u6765\u7f16\u8bd1\uff1a<\/p>\n<p>&nbsp;<\/p>\n<p><code>$ git check\u00a0OpenSSL_0_9_8y<br \/>\n$ .\/Configure\u00a0linux-generic32 no-asm shared<br \/>\n$ make<br \/>\n$ make INSTALL_PREFIX=\/tmp\/package-root install<\/code><\/p>\n<p>\u7f16\u8bd1\u5b8c\u6210\u540e\u53ef\u4ee5\u628aopenssl\u62f7\u8d1d\u5230\u76ee\u6807\u677f\u4e0a\u6267\u884c\u4ee5\u9a8c\u8bc1\u6b63\u786e\u6027\uff1a<\/p>\n<p><code>$ openssl genrsa 512<br \/>\nGenerating RSA private key, 512 bit long modulus<br \/>\n.................................++++++++++++<br \/>\n..++++++++++++<br \/>\ne is 65537 (0x10001)<br \/>\n-----BEGIN RSA PRIVATE KEY-----<br \/>\nMIIBOQIBAAJBAME3jqRRlFt\/wnVOHdqKr5\/aB+yGrP9ErmQjbNOTIkf63kvalBu5<br \/>\n9fYCwq1ScLjZsRHUDrxLJDL21IgeWAXIvvECAwEAAQJAXGil4BDkU56W8mOaA5uw<br \/>\nw1MT1xvSQYQno90Nf2MvUhzkzE9Y81\/+CcZqkNRdGcAD6WvSVQ5mkyHxv8mjrGPv<br \/>\nwQIhAOLr4i6CM6hqWfzp8nv9msnPv9ntDkGISG\/Eg\/5NjDaXAiEA2foBw0Y1iCP+<br \/>\nl9XwomtLNM3oVTXyCsXK+PCYGcS4L7cCIA88JwNYWn+EJGaGjnEkpa\/G8up+r+ZW<br \/>\ncAaQ+wunyTIhAiAZV0JLNGdWy3B2sG2IRFb67ZE8DshzzijZpgbYwBD1owIgFbLR<br \/>\nkjlSMIoNpDV1SjYLi\/sk3lcdInDGwltyR1TOCms=<br \/>\n-----END RSA PRIVATE KEY-----<\/code><\/p>\n<p>\u7531\u4e8e\u7b2c\u4e00\u6b21\u7f16\u8bd1\u7684\u65f6\u5019\u6ca1\u6709\u9a8c\u8bc1\uff0c\u5bfc\u81f4\u540e\u6765snmpd\u542f\u52a8\u7684\u65f6\u5019\u51fa\u9519\u3002<\/p>\n<h2>net-snmp<\/h2>\n<p>\u5728\u5b98\u7f51\u4e0b\u8f7dnet-snmp\u7684\u6e90\u7801\uff0c\u672c\u4eba\u4e0b\u8f7d\u7684\u4e3a\u76ee\u524d\u7684\u6700\u65b0\u7248\uff1a5.7.3<\/p>\n<p>\u89e3\u538b\u7f29\uff0c\u7f16\u8bd1\uff1a<\/p>\n<p><code>$ .\/configure --build=i386-linux --host=arm-linux --disable-ipv6 --with-endianness=little \\<br \/>\n--disable-manuals --enable-as-needed --enable-embedded-perl \\<br \/>\n--without-perl-modules --disable-snmptrapd-subagent --disable-scripts \\<br \/>\n--without-rpm --prefix=\/path_to_your\/rootfs --with-security-modules=tsm \\<br \/>\n--with-transports=TLSTCP,DTLSUDP --with-openssl=\/data\/utils\/openssl.git<\/code><\/p>\n<p>\u7531\u4e8e\u6211\u4eec\u4e4b\u524d\u91cd\u65b0\u7f16\u8bd1\u4e86openssl\uff0c\u800c\u4e0d\u5b9e\u7528\u7cfb\u7edf\u81ea\u5e26\u7684openssl\u5e93\uff0c\u6240\u4ee5\u9700\u8981\u4f7f\u7528&#8221;&#8211;with-openssl&#8221;\u6307\u5b9a\u8def\u5f84\u3002<\/p>\n<p><code>$ make LDFLAGS=\"-static\"<br \/>\n$ make install<\/code><\/p>\n<p>\u8fd9\u6837\u53ef\u4ee5\u4e0d\u7f16\u8bd1\u51fa\u52a8\u6001\u5e93\u3002\u7f16\u8bd1\u5b8c\u6210\u540e\u4e3b\u76ee\u5f55\u4e0b\u4f1a\u751f\u6210\u4e00\u4e2a\u811a\u672c\u6587\u4ef6net-snmp-config\uff0c\u8fd9\u4e2a\u811a\u672c\u53ef\u4ee5\u7528\u6765\u7f16\u8bd1\u91c7\u7528\u4ee3\u7406\u673a\u5236\u7f16\u5199\u7684snmpd\u670d\u52a1\uff0c\u4e5f\u53ef\u4ee5\u7528\u6765\u521b\u5efav3\u7248\u672c\u7684\u7528\u6237\u540d\u3001\u5bc6\u7801\uff0c\u6b64\u529f\u80fd\u7b49\u4e8e\u4e8e\u00a0net-snmp-create-v3-user\u811a\u672c\u3002<\/p>\n<h3>v2\u6d4b\u8bd5<\/h3>\n<p>\u6211\u4eec\u91c7\u7528V2\u6765\u9a8c\u8bc1snmpd\u7684\u529f\u80fd\u3002<\/p>\n<p>\u5c06snmpd\u3001snmpget\u3001snmpwalk\u4f20\u81f3\u76ee\u6807\u677f\uff1b<\/p>\n<p>\u5c06\u7cfb\u7edfMIB\u5e93\u4f20\u81f3\u76ee\u6807\u677f\u7684\/path_to_your\/rootfs\/share\/snmp\/mibs\u76ee\u5f55\uff1b<\/p>\n<p>\u5177\u4f53\u8def\u5f84\u53ef\u4ee5\u901a\u8fc7&#8221;snmpd -h&#8221;\u67e5\u770b\u3002<\/p>\n<p>snmpd.conf\u53ef\u4ee5\u901a\u8fc7&#8221;snmpconf -g basic_setup&#8221;\u6765\u4ea7\u751f\u3002<\/p>\n<p>\u6216\u8005\u53ea\u9700\u5728snmpd.conf\u4e2d\u6dfb\u52a0\uff1a<\/p>\n<p><code>rwcommnunity public<br \/>\n<\/code><br \/>\n\u7136\u540e\u8fd0\u884csnmpd\uff1a<\/p>\n<p><code># snmpd -f -Lo<br \/>\nNET-SNMP version 5.7.3<\/code><\/p>\n<ul>\n<li>-f\uff1a\u4ee5\u524d\u53f0\u5f62\u5f0f\u542f\u52a8<\/li>\n<li>-Lo\uff1a\u8f93\u51faDEBUG\u4fe1\u606f\u5230\u6807\u51c6\u8f93\u51fa<\/li>\n<\/ul>\n<p>\u53e6\u5916\u5f00\u4e00\u4e2a\u7ec8\u7aef\u901a\u8fc7snmpget\u53ef\u4ee5\u67e5\u770b\u8fd0\u884c\u65f6\u95f4\uff1a<\/p>\n<p><code># snmpget -v2c -c public localhost sysUpTime.0<br \/>\nDISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (727) 0:00:07.27<\/code><\/p>\n<p>\u5982\u679c\u6d4b\u8bd5\u81ea\u5df1\u5199\u7684Agentx\u5219\u9700\u8981\u5728snmpd.conf\u4e2d\u6dfb\u52a0\uff1a<\/p>\n<p><code>master agentx<br \/>\n<\/code><\/p>\n<p>\u91cd\u542fsnmpd\u670d\u52a1\uff1a<\/p>\n<p><code>#\u00a0snmpd -f -Lo<br \/>\nTurning on AgentX master support.<br \/>\nNET-SNMP version 5.7.3<\/code><\/p>\n<p>\u53ef\u4ee5\u770b\u5230\uff0c\u6bd4\u4e4b\u524d\u591a\u4e86\u4e00\u884c&#8221;Turning on AgentX master support.&#8221;\u63d0\u793a\uff0c\u7136\u540e\u8fd0\u884c\u6211\u4eec\u7684agent\u4ee3\u7406\u3002<\/p>\n<p>\u56e0\u4e3a\u6211\u4eec\u7684\u4ee3\u7801\u5728\u7f16\u8bd1\u7684\u65f6\u5019\u5b9e\u9645\u4e0a\u7528snmp\u7684\u4ee3\u7801\u5957\u7528\u6211\u4eec\u81ea\u5df1\u4ea7\u751f\u7684\u4ee3\u7801\uff0c\u6240\u4ee5\u4e5f\u53ef\u4ee5\u4f7f\u7528\u548csnmpd\u4e00\u6837\u7684\u53c2\u6570\uff1a<\/p>\n<p><code># myswitch -f -Lo<br \/>\nNET-SNMP version 5.7.3 AgentX subagent connected<\/code><\/p>\n<p>\u53ef\u4ee5\u770b\u5230\uff0c\u7a0b\u5e8f\u5df2\u7ecf\u94fe\u63a5\u5230Agnetx\u4ee3\u7406\u3002<\/p>\n<p>\u5728snmp.conf\u4e2d\u6dfb\u52a0\u81ea\u5df1\u5b9a\u4e49\u7684MIB\u5e93\uff08\u6dfb\u52a0\u7684MIB\u5e93\u540d\u5b57\u9700\u8981\u548c\u653e\u7f6e\u5230mibs\u76ee\u5f55\u4e2d\u7684\u540d\u5b57\u4e00\u81f4\uff09\uff1a<\/p>\n<p><code>mibs +MYBOARD-MIB<br \/>\n<\/code><br \/>\n\u7136\u540e\u5c31\u53ef\u4ee5\u4f7f\u7528<br \/>\n<code># snmptranslate -Tp -IR mySwitch<br \/>\n+--mySwitch(1)<br \/>\n+-- -R-- String sysName(1)<br \/>\n+-- -R-- String sysTempratrue1(2)<br \/>\n+-- -R-- String sysTemprature2(3)<br \/>\n+-- -R-- String sysHumidity1(4)<br \/>\n+-- -R-- String sysHumidity2(5)<br \/>\n+-- -RW- String sysTime(6)<br \/>\n+-- -RW- String sysThresAlarm(7)<br \/>\n+-- -R-- String sysThresRated(8)<br \/>\n+-- -RW- String sysThresDanger(9)<br \/>\n+-- -R-- String sysIrms(10)<br \/>\n+-- -R-- String sysModuleNum(11)<br \/>\n+-- -RW- String sysCutoffPolicy(12)<br \/>\n+-- -RW- String sysReset(13)<br \/>\n+-- -R-- String sysUrms(14)<br \/>\n+-- -RW- String sysUrmsMinAlarm(15)<br \/>\n+-- -RW- String sysUrmsMaxAlarm(16)<br \/>\n+-- -R-- String sysHWVersion(17)<br \/>\n+-- -R-- String sysSWVersion(18)<br \/>\n+-- -RW- String sysNetwork(19)<br \/>\n+-- -RW- String sysSNMP(20)<br \/>\n|<br \/>\n+--myboardModuleTable(28)<br \/>\n| |<br \/>\n| +--myboardModuleEntry(1)<br \/>\n| | Index: moduleIndex<br \/>\n| |<br \/>\n| +-- -R-- String moduleName(1)<br \/>\n| +-- -RW- String moduleThresAlarm(2)<br \/>\n| +-- -RW- String moduleThresRated(3)<br \/>\n| +-- -RW- String moduleThresDanger(4)<br \/>\n| +-- -R-- String moduleIrms(5)<br \/>\n| +-- -R-- String moduleSocketNum(6)<br \/>\n| +-- -RW- String moduleSocketInterval(7)<br \/>\n| +-- ---- Integer32 moduleIndex(255)<br \/>\n| Range: 1..6<br \/>\n|<br \/>\n+--myboardSocketTable(30)<br \/>\n|<br \/>\n+--myboardSocketEntry(1)<br \/>\n| Index: socketIndex<br \/>\n|<br \/>\n+-- -R-- String socketName(1)<br \/>\n+-- -R-- String socketType(2)<br \/>\n+-- -RW- String socketLoadLevel(3)<br \/>\n+-- -RW- String socketAlarm(4)<br \/>\n+-- -R-- String socketRated(5)<br \/>\n+-- -RW- String socketOnOffStatus(6)<br \/>\n+-- -R-- String socketOnOff(7)<br \/>\n+-- -R-- String socketLED(8)<br \/>\n+-- -R-- String socketUrms(9)<br \/>\n+-- -R-- String socketIrms(10)<br \/>\n+-- -R-- String socketActivePower(11)<br \/>\n+-- -R-- String socketReactivePower(12)<br \/>\n+-- -R-- String socketPf(13)<br \/>\n+-- -R-- String socketMaxActivePower(14)<br \/>\n+-- -R-- String socketEnergy(15)<br \/>\n+-- ---- Integer32 socketIndex(255)<br \/>\nRange: 1..24<\/code><\/p>\n<p>\u67e5\u770b\u81ea\u5df1\u6dfb\u52a0\u7684MIB\u5e93\u7684\u6811\u5f62\u5b9a\u4e49\uff0c\u6216\u8005\u4f7f\u7528\uff1a<\/p>\n<p><code>snmpwalk -v2c -c public localhost mySwitch<br \/>\n<\/code><br \/>\n\u904d\u5386\u81ea\u5b9a\u4e49\u7684MIB\u4fe1\u606f\u3002<\/p>\n<h3>v3\u6d4b\u8bd5<\/h3>\n<p>error finding server identity keys<\/p>\n<p>TLSTCP: Failed to create a SSL BIO<\/p>\n<h1>References<\/h1>\n<ul>\n<li>http:\/\/www.net-snmp.org\/<\/li>\n<li>http:\/\/www.net-snmp.org\/wiki\/index.php\/TUT:Using_TLS<\/li>\n<li>http:\/\/www.net-snmp.org\/wiki\/index.php\/Using_DTLS<\/li>\n<li>http:\/\/www.net-snmp.org\/wiki\/index.php\/DTLS_Implementation_Notes<\/li>\n<li>https:\/\/www.openssl.org\/<\/li>\n<li>http:\/\/openssl.6102.n7.nabble.com\/cross-compiling-openssl-for-arm-td30536.html<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Precondition Hardware platform: ATMEL SAM9X5 Series Cross-compile tool: denx eldk-4.2 CrossCompile openssl denx\u7684eldk-4.2\u7248\u672c\u7684arm\u7f16\u8bd1\u5668\u81ea\u5e26\u7684openssl\u5e93\u7248\u672c\u4e3a0.9.8b\uff0c\u5728\u7f16\u8bd1net-snmp\u7684\u65f6\u5019configure\u4f1a\u51fa\u9519\uff1a checking for BIO_dgram_get_peer&#8230; configure: error: DTLS support requires a newer version of OpenSSL \u6240\u4ee5\u9700\u8981\u4f7f\u7528\u9ad8\u7248\u672c\u7684openssl\u3002 $ git clone\u00a0git:\/\/git.openssl.org\/openssl.git&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[240],"tags":[242,243,241,20],"class_list":["post-1330","post","type-post","status-publish","format-standard","hentry","category-howtos","tag-arm","tag-howtos","tag-net-snmp","tag-openssl"],"_links":{"self":[{"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1330","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1330"}],"version-history":[{"count":6,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1330\/revisions"}],"predecessor-version":[{"id":1336,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1330\/revisions\/1336"}],"wp:attachment":[{"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1330"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1330"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/kaoru.tech:7000\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1330"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}