Changes between Initial Version and Version 1 of epics/bbb/epics


Ignore:
Timestamp:
11/29/13 11:54:29 (12 years ago)
Author:
Tetsuya Michikawa
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • epics/bbb/epics

    v1 v1  
     1= !BeagleBone Black へのEPICS インストール =
     2
     3[http://ja.wikipedia.org/wiki/Raspberry_Pi raspberry pi] の対抗馬として登場した[http://beagleboard.org/Products/BeagleBone%20Black BeagleBone Black(以降はBBB)]へお約束のEPICSインストールするためのメモ。
     4
     5== Angstrom ==
     6
     7BBBのデフォルトで入っているOSであるAngstrom Linuxにインストール。今回はeMMC上に直接インストールしたが、AngstromをmicroSDにインストールしたものに設定したほうが精神衛生上いいかも。
     8
     9
     10=== EPICS base ===
     11
     12EPICSのbaseはR3.14.2.3を使用し、/optにインストール。[[br]]
     13コンパイル環境は初めから入っているようなので、パッケージの追加なしでコンパイル。
     14
     15{{{
     16root@beaglebone:~# mkdir -p /opt/epics/R314.12.3
     17root@beaglebone:~# cd /opt/epics/R314.12.3
     18root@beaglebone:/opt/epics/R314.12.3# wget http://www.aps.anl.gov/epics/download/base/baseR3.14.12.3.tar.gz
     19root@beaglebone:/opt/epics/R314.12.3# tar zxvf baseR3.14.12.3.tar.gz
     20root@beaglebone:/opt/epics/R314.12.3# mv base-3.14.12.3 base
     21root@beaglebone:/opt/epics/R314.12.3# cd base
     22root@beaglebone:/opt/epics/R314.12.3/base# make
     23}}}
     24
     25と思ったら、途中で止まった。
     26
     27{{{
     28perl /usr/lib/perl/5.14.2/ExtUtils/xsubpp -typemap /usr/lib/perl/5.14.2/ExtUtils/typemap ../Cap5.xs > Cap5.c_new && mv Cap5.c_new Cap5.c
     29Can't open perl script "/usr/lib/perl/5.14.2/ExtUtils/xsubpp": No such file or directory
     30make[3]: *** [Cap5.c] Error 2
     31make[3]: Leaving directory `/opt/epics/R314.12.3/base/src/cap5/O.linux-arm'
     32make[2]: *** [install.linux-arm] Error 2
     33make[2]: Leaving directory `/opt/epics/R314.12.3/base/src/cap5'
     34make[1]: *** [cap5.install] Error 2
     35make[1]: Leaving directory `/opt/epics/R314.12.3/base/src'
     36make: *** [src.install] Error 2
     37}}}
     38
     39xsubppというコマンドがないらしい。[[br]]
     40perlのスクリプトらしいので、検索でそれらしいところからwget。
     41
     42{{{
     43root@beaglebone:/usr/lib/perl/5.14.2/ExtUtils# wget http://www.boristheengineer.co.uk/slug/download/xsubpp
     44Connecting to www.boristheengineer.co.uk (212.159.8.91:80)
     45xsubpp               100% |***************************************************************| 51745   0:00:00 ETA
     46}}}
     47
     48再度、make。
     49
     50{{{
     51root@beaglebone:/opt/epics/R314.12.3/base# make
     52
     53               :
     54
     55perl /usr/lib/perl/5.14.2/ExtUtils/xsubpp -typemap /usr/lib/perl/5.14.2/ExtUtils/typemap ../Cap5.xs > Cap5.c_new && mv Cap5.c_new Cap5.c
     56Can't find /usr/lib/perl/5.14.2/ExtUtils/typemap in /opt/epics/R314.12.3/base/src/cap5
     57make[3]: *** [Cap5.c] Error 2
     58make[3]: Leaving directory `/opt/epics/R314.12.3/base/src/cap5/O.linux-arm'
     59make[2]: *** [install.linux-arm] Error 2
     60make[2]: Leaving directory `/opt/epics/R314.12.3/base/src/cap5'
     61make[1]: *** [cap5.install] Error 2
     62make[1]: Leaving directory `/opt/epics/R314.12.3/base/src'
     63make: *** [src.install] Error 2
     64}}}
     65
     66今度はtypemapがないらしい。同じところからwget。
     67
     68{{{
     69root@beaglebone:/usr/lib/perl/5.14.2/ExtUtils# wget http://www.boristheengineer.co.uk/slug/download/typemap
     70Connecting to www.boristheengineer.co.uk (212.159.8.91:80)
     71typemap              100% |***************************************************************|  6810   0:00:00 ETA
     72}}}
     73
     74再度、make。
     75
     76{{{
     77root@beaglebone:/opt/epics/R314.12.3/base# make
     78
     79               :
     80
     81rm -f CA.html
     82podchecker ../CA.pm && pod2html --infile=../CA.pm --outfile=CA.html
     83/bin/sh: podchecker: command not found
     84make[3]: *** [CA.html] Error 127
     85make[3]: Leaving directory `/opt/epics/R314.12.3/base/src/cap5/O.linux-arm'
     86make[2]: *** [install.linux-arm] Error 2
     87make[2]: Leaving directory `/opt/epics/R314.12.3/base/src/cap5'
     88make[1]: *** [cap5.install] Error 2
     89make[1]: Leaving directory `/opt/epics/R314.12.3/base/src'
     90make: *** [src.install] Error 2
     91}}}
     92
     93今度はpodcheckerがない。[[br]]
     94検索してもあまり芳しくないので、pfrproc6でwhichしたら/usr/binにあったので、中身を見るとただのperlスクリプトだった。perlの追加パッケージをインストール。[[br]]
     95Angstromのパッケージ一覧は、[http://www.angstrom-distribution.org/repo/?letter=p]で検索可能だったので、それらしいものを取得してインストール。[[br]]
     96Angstromのパッケージ管理ツールは opkg というプログラムを使っているらしい。
     97
     98{{{
     99root@beaglebone:~/pkg# wget http://www.angstrom-distribution.org/feeds/v2012.12/ipk/eglibc/armv7a-vfp-neon/perl/perl-module-pod-checker_5.14.2-r13.2_armv7a-vfp-neon.ipk
     100Connecting to www.angstrom-distribution.org (188.40.83.200:80)
     101perl-module-pod-chec 100% |***************************************************************| 12414   0:00:00 ETA
     102root@beaglebone:~/pkg# opkg install perl-module-pod-checker_5.14.2-r13.2_armv7a-vfp-neon.ipk
     103Upgrading perl-module-pod-checker on root from 5.14.2-r13.1 to 5.14.2-r13.2...
     104Configuring perl-module-pod-checker.
     105}}}
     106
     107インストール後にインストールされたファイルの一覧を見てもモジュールだけだったので、pfrproc6からコピー。
     108
     109{{{
     110root@beaglebone:~/pkg# opkg files perl-module-pod-checker
     111Package perl-module-pod-checker (5.14.2-r13.2) is installed on root and has the following files:
     112/usr/lib/perl/5.14.2/Pod/Checker.pm
     113root@beaglebone:~/pkg# cd /usr/bin
     114root@beaglebone:/usr/bin# scp pfrproc6.cerl.kek.jp:/usr/bin/podchecker .
     115}}}
     116
     117再度、make。
     118
     119{{{
     120root@beaglebone:/opt/epics/R314.12.3/base# make
     121
     122               :
     123
     124/bin/sh: pod2html: command not found
     125make[3]: *** [CA.html] Error 127
     126make[3]: Leaving directory `/opt/epics/R314.12.3/base/src/cap5/O.linux-arm'
     127make[2]: *** [install.linux-arm] Error 2
     128make[2]: Leaving directory `/opt/epics/R314.12.3/base/src/cap5'
     129make[1]: *** [cap5.install] Error 2
     130make[1]: Leaving directory `/opt/epics/R314.12.3/base/src'
     131make: *** [src.install] Error 2
     132}}}
     133
     134今度は、pod2htmlがない。pfrproc6からまたコピーして、再度、make。
     135
     136{{{
     137podchecker ../CA.pm && pod2html --infile=../CA.pm --outfile=CA.html
     138../CA.pm pod syntax OK.
     139Installing html ../../../html/./CA.html
     140rm CA.html
     141make[3]: Leaving directory `/opt/epics/R314.12.3/base/src/cap5/O.linux-arm'
     142make[2]: Leaving directory `/opt/epics/R314.12.3/base/src/cap5'
     143make[1]: Leaving directory `/opt/epics/R314.12.3/base/src'
     144root@beaglebone:/opt/epics/R314.12.3/base#
     145}}}
     146
     147やっと、通った。
     148
     149{{{
     150root@beaglebone:/ cd /opt/epics/R314.12.3/base/bin/linux-arm
     151root@beaglebone:/opt/epics/R314.12.3/base/bin/linux-arm# ./cainfo PFRCO:ENECNTR:CH0001
     152**** The executable "caRepeater" couldn't be located
     153**** because of errno = "No such file or directory".
     154**** You may need to modify your PATH environment variable.
     155**** Unable to start "CA Repeater" process.
     156PFRCO:ENECNTR:CH0001
     157    State:            connected
     158    Host:             172.28.64.120:5064
     159    Access:           read, write
     160    Native data type: DBF_DOUBLE
     161    Request type:     DBR_DOUBLE
     162    Element count:    1
     163
     164}}}
     165
     166とりあえず動いた。
     167
     168== sequencer ==
     169
     170次にseqencerをコンパイル。
     171
     172{{{
     173root@beaglebone:/opt/epics/R314.12.3# mkdir -p modules/soft/seq
     174root@beaglebone:/opt/epics/R314.12.3# cd modules/soft/seq
     175root@beaglebone:/opt/epics/R314.12.3/modules/soft/seq# wget http://www-csr.bessy.de/control/SoftDist/sequencer/releases/seq-2.1.14.tar.gz
     176Connecting to www-csr.bessy.de (193.149.12.250:80)
     177seq-2.1.14.tar.gz    100% |***************************************************************|   298k  0:00:00 ETA
     178root@beaglebone:/opt/epics/R314.12.3/modules/soft/seq# tar zxvf seq-2.1.14.tar.gz
     179root@beaglebone:/opt/epics/R314.12.3/modules/soft/seq# mv seq-2.1.14 2.1.14
     180root@beaglebone:/opt/epics/R314.12.3/modules/soft/seq# cd 2.1.14
     181root@beaglebone:/opt/epics/R314.12.3/modules/soft/seq/2.1.14# vi configure/RELEASE
     182
     183EPICS_BASE=/opt/epics/R314.12.3/base
     184
     185root@beaglebone:/opt/epics/R314.12.3/modules/soft/seq/2.1.14# make
     186}}}
     187
     188いつも通り、途中でre2cがないといわれるので、re2cをインストール
     189
     190{{{
     191root@beaglebone:~/tmp# wget http://sourceforge.net/projects/re2c/files/re2c/0.13.6/re2c-0.13.6.tar.gz
     192root@beaglebone:~/tmp# cd re2c-0.13.6
     193root@beaglebone:~/tmp/re2c-0.13.6# ./configure
     194root@beaglebone:~/tmp/re2c-0.13.6# make
     195root@beaglebone:~/tmp/re2c-0.13.6# make install
     196}}}
     197
     198再度、make。
     199
     200{{{
     201root@beaglebone:/opt/epics/R314.12.3/modules/soft/seq/2.1.14# make
     202}}}
     203
     204コンパイル完了。
     205
     206== asyn ==
     207
     208asynもコンパイル。
     209
     210{{{
     211root@beaglebone:/opt/epics/R314.12.3/modules/soft# mkdir asyn
     212root@beaglebone:/opt/epics/R314.12.3/modules/soft# cd asyn
     213root@beaglebone:/opt/epics/R314.12.3/modules/soft/asyn# wget http://www.aps.anl.gov/epics/download/modules/asyn4-21.tar.gz
     214Connecting to www.aps.anl.gov (164.54.98.14:80)
     215asyn4-21.tar.gz      100% |***************************************************************|  6842k  0:00:00 ETA
     216root@beaglebone:/opt/epics/R314.12.3/modules/soft/asyn# tar zxvf asyn4-21.tar.gz
     217root@beaglebone:/opt/epics/R314.12.3/modules/soft/asyn# mv asyn4-21 4-21
     218root@beaglebone:/opt/epics/R314.12.3/modules/soft/asyn# cd 4-21
     219root@beaglebone:/opt/epics/R314.12.3/modules/soft/asyn/4-21# vi configure/RELEASE
     220
     221#RELEASE Location of external products
     222
     223#SUPPORT=/corvette/home/epics/devel
     224#-include $(TOP)/../configure/SUPPORT.$(EPICS_HOST_ARCH)
     225
     226#  IPAC is only necessary if support for Greensprings IP488 is required
     227#  IPAC release V2-7 or later is required.
     228#IPAC=$(SUPPORT)/ipac-2-11
     229
     230# SEQ is required for testIPServer
     231SNCSEQ=/opt/epics/R314.12.3/modules/soft/seq/2.1.14
     232
     233#  EPICS_BASE 3.14.6 or later is required
     234LINUX_GPIB=NO
     235EPICS_BASE=/opt/epics/R314.12.3/base
     236-include $(TOP)/../configure/EPICS_BASE.$(EPICS_HOST_ARCH)
     237
     238root@beaglebone:/opt/epics/R314.12.3/modules/soft/asyn/4-21# make
     239
     240               :
     241
     242/usr/bin/gcc -c  -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500            -DUNIX  -D_BSD_SOURCE -Dlinux  -D_REENTRANT   -O3   -Wall          -fPIC -MMD -I. -I../O.Common -I. -I.. -I../../asyn/asynDriver -I../../asyn/asynGpib -I../../asyn/drvAsynSerial -I../../asyn/interfaces -I../../asyn/miscellaneous -I../../asyn/asynPortDriver/exceptions -I../../asyn/asynPortDriver -I../../asyn/devEpics -I../../asyn/asynRecord -I../../asyn/vxi11 -I../../asyn/ni1014 -I../../asyn/devGpib -I../../include/os/Linux -I../../include  -I/opt/epics/R314.12.3/modules/soft/seq/2.1.14/include   -I/opt/epics/R314.12.3/base/include/os/Linux -I/opt/epics/R314.12.3/base/include       ../../asyn/asynRecord/drvAsyn.c
     243cp ../vxi11/vxi11core.rpcl .
     244rpcgen  vxi11core.rpcl
     245make[2]: rpcgen: Command not found
     246make[2]: *** [vxi11core_xdr.c] Error 127
     247make[2]: Leaving directory `/opt/epics/R314.12.3/modules/soft/asyn/4-21/asyn/O.linux-arm'
     248make[1]: *** [install.linux-arm] Error 2
     249make[1]: Leaving directory `/opt/epics/R314.12.3/modules/soft/asyn/4-21/asyn'
     250make: *** [asyn.install] Error 2
     251}}}
     252
     253今回はrpcgenがないと言われて、エラーになる。[[br]]
     254色々調べた結果、glibc-utilsに入っているようなので、パッケージをインストール。
     255
     256{{{
     257root@beaglebone:~/pkg# wget http://www.angstrom-distribution.org/feeds/v2012.12/ipk/eglibc/armv7a-vfp-neon/base/eglibc-utils_2.16-r15+svnr20393.5_armv7a-vfp-neon.ipk
     258Connecting to www.angstrom-distribution.org (188.40.83.200:80)
     259eglibc-utils_2.16-r1 100% |***************************************************************|   157k  0:00:00 ETA
     260root@beaglebone:~/pkg# opkg install eglibc-utils_2.16-r15+svnr20393.5_armv7a-vfp-neon.ipk
     261Installing eglibc-utils (2.16-r15+svnr20393.5) to root...
     262Configuring eglibc-utils.
     263root@beaglebone:~/pkg# opkg files eglibc-utils
     264Package eglibc-utils (2.16-r15+svnr20393.5) is installed on root and has the following files:
     265/usr/bin/sprof
     266/usr/bin/gencat
     267/usr/bin/pcprofiledump
     268/usr/sbin/zic
     269/usr/bin/sotruss
     270/usr/bin/getent
     271/usr/bin/locale
     272/usr/sbin/zdump
     273/usr/bin/getconf
     274/usr/bin/iconv
     275/usr/bin/makedb
     276/usr/bin/rpcgen
     277/usr/bin/pldd
     278/usr/bin/tzselect
     279/usr/bin/xtrace
     280/usr/sbin/iconvconfig
     281}}}
     282
     283入ってたので、再度make。[[br]]
     284今度はコンパイル完了。
     285
     286== !StreamDevice ==
     287
     288asynを入れたらStreamDeviceを入れないと意味がない。
     289
     290{{{
     291root@beaglebone:/opt/epics/R314.12.3/modules/soft# mkdir stream
     292root@beaglebone:/opt/epics/R314.12.3/modules/soft# cd stream
     293root@beaglebone:/opt/epics/R314.12.3/modules/soft/stream# wget http://epics.web.psi.ch/software/streamdevice/StreamDevice-2-6.tgz
     294Connecting to epics.web.psi.ch (129.129.190.101:80)
     295StreamDevice-2-6.tgz 100% |***************************************************************|   154k  0:00:00 ETA
     296root@beaglebone:/opt/epics/R314.12.3/modules/soft/stream# tar zxvf StreamDevice-2-6.tgz
     297root@beaglebone:/opt/epics/R314.12.3/modules/soft/stream# mv StreamDevice-2-6 2-6
     298}}}
     299
     300StreamDeviceはいつもと同じ方法でコンパイルOK