Versions Compared

Key

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

...

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

From a bash shell on an ICD Development  host (e.g. lcls-dev2 for 32-bit; lcls-dev3 for 64-bit), type the following:

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

The above script  sets up several EPICS environment variables in your bash shell.  It is recommended that in the .bashrc script, you add a 

case statement to check for development hosts and source the  epics setup so that this step is automatic upon login.  

Some enviroment variables that are now avilable to you are  paths to ' 'TOP-level' directories of interest. Below are a few examples :  

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

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

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

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

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

  EPICS_MBA_TEMPLATE_TOP=/afs/slac/g/lcls/epics/R3-14-12-4_1-0/modules/icdTemplates/icdTemplates-R1-2-0

PACKAGE_TOP=/afs/slac/g/lcls/package

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-4_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.

 

 

Panel
3. Where are the linuxRT kernels and kernel modules?

Currently there are several versions of linux kernels that have been built for several host architectures.

They are all here under BUIDLROOT_HOME: /afs/slac/g/lcls/package/linuxRT/buildroot-2014.11

The tool chain used to build these kernels is 'buildroot' and version 2014.11 was used to build these kernels.

These kernels are available for 32 bit (linuxRT-x86) and 64-bit (linuxRT-x86_64) host architectures.

Further, they have been built with either uClibc (C library for embedded LInux) or glibc (GNU C LIbrary).

uClibc or glibc are libraries which defines "system calls" and other basic facilities such as open, malloc, printf, exit etc.

Based on which libraries the kernels have been built with, currently there are three options for linuxRT kernels to choose from:

buildroot-uclibc-x86 (for 32-bit i680 architectures with uClibc)

buildroot-uclibc-x86_64 (for 64-bit x86_64 architectures with uClibc)

buildroot-glibc-x86_64 (For 64-bit x86_64 architectures with glibc)

uClibc will be phased out in the near future - hence it is recommended to use glibc for new applications.

However, for our test application, we use 32-bit kernel built with uClibc. This is for demonstration purposes only.

The various kernel modules built for the various kernels are all here:

 /afs/slac/g/lcls/package/linuxKernel_Modules

Example: EVR kernel module is pci_mrfevr_linuxRT

Under this directory, there are three different kernel modules - each built for the corresponding kernels as described above.

Ensure that you use the right version of the kernel module that matches with your kernel.

...