How-to Setup DHCP for an IOC
References
Overview
The DHCP Server on MCCSRV01 and MCCSRV02 will be used to boot all LCLS EPICS IOC's on the LCLSCA Production Subnet. To boot your production ioc via DHCP, follow the steps listed below.
Instructions
Step 1:
If your IOC is currently booted on the DMZ and you wish to use the same nodename, send a request to Ken Brobeck for a subnet change from the DMZ to the LCLSCA. Otherwise, skip to Step 2 below.
For existing nodenames on the DMZ, Ken has allocated new ip address on the LCLSCA subnet for your ioc. The new ip address will be chaned from your existing LCLSDMZ ip address of 134.79.151.xxx to to 172.27.9.xxx. Please note that the Domaine Name Server will not have your new ip address, until your request for a subnet change has been processed. Skip to Step 5.
Step 2:
If you need to request a new nodename on the LCLSCA subnet, fill out a SLAC Nodename Request Form for each type of network device, and subnet this to Ken Brobeck. Please note that you CANNOT edit this form and save the contents. You will have to save this form in HTLM or PDF format, edit that form and send the saved content via email to Ken.
Step 3:
Send Ken Brobeck your nodename, MAC Address, filename, and init file. (See examples below)
- Please note that we have RTEMS and Embedded IOC's that will boot via DHCP server, each with slightly different boot parameters.
Step 4:
When you get a new ip address, boot your ioc without DHCP, by setting the "Use BOOTP:" parameter to "N", indicating NO. See exeample below. If your boot is successful, proceed to the next step.
Step 5:
Boot your ioc with DHCP after Ken has updated the DHCP server. To do this, make sure that the "Use BOOTP" boot paramter on our ioc is set to "Y", for YES. If you want to boot with only some information provided in the DHCP file, then enter "P" for PARTIAL. If you encounter difficulty, contant Ken Brobeck.
Example of an RTEMS DHCP file for DHCP
group {
filename "mccfs2:/export/mccfs/usr/local:/lcls/rtems/rtems-4.9.1/target/ssrlApps/powerpc-rtems/beatnik/bin/rtems.exe";
option ntp-servers 134.79.151.12, 134.79.151.13;
host ioc-in20-rf01
{{}
fixed-address 172.27.11.24;
hardware ethernet 00:01:AF:17:3B:F5;
option uarg
"INIT=/boot/lcls/epics/iocCommon/LLRF/ioc-in20-rf01/startup.cmd";
option host-name "ioc-in20-rf01";
}
Use the pattern above to add entries for all eioc-rd and ioc- entries.
Example of the Embedded Coldfire IOC file for DHCP
group {
filename "mccfs2:/export/mccfs/usr/local:/lcls/rtems/rtems-4.9.1/target/ssrlApps/m68k-rtems/uC5282/bin/rtems.exe";
option ntp-servers 134.79.151.12, 134.79.151.13;
host eioc-in20-rd02
{{}
fixed-address 172.27.11.TBD;
hardware ethernet get-from-dmz-section
option uarg "INIT=/boot/lcls/epics/iocCommon/LLRF/eioc-in20-rd02/startup.cmd";
option host-name "eioc-in20-rd02";
}
Use the pattern above to add entries for all eioc-rd and eioc-rc entries.
Production on LCLSCA Subnet
Nodes on LCLSCA Subnet
Buildings with Access to LCLSCA Subnet (http://www.slac.stanford.edu/cgi-bin/qall?FILENAME=/afs/slac/g/scs/net/cando/subnet_bldgs.html&HEAD=10&SELECT1=^LCLSCA%20&HEADER=
- Click%20on%20Bldg%20Nb%20for%20location%20information
- Click%20on%20third%20column%20for%20table%20of%20Subnets%20in%20Building
- Click%20on%20Bldg%20Description%20for%20count%20of%20computer%20desktops%20in%20building
)
Boot Host |
Subnet |
RTEMS Version |
mccfs2 |
LCLSCA |
/usr/local/lcls/rtems/4.9.1 |
LCLSCA Subnet |
Server IP Address |
172.27.8.11 |
Default Gateway |
172.27.8.1 |
Subnet Mask |
255.255.252.0 |
DNS #1 |
134.79.151.12 |
NTP #1 |
134.79.151.12 |
My Network IF + media (LAN Speed) |
auto |
Use Bootp |
N |
Note: to use DHCP enter "Y" for instead of "N" for Use Bootp. For further instruction on setting up DHCP click here.
/etc/hosts |
/etc/dfs/dfsta |
Boot Host |
NFS Disk |
Host |
Account (uid) |
Group (gid) |
uid.gid |
IOC Data |
mccfs2 |
mccfs2 |
lcls-prod05 |
laci |
lcls |
8412.2211 |
/u1/lcls/epics/ioc/data/<nodename> |
NFS Mounts |
File Systems |
nfsMount("8412.2211@172.27.8.11","/u1/lcls/epics/ioc/data/<nodename>","/data") |
SLC-Aware |
nfsMount("8412.2211@172.27.8.11","/u1/lcls/epics/slc","/slc") |
File |
Description |
Directory |
startup.cmd |
file your ioc boots. Generated automatically by ioc-release |
/usr/local/lcls/epics/iocCommon/<nodename> |
st.cmd |
EPICS startup script, called by startup.cmd |
/usr/local/epics/iocTop/<subsystem>/<subsystem cvs tag>/iocBoot/<nodename> |
pre_st.cmd |
Setup for RTMES IOC's, called by startup.cmd |
/usr/local/lcls/epics/iocCommon/All/Prod |
post_st.cmd |
Diagnostic infor for RTMES IOC's, called by startup.cmd |
/usr/local/lcls/epics/iocCommon/All/Prod |
EXAMPLE RTEMS Processor NVRAM Configuration
To install only some boot parameters from DHCP, enter "P" rather than "Y" for the "User BootP:" query, to indicate that a Partial BootP is being requested.
Cexp>nvramConfigShow()
NVRAM configuration:
Boot file (e.g., '/TFTP/1.2.3.4/path', '~rshuser/path' or 'nfshost:/dir:path'):
>
mccfs2:/usr/local:/lcls/rtems/rtems-4.7.1/target/ssrlApps/powerpc-rtems/beatnik/bin/rtems.exe
Command line parameters:
>
INIT=/boot/lcls/epics/iocCommon/ioc-in20-mg01/startup.cmd
Server IP: >
172.27.8.11
Gateway IP: >
172.27.8.1
My network IF + media (e.g., '100baseTX-full'
'?' for help
)
>
auto
My IP: >
172.27.11.14
My netmask: >
255.255.252.0
My name: >
ioc-in20-mg01
My domain: >
slac.stanford.edu
Loghost IP: >
DNS server 1: >
134.79.151.11
DNS server 2: >
DNS server 3: >
NTP server 1: >
134.79.151.11
NTP server 2: >
NTP server 3: >
Use BOOTP: Yes, No or Partial (-> file and
command line from NVRAM)
Y-N-P
>
Y
Autoboot Delay:
0_.30secs
(0==forever) >
5
Example of Embedded Coldfile NVRAM Configuration