Versions Compared

Key

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

...

 LinuxRT Initial Set-up of cpu and vioc and ioc Directory Structure:

  • BOLD: refers to files that need to be modified or generated by IOC developer
  • Italics: symbolic link
  • LinuxRT_Diagram  (old)


  1. Create  the $IOC_DATA directory for your cpu and iocs  as follows:
    1. cd $IOC_DATA
    2. mkdir cpu-<area>-<subsystem-prefix><2-digit#>
    3. mkdir  sioc-<area>-<subsystem-prefix><2-digit#>
      1. cd sioc-<area>-<subsystem-prefix><2-digit#>
      2. mkdir autossave autosave-req iocInfor archive

  2.  Create the $EPICS_IOCS cpu and ioc boot directories
    1. cd $EPICS_IOCS
    2. mkdir cpu-<area>-<subsystem-prefix><2-digit#>  
      1. cd cpu-<area>-<subsystem-prefix><2-digit#>
      2. ln -s ../common/st.cmd.linuxRT.cpu startup.cmd
      3. ln -s ../common/bin/<epics base version> epicsSpecificRelease
      4. Generate a kernel-modules.cmd file
        1. for examples click  here.
    3. mkdir  sioc-<area>-<subsystem-prefix><2-digit#>
      1. cd sioc-<area>-<subsystem-prefix><2-digit#>
      2. cp ../template/st.cmd.linuxRT startup.cmd
      3. edit startup.cmd and replace <ioc> with your ioc name.
      4. cp ../template/screenrc .
      5. edit screenrc and replace <ioc> with your ioc name.
      6. Please note that if the location of your IOC Application st.cmd file is non-standard then change EPICS_IOC_APP path in startup.cmd
      7. ln -s ../../iocTop/<app>/<version> iocSpecificRelease
    4. Edit $EPICS_IOCS/screeniocs  – please note this is a symbolic link to this file.

add line for cp

# Alias      Terminal Server    Port No.      screen is run     Comments (must start with #)

#-------      -------------  -------   --------------  -----------------------------------------------

        1. ex) Hostname   
  1. Log into lcls-dev3  (ssh <user_name>@lcls-dev3)
  2. Create an Epics Application ($EPICS_IOC_TOP)

    1. Need to cross-compile the Epics Application for the desired target architecture

    2. Check st.cmd file for all vioc’s - verify that it calls rtPriortiesSetup.cmd, which sets the real-time priority for threads
    3. Each vioc directory needs a rtPriortiesSetup.cmd
  3. Create and Set-up a  Directory Structure for cpu’s/vioc’s  under $IOC_DATA
  4. Create cpu-##-## directory (In this directory, screenlog.0 is generated automatically)
  5. Create a vioc-##-## directory for each vioc running on this machine
  6. Under each vioc directory, create an autosave, autosave-req, and iocInfo directory
  7. screenlog.0 is generated automatically
     Create and Set-up Directory Structure for cpu’s/vioc’s under $IOC
    1. Generate cpu-##-## directory
      1. Make a symbolic link named “startup.cmd” that points to “../skel/startup_cpu.cmd”
      2. Create a kernel-modules.cmdfile that is specific for your cpu
      3. Make a symbolic link for each vioc(s) hosted on the cpu (ln -s ../vioc-xx##-xx## vioc-xx##-xx##)

    2.  Create a vioc-##-## directory for each vioc running on this machine
      1.  Create a screenrcfile that is name-specific for each vioc
      2.  Make a symbolic link named “startup.cmd” that points to “../skel/startup_vioc.cmd”
      3.  Make a symbolic link called “iocSpecificRelease” that follows the CRAM convention for pointing to an Epics application
        How to CRAM your Epics Application:

  8. Update $IOC/All/Dev screeniocs

    1. Update information pertaining to which vioc’s are running on a cpu and currently the application each vioc is running

    2. Commit screeniocs back into CVS
  9. RT IOC Applications:
    1. Create a /iocBoot/<ioc>/rtPriortiesSetup.cmd  file to set real-time priorities for threads
    2. Load rtPriortiesSetup.cmd file from iocBoot/<ioc>/st.cmd 

How to commit screeniocs back into CVS:

...