Difference between revisions of "Installing CODA"

From New IAC Wiki
Jump to navigation Jump to search
Line 217: Line 217:
 
[https://coda.jlab.org/wiki/index.php/Main_Page  CODA wiki]
 
[https://coda.jlab.org/wiki/index.php/Main_Page  CODA wiki]
  
== Software infrastrusture==
+
== Software infrastructure==
  
 
1.) RHEL4 or higher  (RHEL5 issues are addressed in "examples/rhel5")
 
1.) RHEL4 or higher  (RHEL5 issues are addressed in "examples/rhel5")
Line 291: Line 291:
 
# Add Routes for Multicast Support
 
# Add Routes for Multicast Support
 
mRouteAdd("224.0.0.0","10.1.1.0",0xf0000000,0,0)
 
mRouteAdd("224.0.0.0","10.1.1.0",0xf0000000,0,0)
 +
 +
== Environmental Variables==
 +
 +
The script below sets up the environmental variables for running CODA
 +
 +
[[File:coda_2.6.1.setup]]
  
 
= Now setup ROC script=
 
= Now setup ROC script=

Revision as of 17:25, 2 June 2010

Installing CODA 2.5

Go to the ftp web page

ftp://ftp.jlab.org/pub/coda/2.5/

and save the files below into the CODA/2.5 subdirectory

I currently have the files

2.5 >ls -1


cdev_1.7.5.tar.gz

tar - CMLOG-R2_1-PROD-1.tar.gz

coda.setup
codausersetup
common.tar
Linux-rhe.tar
README.InstallFAQ
README.x86-linux
VXWORKSPPC55.tar
x86-linux.tar


Unpack the tar files

tar -zxvf cdev_1.7.5.tar.gz
tar -zxvf CMLOG-R2_1-PROD-1.tar.gz
tar -xvf Linux-rhe.tar
tar -xvf VXWORKSPPC55.tar
xvf x86-linux.tar
xvf common.tar

remove the tar archives

rm *.gz
rm *.tar

Here is what my directory structure looks like now

2.5 >ls -1
cdev_1.7.5
CMLOG-R2_1-PROD-1
coda.setup
codausersetup
common
Linux
README.InstallFAQ
README.x86-linux
tmp
VXWORKSPPC55
x86-linux

Setup the environment variables

Set environmental variables in file codauserscript

#!/bin/csh
echo Setting up coda 2.5 on $HOST
 setenv CODA /usr/local/coda/2.5
source $CODA/coda.setup
# Point to msqld on my host
setenv MSQL_TCP_HOST daq1
setenv MSQL_HOME $CODA/common/rcdb
# My database/session
setenv EXPID LDS
setenv SESSION test
# CMLOG browser (cmlog) setup file
setenv CMLOG_CONFIG /usr/local/CMLOG/cmlogrc
# broadcast message port must match that in /usr/local/CMLOG/cmlog.config
setenv CMLOG_PORT 8102
# User specific env variables
setenv CODA_DIRECTORY /home/daq/CODA
setenv CODA_DATA /data1
cd ~/CODA


X windows needs

CODA 2.5 requires libXm.so.3

Using CentOS 5 you need to install openmotif to get libXm.o.3

yum install opentmotif22-2.2.3-18-i386
Stopped installation here

Installing CODA 2.6

Information source

CODA wiki


Instructions to start up CODA

It appears you only need two processes now to run CODA, "platform" and "rcgui". It is probably still wise to have a terminal open monitoring the ROC


To run coda2.6 platform:

  1. source /home/daq/CODA/2.6/setup
  2. cd $AFECS_HOME/bin
  3. platform

To run coda2.6 run-control

  1. source /home/daq/CODA/2.6/setup
  2. cd $AFECS_HOME/bin
  3. rcgui -name g1

Following packages are installed: Java location: /home/daq/Java/jdk1.6.0_17

Afecs-1.3 location: /home/daq/CODA/2.6.1/Afecs-1.3

Following files were modified: ~/.tcshrc /home/daq/CODA/2.6/setup /home/daq/CODA/2.6.1/Afecs-1.3/db/setup.xml


ftp://ftp.jlab.org/pub/coda/2.6/

and save the files below into the CODA/2.6 subdirectory

I currently have the files

Errors setting up rcplatform

set environment variables

setenv COOL_HOME /usr/local/coda/2.6/cool

setenv AFECS_HOME /usr/local/coda/2.6/afecs/1.0

got the error message

2.6 >rcplatform
/usr/java/j2sdk1.4.2_14/bin/java: Command not found.

setenv JAVA_HOME /usr

got the error

2.6 >rcplatform
Exception in thread "main" java.lang.NoClassDefFoundError: rca.coda
   at gnu.java.lang.MainThread.run(libgcj.so.7rh)
Caused by: java.lang.ClassNotFoundException: rca.coda not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
   at java.net.URLClassLoader.findClass(libgcj.so.7rh)
   at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at java.lang.ClassLoader.loadClass(libgcj.so.7rh)
   at gnu.java.lang.MainThread.run(libgcj.so.7rh)


