Definitions
- BOLD: refers to files that need to be modified or generated by IOC developer
- Italics: symbolic link
How-To setup the IOC boot directories
The instructions differ between production and development due to permission restrictions in production.
Production: lcls, lcls2, facet, testfac
- Send email to Ken Brobeck requesting:
- create controls infrastructure for a new IOC on facility production server, which includes the following:
- Add boot directory: $EPICS_IOCS/<ioc> directory
- Add data directories: $IOC_DATA/<ioc>/<autosave,autosave-req,restore,iocInfo,archive> directories
- Proceed to Development Step #3
Development: dev
- Create the $IOC_DATA directory for your iocs as follows:
- cd $IOC_DATA
- mkdir sioc-<area>-<subsystem-prefix><2-digit#>
- cd <sioc>
- mkdir archive autosave-req autosave iocInfo restore
- Create the $EPICS_IOCS ioc boot directory
- mkdir sioc-<area>-<subsystem-prefix><2-digit#>
- Setup ioc boot directory files
- cd $EPICS_IOCS/ioc-<area>-<subsystem-prefix><2-digit#>
- copy the ioc startup.cmd script from $EPICS_IOCS/template
- cp ../template/startup.cmd.rtems startup.cmd
- Edit startup.cmd
- replace <ioc> with your ioc name
- replace <facility> based on the FACILITY in Table 1 below.
Table 1
Facility | Replace <facility> with |
---|
Dev | g/lcls |
LCLS | lcls |
FACET-II | facet |
Test-Fac | g/acctest |
c. if your IOC Application uses a non-standard location for the startup.cmd file, change path of EPICS_IOC_APP
d. Setup a relative symbolic link that points to the EPICS IOC Applicaiton TOP as follows: ln -s ../../iocTop/<app>/<version> iocSpecificRelease
5. Modify $EPICS_IOCS/screeniocs – Please note that this is a symbolic link to a CVS file.
6. Verify that the file in use has not been modified without being committed.
- cd $EPICS_IOCS/All/<facility> , where facility is Dev,Prod,facet,acctes
- cvs diff -r HEAD screenioc
- if there are issues, then send email to whoever made the change or to controls-software that you are about to update this file and uncommitted edits will be lost, so please commit your changes to CVS. If you don't get a response, you can either add the changes to CVS in addition to yours or just add yours.
7. check out screeniocs from CVS into your work area
- cd
- cd <work> cvs co epics/iocCommon/All/<facility> , where facility is Dev,Prod,facet,acctest
- cd epics/iocCommon/All/<facility>/screeniocs
- edit screeniocs
- add line for <ioc>. For server refer to table 1 above. format: sioc-<area>-<subsystem prefix><2-digit #> <executable w/full absoluete path> sioc <server> [#comment}
- The "comment" field in screeeniocs is optional and must be preceded by a "#".
- add comment in the "Mod:" section of the header
8. commit your changes of screeniocs to CVS as follows:
- cvs commit -m "added cpu and ioc blah" screeniocs
- update the screeniocs file in use
- cd $EPICS_IOCS/All/<facility>, where facility is Dev,Prod, facet, acctest
- rm -f screeniocs
- cvs update screeniocs
How-to boot an IOC from the Linux host:
There are multiple ways to boot an RTEMs ioc, which are listed below:
- Use iocConsole to start an ioc, which uses the screen program
- iocConsole <ioc> --stayup
- Boot ioc from the facility home network display
How-to use screen program:
- ctrl a d : detach from the screen session
- ctrl a [ : scroll up through the start-up messages.