Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Created by Shantha Condamoor on 15-Oct-20152014
----------------------------------------------------------------------

...

Here's something to get started with linuxRT using the latest EPICS base.


1. Where What is the 'new' EPICS?

/afs/slac/g/lcls/epics/The 'new' version of EPICS is R3-14-12-3_1-0/

2. How do I setup my bash shell to use the new EPICS?

...

source /afs/slac/g/lcls/epics/setup/go_epics_3-14-12-3_1-0.bash

3. Where are the linuxRT kernel modules?

The above script sets up several EPICS environment variables in your bash shell.

 

 

Some variables are paths to ''TOP-level' directories:

 

EPICS_TOP=/afs/slac/g/lcls/package/linuxKernel_Modules

4. Where are the EPICS modules for this new base?

epics/R3-14-12-3_1-0

 

EPICS_BASE_TOP=/afs/slac/g/lcls/epics/R3-14-12-3_1-0/base

 

EPICS_MODULES_TOP=/afs/slac/g/lcls/epics/R3-14-12-3_1-0/modules

A handful of EPICS modules have been built for the new EPICS base.
Most of them have been cross-compiled for several targets including the following:

...

EPICS_EXTENSIONS=/afs/slac/g/lcls/epics/R3-14-12-3_1-0/extensions/extensions-R3-14-12

 

EPICS_IOC_TOP=/afs/slac/g/lcls/epics/R3-14-12-3_1-0/iocTop

 

EPICS_IOC_TOP is the top level application directory for all EPICS iocs that use this EPICS version.

 

It is here where all new EPICS applications must be created. EPICS_IOC_TOP is the same as the APP variable.

 

Other environment variables setup in your bash shell are:

 

IOC=/afs/slac/g/lcls/epics/R3-14-12-3_1-0/iocCommon

 

$IOC is the directory where the startup scripts for all the iocs are located.

 

IOC_DATA=/nfs/slac/g/lcls/epics/ioc/data

 

$IOC_DATA is the data directory. This is where the outputs (and in some case inputs) from iocs are stored.

 

In LCLSDEV, the iocs must have special permissions to write to the $IOC_DATA directory.

 

Fill out an online form provided by SCCS to obtain permissions for your ioc to write to this directory:

https://www-rt.slac.stanford.edu/rt3/SelfService/Forms/IocNfs.html

3. Where are the linuxRT kernel modules?

Contact Murali or Ernest to have them built and installed. Murali has a python script that
automatically discovers the module dependencies and builds them in the correct order for all targets.

6. Where and how do I create a new EPICS application?  How do I setup a new IOC to use linuxRT-86 OS?

When the go_epics*.bash script was sourced, several environment variables pertaining to EPICS were setup in your bash shell:

The following is true for any version of EPICS - but in this context, version R3-14-12-3_1-0.

Some variables are paths to ''TOP-level' directories:

EPICS_TOP=/afs/slac/g/lcls/epics/R3-14-12-3_1-0

EPICS_BASE_TOP=/afs/slac/g/lcls/epics/R3-14-12-3_1-0/base

EPICS_MODULES_TOP=/afs/slac/g/lcls/epics/R3-14-12-3_1-0/modules

EPICS_IOC_TOP=/afs/slac/g/lcls/epics/R3-14-12-3_1-0/iocTop

EPICS_IOC_TOP is the EPICS IOCs Application Top level directory.

It is here where all EPICS applications are created. EPICS_IOC_TOP is the same as the APP variable.

Other environment variables setup in your bash shell are:

package/linuxKernel_Modules

4. Where are the EPICS modules for this new base?

IOC=/afs/slac/g/lcls/epics/R3-14-12-3_1-0/iocCommon

$IOC is the directory where all the iocs' startup scripts are stored.

IOC_DATA=/nfs/slac/g/lcls/epics/ioc/data

$IOC_DATA is the data directory. This is where the outputs from all iocs and in some case inputs are stored.

In LCLSDEV, the iocs must have special permissions to write to the $IOC_DATA directory.

Fill out an online form provided by SCCS to obtain permissions for your ioc to write to this directory:

https://www-rt.slac.stanford.edu/rt3/SelfService/Forms/IocNfs.html
 

(a) Create the following directories:
$IOC/ioc-b34-my01
$IOC_DATA/ioc-b34-my01
$APP/Test (look at this as an example)

...

-14-12-3_1-0/modules

A handful of EPICS modules have been built for the new EPICS base.
Most of them have been cross-compiled for several targets including the following:

linuxRT-x86
linux-x86
linux-x86_64

5. What do I do if I need a new module or a specific version for an existing module built for the new base?

Contact Murali or Ernest to have them built and installed. Murali has a python script that
automatically discovers the module dependencies and builds them in the correct order for all targets.

6. Where and how do I create a new EPICS application?  How do I setup a new IOC to use linuxRT-86 OS? 

(a) Create the following directories:
$IOC/ioc-b34-my01
$IOC_DATA/ioc-b34-my01
$APP/Test (look at this as an example) 

Now create your EPICS application MyTest as below using standard templates and scripts:

(b) cd $APP/Test

This is where you will be creating/checking out from CVS, several versions of your MyTest application, as you continue to develop.

Now create a sandbox area for MyTest.

mkdir Development

(c) cd Development

You are currently in:

/afs/slac/g/lcls/epics/R3-14-12-3_1-0/iocTop/Test/Development

This is the top directory for MyTest and referred as $(TOP).

Using a perl script that automates the process, create MyTest:
makeBaseApp.pl -t slac MyTest

The perl script had populated your application with a few directories and template files.

It created these out of template files which are in:

EPICS_MBA_TEMPLATE_TOP=/afs/slac/g/lcls/epics/R3-14-12-3_1-0/modules/icdTemplates/MAIN_TRUNK

The above variable was also set when you sourced go_epics_3

This is where you will be creating/checking out from CVS, several versions of your MyTest application, as you continue to develop.

Now create a sandbox area for MyTest.

mkdir Development

(c) cd Development

You are currently in:

/afs/slac/g/lcls/epics/R3-14-12-3_1-0/iocTop/Test/Development

This is referred as the top directory for your EPICS application: TOP

Now create your EPICS application MyTest using a perl script that automates this creation process as well as standardizes several file and directory structures:
makeBaseApp.pl -t slac MyTest.bash.

If you would like to know what more about this perl script can do , type:

makeBaseApp.pl -help

Open the configure/RELEASE file.

(i) Notice how the following line appears towards the beginning:
include $(TOP)/RELEASE_SITE

The above sets the Now, an EPICS application has been created for you with the application name 'MyTestApp'.
Look through the RELEASE_SITE file in the top level that was automatically created for you.
Notice how EPICS base path, modules path, App path, EPICS version and other EPICS environment variables were set for you to point to
the new EPICS base R3-14-12-3_1-0.

Now, look at the configure/RELEASE file.(i) Check the following line exists in the beginning of RELEASE file:
include $(TOP)/RELEASE_SITE

RELEASE file needs some modifications from what was automatically generated:
I have commented in the example application $APP/MyApp/configure/RELEASE what needs to change.
 

(ii) Add the following line :(eventually this
LINUX_KERNEL_MODULES=$(PACKAGE_SITE_TOP)/linuxKernel_Modules
(iii) Change the various module version numbers as needed for your application.
Ensure that the specific versions included in your RELEASE file DO EXIST under the modules directory

...