第4章 RASV用ソフトウェア
 RASV用のソフトウェアは、ドライバ(rasv1.o)とアプリケーション(voice1)の2つ(共に Linux kernel 2.X 用)が既作成です。
 両方のソースファイルをまとめた、rasv-0.50.tar.gzは、ここからダウンロードしてください。

1.ドライバ(rasv1.o)
1.1 コンパイルの方法
 rasv1 のソースを展開(通常 rasv1 ディレクトリ)したら、まず、rasv1.h をエディタで開きます。
最後の2行が、

#define RASV1_BASE_ADR 0x240
#define RASV1_IRQ_NUM 7

となっていますので、これ(0x240 と 7)を、ボード部で実際に使用する値に書き換えます。
(市販ソフトで、こんなのやったら大顰蹙でしょうな(^^;)

 次に

make

 すれば、rasv1.o が作成されるはずです。これが、目的のドライバです。

1.2 カーネルとのリンク方法
 rasv1.o は、「カーネルモジュール」です。スーパーユーザー(root)で、

insmod /FullPath/rasv1.o

 のようにすれば、動作を開始します。(/FullPath/ は、rasv1.o の置いてあるディレクトリ)

豆知識:
 カーネルモジュールとは、起動しているカーネルにリンクする(insmod とか使う)ことで、あたかもカーネルの一部のように使えるモジュールです。

 なお、rasv1.o が動作を開始すれば、音声ユニット部を接続しても、むやみに音が出ることはありません。(とはいえ、サーバーが立ち上がってる状態で接続するのは、おすすめできません、電源を切ってからつなぎましょう。)

1.3 rasv1.o 機能概説
 rasv1.o は、ボード部に関する、イニシャライズ処理、割り込み処理、終了時処理、を行います。主な処理内容は、

イニシャライズ処理 init_module()
・音声出力の停止
・セマフォのクリア
・ウォッチドッグタイマのスタート
を行います。

割り込み処理 rasv1_interrupt()
割り込みを自分がかけているかを確認してから(かけてなければ即リターン)、
怪しい動きがないか調べ、ウォッチドックタイマをリスタートします。
なお、怪しい動きがあった場合(ボード上のRAM値が前回書いた値と異なる場合)は、警告の音声(ch6の音声)を出力します。

終了時処理 cleanup_module()
・ウォッチドックタイマの停止
・割り込みのクリア
・セマフォのクリア
を行います。

2.アプリケーション(voice1)
2.1 コンパイルの方法
 voice1 のソースを展開(通常 voice1 ディレクトリ)したら、まず、voice1.c をエディタで開きます。
38行が、

#define RASV1_BASE_ADR 0x240

となっていますので、これ(0x240)を、ボード部で実際に使用する値に書き換えます。
 次に

make

 すれば、voice1 が作成されるはずです。これが、目的のアプリケーションです。
が、voice1 は、直接I/Oポートをたたくため、オーナーを root にしないと、動きません。
 su で、スーパーユーザー(root)になって

chown root voice1
chmod 4755 voice1

 を行ってください。なお、一般ユーザーは、実行できないで良いのであれば、
chmod の方は、不要です。

2.2 voice1 の使用方法
 voice1 の起動オプションは、次のものが可能です。

第1オプション
p : 再生モード

r : 録音モード

第2オプション
 再生(録音)したいチャンネル(ch)番号、
 デフォルトは、「1」

例:ch3 に録音したい場合
 /FullPath/voice1 r 3

例:ch5 を再生したい場合
 /FullPath/voice1 p 5

なお、録音モードで録音した場合、録音に引き続きそのchが再生されます。

各ch設定例(弊社の設定):

ch
音声内容
電源の投入もしくはリセットを検出しました。
SSHによるコネクトを検出しました。
FTPによるコネクトを検出しました。
10:30あとは遅刻よ!
18:00下校時刻です。
RASVがハッキングされました。
警告!システム異常発生です。

第3章 RASV ハードウェアについてへ 第5章 swatch, cron の設定へ