目的
Raspberry Piでsmnptrapを受信し音と光で伝えてくれるパトランプを作成する
工程
- OS選定
- USBスピーカ音出し
- 音声合成ソフトテスト
- snmptrap によるアラート受信を設定
1. OS選定
CUIのみ利用前提
http://www.raspberrypi.org/downloads/ よりダウンロード
Pidora
一番新しい PIDORA (ベースがFedora) を選択しインストールしたが
動作が重く感じた事と、yumレポジトリに接続できなかったため見送り
(2014.05.02に試してみたができなかった)
Raspbian
情報が一番多く、パッケージが多く楽そうなので歓迎
利用してみた所、明らかに応答速度が違う & apt-get も利用できたのでこちらで確定
初期セットアップでは SDカードの領域有効化と、DateTimeを設定くらい
2. USBスピーカ音出し
適当なWAVを拾ってきて、再生コマンドを叩いてみるも音が出ない
$ sudo aplay sa1_001.wav
状況確認
$ sudo lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0c76:160c JMTek, LLC.
Bus 001 Device 005: ID 413c:2003 Dell Computer Corp. Keyboard
$ sudo lsusb -v -s 1:4
Bus 001 Device 004: ID 0c76:160c JMTek, LLC.
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 1.10
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x0c76 JMTek, LLC.
idProduct 0x160c
bcdDevice 1.00
iManufacturer 0
iProduct 1 USB Speaker
...
認識されていたためデバイス指定をしてみると成功した
$ sudo aplay sa1_001.wav -D default:CARD=Speaker
再起動後も設定を保持したい
$ diff /etc/modprobe.d/alsa-base.conf /etc/modprobe.d/alsa-base.conf.140502
17c17
< options snd-usb-audio index=0
---
> options snd-usb-audio index=-2
3. 音声合成ソフトテスト
調べて見ると下記の2つが大半だった、ライセンス縛りはあるが
評判が良さそうな後者を選択
- Open JTalk
http://open-jtalk.sp.nitech.ac.jp/ - AquesTalk Pi
http://www.a-quest.com/products/aquestalkpi.html
インストール
$ wget http://www.a-quest.com/download/package/aquestalkpi-20130827.tar.gz
...
$ ls -la
...
-rw-r--r-- 1 pi pi 3880822 Aug 27 2013 aquestalkpi-20130827.tar.gz
$ tar -xzvf aquestalkpi-20130827.tar.gz
aquestalkpi/
aquestalkpi/test.txt
aquestalkpi/AquesTalkPi
aquestalkpi/aq_dic/
aquestalkpi/aq_dic/readme.txt
aquestalkpi/aq_dic/aq_user.dic
aquestalkpi/aq_dic/aqdic.bin
$ sudo mv aquestalkpi /opt
$ ls -la /opt
total 24
drwxr-xr-x 6 root root 4096 May 2 23:12 .
drwxr-xr-x 22 root root 4096 May 2 20:56 ..
drwxr-xr-x 3 pi pi 4096 Aug 27 2013 aquestalkpi
drwxr-xr-x 3 root root 4096 Jan 8 07:02 sonic-pi
drwxr-xr-x 7 root root 4096 Jan 8 06:29 vc
drwxr-xr-x 3 root root 4096 Jan 8 07:07 Wolfram
発声
$ /opt/aquestalkpi/AquesTalkPi "こんにちは、漢字もしゃべれます" | sudo aplay
感動です、素晴らしい!パラメータをいじると速度や声色?が変更できました。
4. snmptrap によるアラート受信を設定
snmp関連パッケージを RasPiにインストール
$ sudo apt-get install snmp snmpd
/etc/snmp/snmpd.conf
# sec.name source community
com2sec notConfigUser default public
# groupName securityModel securityName
group notConfigGroup v1 notConfigUser
group notConfigGroup v2c notConfigUser
# name incl/excl subtree mask(optional)
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
# group context sec.model sec.level prefix read write notif
access notConfigGroup "" any noauth exact systemview none none
/etc/snmp/snmptrapd.conf
#### When Recieve Trap
#default : write to syslog
traphandle default /usr/bin/logger
#### Settings
doNotRetainNotificationLogs yes
doNotLogTraps no
doNotFork no
# authCommunity TYPES COMMUNITY [SOURCE [OID | -v VIEW ]]
#authCommunity log "community" 192.168.1.0/24
authCommunity log,execute,net public
disableAuthorization no
/etc/default/snmpd
$ diff snmpd snmpd.org
16c16
< TRAPDRUN=yes
---
> TRAPDRUN=no
snmptrapの設定にはまり、tcpdumpでも正常に受信しているが
ログに出なかったのでいろいろと漁って上記に収まりました
SpecialThanks
UI/CSS 嫁 感謝!