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 Contros 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 procesor 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 |
for developmentProd for lcls production | FACET-II | epics/iocCommon/All/ |
Prod_facet for facet productionepics | Test-Facility | epcis/iocCommon/All/ |
Acctest/screeniocs for test facility (xta and asta)adding the information for your new node and terminal server port connection.
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 witten written for your ioc by ChannelWatcher, and the screenlog:First, log onto the appropriate host:
For development: ssh laci@lcls-dev2 For production : ssh laci@lcls-builder
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 a boot directory with the nodename of your ioc, in $EPICS_IOC/<nodename>. Within this new directory create the file startup.cmd. This file should contain the following for a development ioc (see: ioc-li21-mg01/startup.cmd). For a production ioc, please contact Jingchen Zhou. Please note that if symbolic links are used during boot, use relative links. # Setup environment variables < /boot/g/lcls/epics/iocCommon/All/Dev/pre_st.cmd # Load subsystem startup file chdir("/boot/g/lcls/epics/iocTop/<subsystem>/<subsystem tagged version>/iocBoot/<nodename>") < st.cmd # Save diagnostic information < /boot/g/lcls/epics/iocCommon/All/Dev/post_st.cmd Next, if you wish to have a screenlog file, whichs writes the output of cpu serial port to the file $IOC_DATA/<nodename>/screenlog.0, add the file screenrc to the directory $EPICS_IOCS/<nodename>. The file screenrc should contain the following basic iocConsole options (see ioc-li21-mg01/screenrc): deflog on logstamp on defscrollback 10000 Step 9: Follow instructions for Releasing an EPICS IOC Application. Step 10: For prouduction iocs only you will need to pdate LCLSHOME Network Panel, with your new ioc. Contact Sonya Hoobler so that she can update the IOCManager application, Judy Rock so that she can update the LCLSHOME Alarms and Bob Hall so that he can add your iocAdmin PV list to the ChannelArchiver Step 11: For production iocs only you will need to update LCLSHOME Timing Panel, if your ioc has a EVR module. Contact Stephanie Allison for further details.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 |
|