Armadilloフォーラム

net-snmpのクロスコンパイル環境構築

nishi

2014年6月2日 10時47分

西村と申します。
このたび初投稿させていただきます。

[ 目的 ]
今回、Armadillo-440にSNMPエージェント機能を実装するにあたり、net-snmpのクロスコンパイル環境の構築と、
イメージ化してループバックで標準MIBの動作確認までを目的としています。

[ 問題点 ]
先達の方々の過去ログを元に、クロスコンパイルからオブジェクト生成まではできたのですが、
ループバックでsnmpwalkコマンドを発行した場合に、Cannot find module と出てしまいます。
また、クロスコンパイルが原因かと思ったのですが、make testコマンドも失敗してしまいます。

この問題点の原因と解決方法をご存じの方がいらっしゃいましたらご教授願えませんでしょうか。

[ 手順、詳細 ]
全てのコマンドはsudoで実行しています。
< ATDE >
① net-snmpソースの展開、./configure実行(使用ソース、オプションの情報は下記)
→ 正常終了
② 完了後、makeコマンドを実行
→ 正常終了
③ make testコマンドで確認
→ :testing 項目...(no pid file(s) found)FAILと表示され失敗する
④ make installコマンドを行い、デフォルトのromfsフォルダ内に上書きする
→ 正常終了
⑤ make imageコマンドを行い、romfsフォルダ内のファイルをイメージ化する。
→ 正常終了
⑥ Armadillo-440の内部フラッシュのuserland領域に書き込みブート起動
→ 正常終了
< Armadillo-440 >
⑦ /sbin/snmpdを実行
→ 正常終了?(プロンプトは戻ってくる)
⑧ snmpwalk -v 1 -c public localhost system コマンドを実行し、ループバックで標準MIBの動作確認
→ Cannot find module (IP-MIB): At line 0 in (none)のような結果が返る

///////////////////////////////////////
以下、詳細情報となります。

[使用net-snmpソース]
net-snmp_5.4.1~dfsg.orig.tar
http://archive.debian.net/ja/source/lenny/net-snmp(Debian Lennyのサイトより入手 )

[configureオプション]
./configure --prefix=/home/atmark/kernel/atmark-dist/romfs --with-ar=/usr/bin/arm-linux-gnueabi-ar --with-cc=/usr/bin/arm-linux-gnueabi-gcc --build=i686-pc-linux-gnu --host=arm-linux --target=arm-linux --with-endianness=little

コメント

at_yashi

2014年6月3日 17時08分

> ⑦ /sbin/snmpdを実行
> → 正常終了?(プロンプトは戻ってくる)

-f を付けると、 daemon 化せずに(つまりプロンプトが戻らずに) 動かせるはずです。
その状態でログを出すと、なにをしているかわかりませんか?

> ⑧ snmpwalk -v 1 -c public localhost system コマンドを実行し、ループバックで標準MIBの動作確認
> → Cannot find module (IP-MIB): At line 0 in (none)のような結果が返る

ネットワーク通信を確認するためには、wireshark がおすすめです。

nishi

2014年6月5日 17時22分

at_yashi様
返信ありがとうございます。

> > ⑦ /sbin/snmpdを実行
> > → 正常終了?(プロンプトは戻ってくる)
>
> -f を付けると、 daemon 化せずに(つまりプロンプトが戻らずに) 動かせるはずです。
> その状態でログを出すと、なにをしているかわかりませんか?

ログを確認したところ下記のメッセージがありました。見たところ、snmptrapdが吐いているようなので
そちらの設定などを見直してみます。

<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (NOTIFICATION-LOG-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (DISMAN-EVENT-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (DISMAN-SCHEDULE-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (UCD-SNMP-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (UCD-DEMO-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (SNMP-TARGET-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (NET-SNMP-AGENT-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (HOST-RESOURCES-TYPES): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (SNMP-FRAMEWORK-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (SNMP-MPD-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (SNMP-USER-BASED-SM-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (SNMP-VIEW-BASED-ACM-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (SNMP-COMMUNITY-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (IP-FORWARD-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (NET-SNMP-EXTEND-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (UCD-DLMOD-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (SNMP-NOTIFICATION-MIB): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (SNMPv2-TM): At line 0 in (none)
<27>Jan 1 09:18:08 snmptrapd[1359]: Cannot find module (NET-SNMP-VACM-MIB): At line 0 in (none)
<28>Jan 1 09:18:08 snmptrapd[1359]: Warning: no access control information configured. This receiver will *NOT* accept any incoming notifications.
<30>Jan 1 09:18:08 snmptrapd[1360]: NET-SNMP version 5.4.1

> > ⑧ snmpwalk -v 1 -c public localhost system コマンドを実行し、ループバックで標準MIBの動作確認
> > → Cannot find module (IP-MIB): At line 0 in (none)のような結果が返る
>
> ネットワーク通信を確認するためには、wireshark がおすすめです。
>

ループバックはやめ、PCとつなげてTWSNMPで接続先検索をかけましたがSNMPエージェントとして認識されませんでした。
通信する前段階の問題のようです。

以上、まだ調査中ですが原因がわかりましたらまたこちらにて報告させていただきます。