...
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)
- Create the $IOC_DATA directory for your cpu and iocs as follows:
- cd $IOC_DATA
- mkdir cpu-<area>-<subsystem-prefix><2-digit#>
- mkdir sioc-<area>-<subsystem-prefix><2-digit#>
- cd sioc-<area>-<subsystem-prefix><2-digit#>
- mkdir autossave autosave-req iocInfor archive
- Create the $EPICS_IOCS cpu and ioc boot directories
- cd $EPICS_IOCS
- mkdir cpu-<area>-<subsystem-prefix><2-digit#>
- cd cpu-<area>-<subsystem-prefix><2-digit#>
- ln -s ../common/st.cmd.linuxRT.cpu startup.cmd
- ln -s ../common/bin/<epics base version> epicsSpecificRelease
- Generate a kernel-modules.cmd file
- for examples click here.
- mkdir sioc-<area>-<subsystem-prefix><2-digit#>
- cd sioc-<area>-<subsystem-prefix><2-digit#>
- cp ../template/st.cmd.linuxRT startup.cmd
- edit startup.cmd and replace <ioc> with your ioc name.
- cp ../template/screenrc .
- edit screenrc and replace <ioc> with your ioc name.
- 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
- ln -s ../../iocTop/<app>/<version> iocSpecificRelease
- 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 #)
#------- ------------- ------- -------------- -----------------------------------------------
- ex) Hostname
Log into lcls-dev3 (ssh <user_name>@lcls-dev3)
Create an Epics Application ($EPICS_IOC_TOP)
Need to cross-compile the Epics Application for the desired target architecture
- Check st.cmd file for all vioc’s - verify that it calls rtPriortiesSetup.cmd, which sets the real-time priority for threads
- Each vioc directory needs a rtPriortiesSetup.cmd
- Create and Set-up a Directory Structure for cpu’s/vioc’s under $IOC_DATA
- Create cpu-##-## directory (In this directory, screenlog.0 is generated automatically)
Create a vioc-##-## directory for each vioc running on this machine- Under each vioc directory, create an autosave, autosave-req, and iocInfo directory
screenlog.0 is generated automatically
Create and Set-up Directory Structure for cpu’s/vioc’s under $IOC
- Generate cpu-##-## directory
- Make a symbolic link named “startup.cmd” that points to “../skel/startup_cpu.cmd”
- Create a “kernel-modules.cmd” file that is specific for your cpu
- Make a symbolic link for each vioc(s) hosted on the cpu (ln -s ../vioc-xx##-xx## vioc-xx##-xx##)
- Create a vioc-##-## directory for each vioc running on this machine
- Create a “screenrc” file that is name-specific for each vioc
- Make a symbolic link named “startup.cmd” that points to “../skel/startup_vioc.cmd”
- Make a symbolic link called “iocSpecificRelease” that follows the CRAM convention for pointing to an Epics application
How to CRAM your Epics Application:
Update $IOC/All/Dev screeniocs
Update information pertaining to which vioc’s are running on a cpu and currently the application each vioc is running
- Commit screeniocs back into CVS
- RT IOC Applications:
- Create a /iocBoot/<ioc>/rtPriortiesSetup.cmd file to set real-time priorities for threads
- Load rtPriortiesSetup.cmd file from iocBoot/<ioc>/st.cmd
How to commit screeniocs back into CVS:
...