Vardan recommended running "ant" from the subdirectory

/usr/local/coda/2.6/afecs/1.0/

I had to install "ant" for this so I logged in as root and typed

yum install ant

I now have

1.0 >ant -version
Apache Ant version 1.6.5 compiled on January 6 2007


The error message running ant is



1.0 >ant
Buildfile: build.xml

init:

clean.module.afecs:

clean:

compile.module.afecs.production:
    [mkdir] Created dir: /home/daq/CODA/2.6/afecs/afecs/classes

compile.module.afecs.tests:

compile.module.afecs:

build.jar:

BUILD FAILED
/home/daq/CODA/2.6/afecs/1.0/build.xml:111: /home/daq/CODA/2.6/afecs/1.0/classes not found.

Total time: 0 seconds


Installing CODA 2.6.1

Information source

CODA wiki

Software infrastructure

1.) RHEL4 or higher (RHEL5 issues are addressed in "examples/rhel5")


~>less /etc/redhat-release 
CentOS release 5.3 (Final)

2.) you need to install scons for Redhat

I downloaded the READhat version and did

rpm -i scons-1.3.0-1.noarch.rpm

2.) next you need to be sure Java sdk 1.6 or higher is installed (/apps/java/jdk1.6.0_03)

Looking on my maching I saw

~>java --version
java version "1.4.2"
gij (GNU libgcj) version 4.1.2 20080704 (Red Hat 4.1.2-44)

went to http://java.sun.com/

and got the file

jdk-6u20-linux-i586-rpm.bin


as root I did

chmod a+x jdk-6u20-linux-i586-rpm.bin
./jdk-6u20-linux-i586-rpm.bin

It said

Java(TM) SE Development Kit 6 successfully installed.

but the install version is same as above

package jdk-1.6.0_20-fcs.i586 is already installed

It seems the rpm file does not install java onto the system but into its own directory

OK, I will unstall java under the DAQ account and use environmental variables to set the default java

cd ~daq/java/


4.) VxWorks 5.5 Kernel and cross compiler (/site/vxworks/5.5/ppc/host/x86-linux/bin)

My ROC is set to load the kernel at


/home/daq/CODA/VXWorks/vx6100_v4.1


this seems to be V 5.5.1


5.) change your ROC boot script to support Multicasts

add the line

  1. Add Routes for Multicast Support

mRouteAdd("224.0.0.0","129.57.29.0",0xf0000000,0,0)

where the subnet 129.57.29.0 should be replaced by your local subnet.


for me this is

  1. Add Routes for Multicast Support

mRouteAdd("224.0.0.0","10.1.1.0",0xf0000000,0,0)

Environmental Variables

The script below sets up the environmental variables for running CODA

File:Coda 2.6.1.setup

Now setup ROC script

Installing CMLOG

I copied the binary files at /site/coda/cmlog over to /home/daq/CODA/2.5

~/CODA >scp -r tforest@ftp.jlab.org:/site/coda/CMLOG ./

ROC boot script

create the roc boot script and write it to /home/daq/CODA/bootscripts/roc1.boot

# Boot file for CODA ROC 2.0
# PowerPC version
# up the sliding window
tcp_sendspace=0x8000
tcp_recvspace=0x8000
# Setup environment / load coda_roc
putenv "MSQL_TCP_HOST=daq1"
putenv "EXPID=LDS"
putenv "TCL_LIBRARY=/home/daq/CODA/2.5/common/lib/tcl7.4"
putenv "ITCL_LIBRARY=/home/daq/CODA/2.5/common/lib/itcl2.0"
putenv "DP_LIBRARY=/home/daq/CODA/2.5/common/lib/dp"
putenv "CMLOG_PORT=8102"
putenv "TOKEN_PORT=5555"
putenv "SESSION=daq"
# Download Message logging libraries/client
ld < /home/daq/CODA/2.5/CMLOG/2.1/bin/ppc-vw55/cmlogClientD
ld < /home/daq/CODA/2.5/CMLOG/2.1/lib/ppc-vw55/libcmlog.a
ld < /home/daq/CODA/2.5/CMLOG/2.1/bin/ppc-vw55/cmlogVxLogMsg
#cd "/home/daq/CODA/2.5/VXWORKSPPC55/lib"
#ld < libcamac.o
cd "/home/daq/CODA/2.5/VXWORKSPPC55/bin"
ld < coda_roc
#ld < caSrvr
#cd "/home/daq/ROClibs"
#ld < adc1182_ppc.o  
#ld < scale32Lib_ppc.o
#ld < pas9740Lib_ppc.o
#ld < sis3610Lib_ppc.o  
# Spawn tasks
sp cmlogClientD
sp cmlogVxLogMsg
taskDelay (60*5)
# spawn the CAMAC remote server
taskSpawn "caServ",110,spTaskOptions,10000,caSrvr_main
# spawn the roc task
taskSpawn ("ROC",200,0x8,250000,coda_roc,"-i","-s","daq","-objects","roc1 ROC")


