Patlam-pi Step1

目的

Raspberry Piでsmnptrapを受信し音と光で伝えてくれるパトランプを作成する

工程

  1. OS選定
  2. USBスピーカ音出し
  3. 音声合成ソフトテスト
  4. 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

下記ソース、ありがとうございます
http://www.mugbot.com/2013/10/08/usb%e3%82%b9%e3%83%94%e3%83%bc%e3%82%ab%e3%83%bc%e3%81%ae%e5%84%aa%e5%85%88%e5%ba%a6%e3%82%92%e4%b8%8a%e3%81%92%e3%82%8b/

3. 音声合成ソフトテスト

調べて見ると下記の2つが大半だった、ライセンス縛りはあるが
評判が良さそうな後者を選択

  1. Open JTalk
    http://open-jtalk.sp.nitech.ac.jp/
  2. 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 嫁 感謝!

takashi