wiki:epics/install/epics_modules

Version 1 (modified by obina, 6 years ago) (diff)

--

EPICS Modules インストール

Software : seq, asyn は必ず入れていおいた方が良いと思います。その次にstream device がお勧め。

Sequencer

[epics@myvm1 ~]$ cd /opt/epics/R314.12.3/
[epics@myvm1 R314.12.3]$ ls
base  extensions
[epics@myvm1 R314.12.3]$ mkdir modules
[epics@myvm1 R314.12.3]$ cd modules/
[epics@myvm1 modules]$ mkdir soft instruments
[epics@myvm1 modules]$ cd soft
[epics@myvm1 soft]$ ls
[epics@myvm1 soft]$ mkdir asyn seq
[epics@myvm1 soft]$ ls
asyn  seq
[epics@myvm1 soft]$ 
[epics@myvm1 soft]$ cd seq
[epics@myvm1 seq]$ ls
[epics@myvm1 seq]$
[epics@myvm1 seq]$ gzip -dc /opt/epics/arc/seq-2.1.12.tar.gz | tar xvf -
[epics@myvm1 seq]$ mv seq-2.1.12 2.1.12
[epics@myvm1 seq]$ ls
2.1.12
[epics@myvm1 seq]$ cd 2.1.12/
[epics@myvm1 2.1.12]$
[epics@myvm1 2.1.12]$ vi configure/RELEASE

EPICS_BASE=/opt/epics/R314.12.3/base

[epics@myvm1 2.1.12]$ 
[epics@myvm1 2.1.12]$ make
..........
make[3]: re2c: Command not found
..........
make: *** [src.install] Error 2

エラーが出て停止した。re2cが必要とのこと。(以前のseqでは不要でしたが、公式サイトがBESSYに移った頃から必要になったようだ)

[root@myvm1 2.1.12]# yum provides "*/re2c"
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: reflx1.kek.jp
 * extras: reflx1.kek.jp
 * updates: reflx1.kek.jp
No Matches found

となるので、オフィシャルサイトのrpmは無さそう。

ソースからコンパイルしても良いし、yumの検索先にRepoForge(旧RPMforge)のサイトを追加することも可能ですが、 ここではコンパイル済みRPMをダウンロードして、手動で入れることにしてみる。

http://pkgs.repoforge.org/re2c/

を見てみると最新バージョンは re2c-0.13.5-1.el6.rf.i686.rpm らしい。

[epics@myvm1 arc]$ wget http://pkgs.repoforge.org/re2c/re2c-0.13.5-1.el6.rf.i686.rpm
.....
(最終的には http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/re2c-0.13.5-1.el6.rf.i686.rpm からダウンロードしている)

ダウンロードしたファイルの確認。

[root@myvm1 arc]# rpm -qpi re2c-0.13.5-1.el6.rf.i686.rpm
warning: re2c-0.13.5-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
Name        : re2c                         Relocations: (not relocatable)
Version     : 0.13.5                            Vendor: Dag Apt Repository, http://dag.wieers.com/apt/
Release     : 1.el6.rf                      Build Date: Fri Nov 12 15:23:26 2010
Install Date: (not installed)               Build Host: lisse.hasselt.wieers.com
Group       : Development/Tools             Source RPM: re2c-0.13.5-1.el6.rf.src.rpm
Size        : 666792                           License: MIT
Signature   : DSA/SHA1, Sat Nov 13 08:05:12 2010, Key ID a20e52146b8d79e6
Packager    : Dag Wieers <dag@wieers.com>
URL         : http://re2c.sourceforge.net/
Summary     : Tool for generating C-based recognizers from regular expressions
Description :
re2c is a great tool for writing fast and flexible lexers. It has
served many people well for many years and it deserves to be
maintained more actively. re2c is on the order of 2-3 times faster
than a flex based scan

インストールされるファイルの確認。

[root@myvm1 arc]# rpm -qpl re2c-0.13.5-1.el6.rf.i686.rpm
warning: re2c-0.13.5-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
/usr/bin/re2c
/usr/share/doc/re2c-0.13.5
/usr/share/doc/re2c-0.13.5/CHANGELOG
/usr/share/doc/re2c-0.13.5/README
......((略))..........
/usr/share/doc/re2c-0.13.5/sample.bib
/usr/share/man/man1/re2c.1.gz

rootになってインストール

[root@myvm1 arc]# rpm -Uvh re2c-0.13.5-1.el6.rf.i686.rpm
warning: re2c-0.13.5-1.el6.rf.i686.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
Preparing...                ########################################### [100%]
   1:re2c                   ########################################### [100%]

これで re2c がインストールされたので、seq のコンパイルを実行

[epics@myvm1 ~]$ cd /opt/epics/R314.12.3/modules/soft/seq/2.1.12/
[epics@myvm1 2.1.12]$ make

エラーが出ずに終了

Asyn インストール

[epics@myvm1 ~]$ cd /opt/epics/R314.12.3/modules/soft/asyn
[epics@myvm1 asyn]$
[epics@myvm1 asyn]$ gzip -dc /opt/epics/arc/asyn4-21.tar.gz | tar xvf -
[epics@myvm1 asyn]$ ls
asyn4-21
[epics@myvm1 asyn]$ mv asyn4-21 4-21
[epics@myvm1 asyn]$ ls
4-21
[epics@myvm1 asyn]$ cd 4-21/
[epics@myvm1 4-21]$ vi configure/RELEASE

SNCSEQ=$(EPICS_BASE)/../modules/soft/seq/2.1.12
EPICS_BASE=/opt/epics/R314.12.3/base

[epics@myvm1 4-21]$ make

Applicationのテスト

seqを有効にしてから example application を実行する。

[epics@myvm1 ~]$ cd app/example/
[epics@myvm1 example]$
[epics@myvm1 example]$ vi configure/RELEASE

SNCSEQ=$(EPICS_BASE)/../modules/soft/seq/2.1.12
ASYN=$(EPICS_BASE)/../modules/soft/asyn/4-21


[epics@myvm1 example]$ make distclean
[epics@myvm1 example]$ make
.....

[epics@myvm1 example]$ cd iocBoot/iocexample/
[epics@myvm1 iocexample]$ vi st.cmd
seq sncExample, "user=epicsHost"          <--- 最後の行のコメントを外す



[epics@myvm1 iocexample]$ ./st.cmd
seq sncExample, "user=epicsHost"
Sequencer release 2.1.12, compiled Thu May  9 16:39:15 2013
Spawning sequencer program "sncExample", thread 0x9ee4bb0: "sncExample"
sncExample[0]: all channels connected & received 1st monitor
epics> sncExample: Startup delay over
sncExample: Changing to high


sequencerが動作して、値に応じてメッセージが出ることを確認。