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


Ignore:
Timestamp:
11/29/13 11:54:29 (10 years ago)
Author:
michkawa
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