as root create the following subdirectory and soft links

ln -s /home/daq/CODA /usr/local/coda

ln -s /home/daq/CODA/2.5/x86-linux /usr/local/x86-linux

mkdir /usr/local/gnu

ln -s /home/daq/CODA/2.5/x86-linux /usr/local/gnu/x86-linux

set the environmental variables

create a script to setup the environmenal variables


#!/bin/csh  
echo Setting up coda 2.5 on $HOST  
setenv CODA /usr/local/coda  
# 
source $CODA/coda.setup  
# Point to msqld on my host  
setenv MSQL_TCP_HOST daq1  
setenv MSQL_HOME /usr/local/coda/common/rcdb  
# My database/session  
setenv EXPID ISU_LDS  
setenv SESSION DAQ  
# CMLOG browser (cmlog) setup file  
setenv CMLOG_CONFIG /home/data1/CODA/cmlogrc  
# broadcast message port must match that in /usr/local/CMLOG/cmlog.config  
setenv CMLOG_PORT 8102  
# User specific env variables  
setenv CODA_DIRECTORY /home/daq/CODA  
setenv CODA_DATA /data1  
# set up to use Cross compilers 
set path = ( $path . /usr/local/gnu/x86-linux/bin ${CODA}/2.5/Linux-rhe/bin ) 


start msql

startup msql deamon

msqld

and let in run

reboot ROC and check that all the libraries loaded

Create Run Configuration

Be sure the msql database is running

~/CODA >msqld
mSQL Server 1.0.16coda starting ...
setjmp returned 0
Checking Authority to use databases in /usr/local/coda/common/rcdb
loading administration ACL msql.acl
admin ACL loaded
loading ACL for database LDS 
Warning : Couldn't open ACL file: No such file or directory
database LDS ACL loaded.
ACL load done


cedit

CODA uses the msql database to hold information reguarding host computer names, IP adresses, output files, and others. You can create your first data base entry using cedit and then edit it like a spreadsheet using dbedit. Below is an example of a simple database configuration after installing all the components using cedit.

DataBaseSetupUsingCedit.jpg

create another window startup cedit

create a new database using the "File" menu "New Database"

I gave it the name "LDS"

I quit cedit and restarted to check that it was still there.


now add components

create and event builder

click on the icon for the event builder (blocks being assembled)

CeditCreateEBbutton.jpg

Name: eb1
Ethernet Host:134.50.3.210 ! this is the daq1 IP address
ID # : 1

created a roc

click on the 2nd icon below the gun which looks like the image below

CeditCreateROCButton.jpg

Name: roc1
Ethernet Host: 134.50.3.216 Id Number: 2 Booting String $CODA_BIN/coda_roc Readout List:$CODA/readoutlist/SIS3610/gen_int_list.crl


connect ROC and EB

You create a connection from the ROC to the EB by clicking on the green square on the ROC a drwaing a red line to a green square on the EB.

create an Event Recorder (ER) button

click on the image which looks like a cassette tape:

CediteCreateERbutton.jpg

This will create and event recorder component which you will then conenct to a output file component

create an output file component

click on the icon which looks like a bullseye to create an output file component

CeditCreateOutputFileComponent.jpg

connect ER and output file

Click on the ER's green tab to draw a red line from the ER to a green tab on the output file component.

created coda file output

clicking on bullseye like symbol in cedit

then clicked on green scquares to tie EB to bullseye

dbedit

I usually check everything using dbedit. It is a spreadsheet like interface allowing you to edit data base cells.

using dbedit:

to get DBEDIT to run I had to add the following to LD_LIBRARY_PATH

so now I have

setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/usr/local/CMLOG/lib/Linux:${CODA}/Linux-rhe/lib:${CODA}/cdev_1.7.5/lib/Linux-rh9

${CODA}/cdev_1.7.5/lib/Linux-rh9

codamaster

setenv KILL_CODA_SCRIPT

then run codamaster

everything was reported as down.


10.) had comment line in $CODA_BIN/makelist

  1. $CODA_BIN/fb_strip < $DOING_FILE.i.c > $DOING_FILE.c


5.) rcServer

I needed to setup the shared library path so it searches the CMLOG libs byadding the line below to the "setup" script unser $CODA

setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/usr/local/CMLOG/lib/Linux


6.) msql configureation


UROC daq1


7.) edit /etc/hosts added line for daq1

edited /etc/sysconfig


edited /etc/resolve

added search line for physics


8.) edited binary file output



11.) codamaster ( can be used to start coda rocs EB and ER...)

setenv KILL_CODA_SCRIPT


coda_roc -i -s -n DAQ -s UROC -t ROC

to make a virtual roc to run native on the Linux host

makelist test_list.crl native


Readoutlist

makelist gen_int_list.crl ppc


return to DAQ page