d01: nbbq baild install

こちらはtarをRIBFのページから落としてきて真面目にインストール。
http://ribf.riken.jp/RIBFDAQ/index.php?DAQ%2FManual%2FInstallation
にしたがって進めている。
d01ではbabildしか使わないが、analyserのためにnbbqも入れておく。
nbbqのコンパイルにはkernel sourceが(たぶん)必須なのでインストールしましょう。
基本的には http://ribf.riken.jp/RIBFDAQ/index.php?DAQ%2FManual%2FTestBench とか
http://rarfaxp.riken.jp/~baba/acquisition/system/nbbq/index.html とか
http://ribfdaq/daq/wiki/index.php?babirl(理研内部のみ) とか
同封されているINSTALLとかを読んだ。
後は小林さんに聞いた。

nbbqのインストール

$ tar xvzf nbbq-jul20-2012.tar.gz
$ ln -s nbbq-jul20-2012.tar.gz nbbq
$ cd nbbq
$ ./config VMIVME7807はyにした。全部nだとなんだかmake installでエラーになる。
$ make
# make install
# cd analyzer
# chmod +x install-analyzer
# ./install-analyzer
ここまでで、nbbqのパッケージに含まれているbinと空のdevice?、init.d以下に起動スクリプトがインストールされる。
d01ではほとんど必要ないので多少ずるをできるかもしれない。

ちなみに、nbbqのみを使う場合は、nbbqdrvというdevice driverの本体を/usr/nbbq/bin/nbbqcpyとか/usr/nbbq/bin/nbbqinst
を使って編集・コンパイル・インストールすることになる。
babirlを場合は、nbbqdrvではなくbabildrvをコンパイルするが、こちらにはnbbqcpyやnbbqinstに対応するコマンドはなく、
cpyは手動で行い、instはbabiesを立ち上げたときやbabiconでドライバの指定を変更したときに勝手にinstされる。

babirlのインストール

これはnbbqとは関係なくコンパイルできるみたい。
$ tar xvzf babirl120720.tar.gz
$ ln -s babirl120720.tar.gz babirl
$ cd babirl
$ emacs -nw include/userdefine.h コメントアウトされているところをbabildを置いているpathに合わせる。
$ make
include/userdefine.hで定義するPIDDIRとBABIRLDIRを指定しない場合は/var/run以下に実行時にdaemonの実体ができる?
このとき、/var/runはsuじゃないと開けないのでbabinfoとかがsuじゃないと起動できないことになるが、
PIDDIRとBABIRLDIRをユーザー配下のディレクトリに指定すればユーザーでも起動できる。
無駄にrootになるべきではないのでuserdefine.hを編集するが吉と思う。

ちなみに、babirlにはmake installが存在せず、どこかにインストールしたいのなら手動でcopyしたりリンクを貼り、
pathも通したければ自分で通す。
おすすめは/usr以下にリンクを貼る。
# ln -s /home/daq/daq/babirl /usr/babirl
な感じ。

babinfo, babildの起動check

まだ何もできないが、とりあえず起動するかcheck。
babinfo, babildは普通のPCに適当に入れただけでも起動できる。
$ babirl/bin/babinfo 
$ ps aux | grep babi これでbabinfoが立ち上がって入ればとりあえずok
$ babirl/bin/babild -l 1
$ babirl/bin/babicon
これでbabiconが立ち上がるはず。

babinfo,babild,babiesの再起動

babinfoやbabildは普通には再起動できなく、以下の様にする。
# ps aux | grep babi
root      1644  0.0  0.0   1628   160 ?        Ss   10:55   0:00 /usr/babirl/babimo/babimo
root      1879  0.0  0.0   2184   936 ?        Ss   11:11   0:00 babies -l 82
daq       2612  0.0  0.0   5088   776 pts/0    S+   17:29   0:00 grep babi
# kill -9 1879
(立ち上がっているbabiたちをkill。ただしbabimoは殺さない。)
# rm /var/run/babi* (userdefine.hでPIDDIRやBABIRLDIRを定義している場合はそちらにあるのを消す)


オンラインでデータを解析するためにbabianを起動

オンラインでデータを解析するためには解析するPCでbabianが起動していないといけない。 データはevent builderがUDPで流すので、これをbabianで受け取り、anarootなどで解析する。 公式に書いてあるとおりに、
cp /usr/babirl/rcd/babian /etc/rc.d/init.d/
/sbin/chkconfig --level 35 babian on
/sbin/service babian start
とすればよい。

DEBUG

babildのインストール過程でなにかおかしいことがあった場合、デフォルトではほとんどメッセージがでないのでわけがわからない。
そこで、babirl/common.mkのDBMODEのコメントアウトを外して再コンパイルすればDEBUG MODEになる(make cleanを忘れずに)。
DEBUG MODEだとbabinfoとかを立ち上げたあとプロセスが実行されたままになり、
何かが起こるとその端末にメッセージが表示される。
本番ではDEBUG MODEは止めた方がよいと思われる。
include/userdefine.hを編集していなければ./bin/babinfoとかを起動したときに/var/run/babinfoにファイルができる。
これを消さないと再度起動ができない(DEBUG MODEではメッセージがでる)。
babildはその辺のPCでmakeするだけでも普通にbabinfoとかは立ち上がるので、ダメな時はuserdefine.hを編集したのにディレクトリ構造が間違ってるとか、そんなのな可能性が大きい。