When booting an ioc for the first time follow steps 1-8. To boot an existing ioc proceed to step 11.
Step 1:
Get ip address for your EPICS IOC by filling out the Accelerator Facility IP Request Form Controls Group IP Request Form and submitting it to Ken Brobeck. Specify the subnet for your ioc, which woudl be LCLSDEV for a development ioc or LCLSCA for a production ioc. Please note that the ioc nodename submitted MUST follow the LCLS Naming Conventions.
Step 2:
Once you have an ip address for your node, send email to SCCS to request that your node be added to the NIS group lcls-rtems. This will provide write permission on the NFS disk to your ioc. Click here for more details.
*Step 3:*If your processor has a serial port, request a terminal server port assignment from Charlie Granieri if you do not already have one. Otherwise, proceed to step 5. You can obtain a DIGI to MVME6100 serial cable from Charlie, as well. Click here for terminal server and cable information. Note, that if your terminal server is a DIGI the serial cable from a DIGI port to a MVME6100/MVME5100/MVME3100 is color coded green.
Step 4:
If your processor has a serial port connected to a server, iocConsole will be used to remotly connect to your ioc from a linux host. To use iocConsole, you will need to modify the cvs file
Facility | CVS Path |
---|
Development | epics/iocCommon/All/Dev/screeniocs |
LCLS | epics/iocCommon/All/lcls/screeniocs |
FACET-II | epics/iocCommon/All/facet/screeniocs |
Test-Facility | epcis/iocCommon/All/acctest |
Step 5:
Setup your processor NVRAM Make sure that your processor has a SLAC ID sticker. If not, please contact Kristi Luchini.
Step 6:
Create a directory for any files that will be written, for example, save and restore files written for your ioc by ChannelWatcher, and the screenlog:For development:
ssh laci@lcls-dev2
cd $IOC_DATA
mkdir <ioc nodename>
cd <ioc nodename>
mkdir restore iocInfo autosave
For production contact Ken Brobeck and request that the controls infrastructure for a new IOC. You will need the following:
$EPICS_IOCS/<ioc,cpu>
$IOC_DATA/<ioc,cpu>
For Soft IOCs: Autostartup scripts in on <faclity>-daemon1
For RTEMS IOCs and LinuxRT CPUs send Ken Brobeck or Arjun Shetty information to boot your CPU via DHCP.
Step 7:
Create a ChannelWatcher configuration file for your ioc in $TOOLS/ChannelWatcher/config. The filename format is <ioc nodename in uppercase>.sav. All subsystems have their own ChannelWatcher monitoring process. So either create a new file, Master.XX, where XX is your 2-char subsystem alias defined in the LCLS Naming Conventions or add your new ioc configuration file to the appropriate Master file.
Step 8:
Follow the cram instructions for releasing an EPICS IOC Application from development to production.
Step 9:
Create the boot links and startup scripts for your IOC and CPU for LinuxRT in $EPICS_IOCS/<ioc,cpu>. Template starutp scripts are located in $EPICS_IOCS/template
for LinuxRT IOCs and CPUs
for RTEMS IOCs
for Linux IOCs
Step 10:
Add your IOC to the screeniocs file and commit your changes to CVS. The screeniocs file is used by iocConsole to connect to the serial port of your IOC. The information that you will need is the nodename, which is referred to as the "alias", then terminal server node name and the terminal sever port connected to your device. Table 3 below provides an example of a screeniocs entry for an RTEMS ioc.
Table 3
Alias | Terminal Server | Port No. | host screen is run | Comment |
---|
ioc-b15-mg01 | ts-b15-mg01 | 2002 | lcls-dev1 | # b15-123-0427-S0 (botttom slot) |
Table 4 below lists the CVS path to the screeniocs file for each facility.
Table 4
Facility | CVS path to screeniocs |
---|
Dev | epics/iocCommon/All/Dev |
LCLS | epics/iocCommon/All/lcls |
LCLS-II | epics/iocCommon/All/lcls |
FACET-II | epics/iocCommon/All/facet |
TestFac | epics/iocCommon/All/acctest |
Step 11:
a) Additional IOC Applications will need to be modified to include your IOC, Crate and any addition devices such as EVR or ACSW's . In IOCManager add your ioc, crate and acsw if needed, to the appropriate facility database area file. In addition update the srcArchive file for that facility. Commit changes to the code management system, tag and release to production, rebooting the necessary IOCs and alarm handlers.
- IOCManager
- AlarmsConfigs-ntwk
- AlarmConfigs-<subsystem>
- AlarmConfigs-evnt, if your IOC includes timing
b) The network and possibly timing display will need to be update to add your device.
Table 5
Facility | CVS path to Network Display | CVS path EDM Event Display |
---|
Development | tools/edm/display/lcls/ntwk_dev_main.edl -- OR --- tools/edm/display/misc/lab_dev_main.edl | tools/edm/display/misc_<area>_main.edl |
LCLS | tools/edm/display/lcls/ntwk_<area>_main.edl | tools/edm/display/misc_<area>_main.edl |
LCLS-II | tools/edm/display/lcls2/ntwk_area>_main.edl | tools/edm/display/misc_<area>_main.edl |
FACET-II | tools/edm/display/facet/ntwk_<area>_main.edl | tools/edm/display/misc_<area>_main.edl |
TestFac - ASTA | tools/edm/display/asta/asta/ntwk_asta_main.edl | tools/edm/display/misc_<area>_main.edl |
TestFac - XTA | tools/edm/display/xta/ntwk_xt01_main.edl | tools/edm/display/misc_<area>_main.edl |
Step 12:
For production systems you will need to archive the required PVs for the IOCManager and your subsystem application. The IOCManager archived files will be found in the IOCManager/<tag_name>/IOCManager/archive/<nodename>.archive. This file is generated during the build from the substitutions file in IOCManagerApp/srcArchive/<nodename>.arsubstitutions
Table 6
Facility | Archive PV List |
---|
FACET-II | generate the archive file for your IOC application and copy the file to $IOC_DATA/<nodename>/archive/<nodename>.archive Format: PVNAME INTERAVAL [ monitor/scan ]. The interval is in seconds. For monitor the interval is set to 1. |
LCLS,LCLS-II, TestFac,Dev | send generated archive list to Patrick Pascual using the format above |