procServ-2.5.1の構築と動作確認
2011-04-19
概要:
新LLRFシステムでの使用を想定し、baseR3.14.11に対応するprocServの最新版、procServ-2.5.1のビルドと動作確認を行った。ビルドの開発環境としては、ノートPC上のCentOS4.6(VMWare上で実行)を使用した。ビルドのターゲットはF3RP61とし、同ターゲット上での動作を確認した。
特記事項:
READMEを参照するとprocServ-2.5.1のビルドにはEPICSのビルド・システムが利用可能になったという記述がある。EPICSのビルド・システムを使う場合、extensions辺りにソースを置くことが想定されているようであるので、これに従うこととした。
EPICSのビルド・システムによるビルドの手順:
1. extensions とう名で新たなdirectory を作成し、そこに移動してbase-3-14-11のmakeBaseExt.pl をオプション “–t example” を付して実行する。
2. 上記により生成されたsrcの下にprocServ-2.5.1.tar.gzを展開する。
3. makeを実行する前に、procServ-2.5.1/ の下にあるスクリプト、 configure を実行する必要がある。(README参照)
4. このスクリプトには幾つかのオプションを付すことができる。今回は以下の二つのオプションを指定した。
.--with-epics-top=(TOP)
EPICSをビルドするためのconfigure directory(上記procServ-2.5.1のconfigureスクリプトのことではない)が存在するTOP directoryの指定
--enable-access-from-anywhere
ローカルホスト以外からのログインを許可するための指定
実際にprocServ-2.5.1/ の下で実行したコマンドは以下の通りである。
./configure --enable-access-from-anywhere
--with-epics-top=../..
5. extensions/configure/CONFIG_SITEを編集し、変数:
CROSS_COMPILER_TARGET_ARCHS =
に以下のようにクロス・コンパイルのターゲットを指定する。
CROSS_COMPILER_TARGET_ARCHS = linux-f3rp61
(これをしなければ、base/configure/CONFI_SITEで定義されている上記変数が extensions/configure/CONFIG_SITE によりNULLに上書きされてしまうため。)
6. extensions/src/Makefileに
DIRS += procServ-2.5.1
を追加し、extensionsの下でmakeを実行したところ、directoryを移動してmakeを再帰的に実行する際にdirectory名、procServ-2.5.1が正しく渡らず、procServ-2 5.1(”2” と ”5” の間の ”.”がスペースに化ける)として渡るため、以下のようなエラー・メッセージが出た。
make -C ./procServ-2 5.1
make: *** ./procServ-2: No such file or directory. Stop.
この問題は、procServ-2.5.1にprocServという名前でソフト・リンクを張ることで回避した。なお、extensionsが既に存在し、MEDMなど、linux-f3rp61をターゲットとしてビルドできないソースがある場合には、それを指定するDIRSをコメントアウトする必要があることに注意する。
動作確認:
以上の手順でビルドしたprocServをF3RP61上で実行し、正しく動作することが確認できた。