Armadillo-IoTでSNMPエージェントを使用する方法を紹介します。
1.ATDE5をダウンロード
開発環境ATDE5を以下からダウンロードします。
i386向け
http://armadillo.atmark-techno.com/files/downloads/atde/atde5-i386-20150929.tar.xz
amd64向け
http://armadillo.atmark-techno.com/files/downloads/atde/atde5-amd64-20150929.tar.xz
ATDE5のインストールや起動方法は以下を参照してください。
2.ソースコードをダウンロード
2.1 ATDE5上でソースコードをダウンロードします。
atmark@atde5:~$ wget http://armadillo.atmark-techno.com/files/downloads/armadillo-iot/source/atmark-dist-20150918.tar.gz
atmark@atde5:~$ wget http://armadillo.atmark-techno.com/files/downloads/armadillo-iot/source/linux-3.14-at3.tar.gz
2.2 ソースコードを展開します。
atmark@atde5:~$ tar zxf atmark-dist-20150918.tar.gz
atmark@atde5:~$ tar zxf linux-3.14-at3.tar.gz
atmark@atde5:~$ ln -s atmark-dist-20150918 atmark-dist
atmark@atde5:~$ cd atmark-dist
atmark@atde5:~/atmark-dist$ ln -s ../linux-3.14-at3 ./linux-3.x
3.Perl5ビルド準備
SNMPエージェント(以下snmpd)の動作にはPerl5が必要ですので、Perl5をビルドします。
Perl5のビルド方法については、以下を参照いただければと思います。
※上記のブログではカーネル2.6で構築していますが、カーネル3.14でも手順は同じです
4.snmpdを準備する
使用したパッケージは以下になります。
http://ftp.jp.debian.org/debian/pool/main/n/net-snmp/snmpd_5.4.3~dfsg-2.8+deb7u1_armel.deb
http://ftp.jp.debian.org/debian/pool/main/n/net-snmp/libsnmp15_5.4.3~dfsg-2.8+deb7u1_armel.deb
http://ftp.jp.debian.org/debian/pool/main/l/lm-sensors/libsensors4_3.3.2-2+deb7u1_armel.deb
http://ftp.jp.debian.org/debian/pool/main/n/net-snmp/libsnmp-base_5.4.3~dfsg-2.8+deb7u1_all.deb
http://ftp.jp.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-24_armel.deb
4.1 作業用にsnmpdディレクトリを作成し、カレントディレクトリを移動します。
atmark@atde5:~$ mkdir snmpd
atmark@atde5:~$cd snmpd
4.2 romfsマージ用のディレクトリを作成します。
atmark@atde5:~/snmpd$ mkdir romfs
4.3 上記のパッケージをダウンロードします。
atmark@atde5:~/snmpd$ wget http://ftp.jp.debian.org/debian/pool/main/n/net-snmp/snmpd_5.4.3~dfsg-2.8+deb7u1_armel.deb
atmark@atde5:~/snmpd$ wget http://ftp.jp.debian.org/debian/pool/main/n/net-snmp/libsnmp15_5.4.3~dfsg-2.8+deb7u1_armel.deb
atmark@atde5:~/snmpd$ wget http://ftp.jp.debian.org/debian/pool/main/l/lm-sensors/libsensors4_3.3.2-2+deb7u1_armel.deb
atmark@atde5:~/snmpd$ wget http://ftp.jp.debian.org/debian/pool/main/n/net-snmp/libsnmp-base_5.4.3~dfsg-2.8+deb7u1_all.deb
atmark@atde5:~/snmpd$ wget http://ftp.jp.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-24_armel.deb
4.4 ダウンロードしたパッケージをromfsディレクトリに展開します。
atmark@atde5:~/snmpd$ dpkg-deb -x libsensors4_3.3.2-2+deb7u1_armel.deb ./romfs/
atmark@atde5:~/snmpd$ dpkg-deb -x libsnmp-base_5.4.3~dfsg-2.8+deb7u1_all.deb ./romfs/
atmark@atde5:~/snmpd$ dpkg-deb -x libsnmp15_5.4.3~dfsg-2.8+deb7u1_armel.deb ./romfs/
atmark@atde5:~/snmpd$ dpkg-deb -x snmpd_5.4.3~dfsg-2.8+deb7u1_armel.deb ./romfs/
atmark@atde5:~/snmpd$ dpkg-deb -x libwrap0_7.6.q-24_armel.deb ./romfs/
4.5 不要なファイルを削除します。
atmark@atde5:~/snmpd$ rm -rf romfs/usr/share/doc
4.6 romfs/etc/snmp/snmpd.confを編集します。
atmark@atde5:~/snmpd$ vi romfs/etc/snmp/snmpd.conf
snmpd.confの内容:
--------------------------------------------------
1 ###############################################################################
2 #
3 # EXAMPLE.conf:
4 # An example configuration file for configuring the Net-SNMP agent ('snmpd')
5 # See the 'snmpd.conf(5)' man page for details
6 #
7 # Some entries are deliberately commented out, and will need to be explicitly activate
8 #
9 ###############################################################################
10 #
11 # AGENT BEHAVIOUR
12 #
13
14 # Listen for connections from the local system only
15 #agentAddress udp:127.0.0.1:161 # この行をコメントアウトします
16 # Listen for connections on all interfaces (both IPv4 *and* IPv6)
17 agentAddress udp:161,udp6:[::1]:161 # この行のコメントアウトを解除します。
--------------------------------------------------
4.7 romfsディレクトリを圧縮します。
atmark@atde5:~/snmpd$ tar zcf romfs-add-snmpd.tar.gz romfs
4.8 ユーザーランドにマージします。
atmark@atde5:~/snmpd$ cd ~/atmark-dist
atmark@atde5:~/atmark-dist$ tar zxf romfs-add-snmpd.tar.gz
atmark@atde5:~/atmark-dist$ make image
4.9 作成されたイメージでArmadillo-IoTを再起動します。
5 snmpdの起動
以下コマンドを入力し、Armadillo-IoT上でsnmpdを起動します。
[root@armadillo-iotg (ttymxc1) ~]# /usr/sbin/snmpd
6 動作確認
6.1 ATDE5にSNMPマネージャーをインストールします。
atmark@atde5:~$ sudo apt-get install snmp snmp-mibs-downloader
6.2 snmp.confを編集します。
atmark@atde5:~$ sudo vi /etc/snmp/snmp.conf
snmp.confの内容:
--------------------------------------------------
#
# As the snmp packages come without MIB files due to license reasons, loading
# of MIBs is disabled by default. If you added the MIBs you can reenable
# loaging them by commenting out the following line.
#mibs : #この行をコメントアウトします。
--------------------------------------------------
6.3 MIBをダウンロードし、snmpgetでMIBエントリを取得してみます。
atmark@atde5:~$ download-mibs
atmark@atde5:~$ snmpget -v 1 -c public [Armadillo-IoTのIPアドレス] system.sysName.0
SNMPv2-MIB::sysName.0 = STRING: armadillo-iotg
atmark@atde5:~$ snmpget -v 1 -c public [Armadillo-IoTのIPアドレス] system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux armadillo-iotg 3.14.36-at2 #5 PREEMPT Tue Sep 29 16:44:09 JST 2015 armv5tejl