diff --git a/startup/alias.template b/startup/alias.template deleted file mode 100644 index c3a40f10ad00a82de30eac678a0f565eb09949f5..0000000000000000000000000000000000000000 --- a/startup/alias.template +++ /dev/null @@ -1 +0,0 @@ -alias($(O), $(A)) diff --git a/startup/configChannels.input b/startup/configChannels.input deleted file mode 100644 index 4be347f35f8922748f1d498d70d404fd3abfddf6..0000000000000000000000000000000000000000 --- a/startup/configChannels.input +++ /dev/null @@ -1,11 +0,0 @@ -#channel num, PV name, description -0,CvtFld,Cavity Field -1,Refer,Reference -2,PreAmpFwd,PreAmp Fwd -3,PwrAmpFwd,PowerAmp Fwd -4,PwrAmpRefl,PowerAmp Refl -5,CvtFwd,Cavity Forward -6,CvtRfl,Cavity Refl -7,VM,Vector Modulator -8,VMOut,Vector Modulator Out -9,AI9,Analog Channel 9 diff --git a/startup/configChannels.sh b/startup/configChannels.sh deleted file mode 100644 index 88dd9f5cbe8730fde030e235a2f543f79eae69e3..0000000000000000000000000000000000000000 --- a/startup/configChannels.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/bash -if [ $# -ne 2 ]; then - echo "usage: configChannels.sh <digitiser instance> <config input file>" - echo "There is an example for config input file: configChannels.input" - exit -fi - -installPath=/iocs/sis8300llrf - -if [ ! -d $installPath ]; then - echo "Folder $installPath not found!" - exit -fi - -if [ ! -w $installPath ]; then - echo "You cannot write on $installPath !" - exit -fi - - -iNum=$1 -confFile=$2 - - -fPath=$installPath/config-aliasing$iNum.iocsh -fPathDesc=$installPath/config-desc$iNum.iocsh -# Populate IOC snippet for alias values -if [ -f $fPath ]; then - rm $fPath -fi - -if [ -f $fPathDesc ]; then - rm $fPathDesc -fi - -# Populate iocsh snippet containing alias definitions. -echo "# Alias definitions for digitiser card number $iNum" > $fPath -template0="dbLoadRecords(\$(E3_CMD_TOP)/alias.template, \"O=$LLRF_IOC_NAME$iNum:AI" -template1="dbLoadRecords(\$(E3_CMD_TOP)/desc.template, " - - -{ -read -while IFS=, read -r ch pv_name desc -do - ch=$(echo $ch | sed -e 's/^[ \t]*//') - pv_name=$(echo $pv_name | sed -e 's/^[ \t]*//') - desc=$(echo $desc | sed -e 's/^[ \t]*//') - if [ ${#desc} -gt 41 ]; then - echo "Warning: Description truncated to char[41] - ${desc:0:40}" - desc=${desc:0:40} - fi - - # If alias is the same as channel, doesn't set alias - if [ $pv_name != "AI$ch" ]; then - echo "# Board $iNum, Channel $ch = $pv_name" >> $fPath - oPrefix="$template0$ch" - aPrefix="$LLRF_IOC_NAME:$pv_name" - - # set aliases - echo "$oPrefix, A=$aPrefix\")" >> $fPath - echo "$oPrefix-ATT, A=$aPrefix-ATT\")" >> $fPath - echo "$oPrefix-ATT-RBV, A=$aPrefix-ATT-RBV\")" >> $fPath - echo "$oPrefix-DECF, A=$aPrefix-DECF\")" >> $fPath - echo "$oPrefix-DECF-RBV, A=$aPrefix-DECF-RBV\")" >> $fPath - echo "$oPrefix-DECO, A=$aPrefix-DECO\")" >> $fPath - echo "$oPrefix-DECO-RBV, A=$aPrefix-DECO-RBV\")" >> $fPath - echo "$oPrefix-FileName, A=$aPrefix-FileName\")" >> $fPath - echo "$oPrefix-Slope, A=$aPrefix-Slope\")" >> $fPath - echo "$oPrefix-Offset, A=$aPrefix-Offset\")" >> $fPath - echo "$oPrefix-InputValues, A=$aPrefix-InputValues\")" >> $fPath - echo "$oPrefix-DigitisedValues, A=$aPrefix-DigitisedValues\")" >> $fPath - echo "$oPrefix-FittedLine, A=$aPrefix-FittedLine\")" >> $fPath - fi - - # set descriptions - echo "$template1\"A=$LLRF_IOC_NAME$iNum:AI$ch, D=$desc\")" >> $fPathDesc - -done -} < $confFile - diff --git a/startup/deployServiceIOC.sh b/startup/deployServiceIOC.sh deleted file mode 100755 index c94524eabfb95b0792e4ec4e8331413919afca15..0000000000000000000000000000000000000000 --- a/startup/deployServiceIOC.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh -if [ "$EUID" -ne 0 ] ; then - echo "Deployment script must be run with root priviledges, exiting..." - exit -fi - -if [[ $# -gt 0 ]] ; then - EPICS_SRC=$1 - EPICS_BASE=$2 - E3_REQUIRE_VERSION=$3 - LLRF_IOC_NAME=$4 -else - echo "Usage: sudo deployServiceIOC.sh <e3 source directory> <epics base directory> <epics require version> <LLRF_IOC_NAME>" - echo "sudo deployServiceIOC.sh $EPICS_SRC $EPICS_BASE $E3_REQUIRE_VERSION $LLRF_IOC_NAME" - exit -fi - -hostName=$(hostname) -serviceName=/etc/systemd/system/ioc@llrf.service -serviceNameGit=$EPICS_SRC/e3-sis8300llrf/startup/ioc@llrf.service -#Prepare service and enable - -#Get EPICS base version and require version -ver_base=$(echo $EPICS_BASE | cut -c13-18) -eval "sed -e 's/icslab-llrf/$hostName/'\ - -e 's/<epics_base>/$ver_base/'\ - -e 's/<req_version>/$E3_REQUIRE_VERSION/'\ - < $serviceNameGit" > $serviceName - -systemctl enable ioc@llrf.service - - -#Prepare siteApp configuration for IOC instance specific configuration -siteApp=/iocs/sis8300llrf -if [ ! -d $siteApp/log ]; then - mkdir -p "$siteApp/log/" -fi -if [ ! -d $siteApp/run ]; then - mkdir -p "$siteApp/run/" -fi - -chown -R iocuser $siteApp - -if [ ! -L /etc/systemd/system/multi-user.target.wants/ioc@llrf.service ] ; then - echo "ioc@llrf.service is not enabled." -fi -systemctl daemon-reload - diff --git a/startup/deployStartup.sh b/startup/deployStartup.sh deleted file mode 100755 index f9482ae86ecec87b49cb5d0ec967c6235bb9332f..0000000000000000000000000000000000000000 --- a/startup/deployStartup.sh +++ /dev/null @@ -1,63 +0,0 @@ -#!/bin/sh - -#Prepare siteApp configuration for IOC instance specific configuration -siteApp=/iocs/sis8300llrf - -if [ ! -d $siteApp ]; then - sudo mkdir -p "$siteApp" -fi - -sudo chown -R iocuser "$siteApp" - - -cp $EPICS_SRC/e3-sis8300llrf/startup/llrf_template.iocsh $siteApp/llrf.iocsh -slots_fpga=$(ls /dev/sis8300-* | cut -f2 -d "-") -if [ ${#slots_fpga} -lt 1 ] ; then - echo "Could not find SIS8300 digitiser board." - echo "Board slot must be manually configured in $siteApp/llrf.cmd" - snippet="epicsEnvSet(\"LLRF_PREFIX\" \"$LLRF_IOC_NAME\" ) \\\n \ -epicsEnvSet(\"LLRF_SLOT\" \"<slot>\" ) \\\n \ -iocshLoad $\(E3_CMD_TOP\)\/llrf.iocsh \\\n \ -iocshLoad $\(E3_CMD_TOP\)\/config-aliasing1.iocsh \\\n \ -iocshLoad $\(E3_CMD_TOP\)\/config-desc1.iocsh \\\n" - echo "snippet = $snippet" - eval "sed -e $'s/<snippet>/$snippet/g' < $EPICS_SRC/e3-sis8300llrf/startup/llrf_template.cmd > $siteApp/llrf.cmd" -else - # Start board enumeration from 1. - i=1 - - snippet="" - for slot_fpga in $(ls /dev/sis8300-* | cut -f2 -d "-" | sort -n) - do - snippet="$snippet \\\n\ -epicsEnvSet(\"LLRF_PREFIX\" \"$LLRF_IOC_NAME$i\" ) \\\n \ -epicsEnvSet(\"LLRF_SLOT\" \"$slot_fpga\" ) \\\n \ -iocshLoad $\(E3_CMD_TOP\)\/llrf.iocsh \\\n \ -iocshLoad $\(E3_CMD_TOP\)\/config-aliasing$i.iocsh \\\n \ -iocshLoad $\(E3_CMD_TOP\)\/config-desc$i.iocsh \\\n" - i=$(($i+1)) - done - #Populate digitiser slot and IOC Name in startup script. - eval "sed -e $'s/<snippet>/$snippet/g'\ - < $EPICS_SRC/e3-sis8300llrf/startup/llrf_template.cmd > $siteApp/llrf.cmd" - -fi - - -#Timing configuration -# We check the EVR is available on PCIe to use in timing.iocsh snippet used to configure the EVR. -pcie_enumeration=$(lspci | grep Xilinx | cut -c1-7) -if [ ${#pcie_enumeration} != 7 ] ; then - echo "Could not find Timing Event Receiver on PCIexpress bus." - echo "Therefore no timing configuration created." - echo "# no timing configuration as no EVR detected on PCIe bus." > $siteApp/timing.iocsh -else - eval "sed -e 's/<B:D.F>/$pcie_enumeration/' -e 's/<LLRF_IOC_NAME>/$LLRF_IOC_NAME/' < $EPICS_SRC/e3-sis8300llrf/startup/timing_template.iocsh" > "/iocs/sis8300llrf/timing.iocsh" - cp $EPICS_SRC/e3-sis8300llrf/startup/tr-sequencer.sh $siteApp/tr-sequencer.sh -fi - -# Alias template -cp $EPICS_SRC/e3-sis8300llrf/startup/alias.template $siteApp/alias.template - -# Description template -cp $EPICS_SRC/e3-sis8300llrf/startup/desc.template $siteApp/desc.template diff --git a/startup/desc.template b/startup/desc.template deleted file mode 100644 index 0adfc5f93f60b92fc1049ed8eb6801e5a6fd4156..0000000000000000000000000000000000000000 --- a/startup/desc.template +++ /dev/null @@ -1,3 +0,0 @@ -record("*", "$(A)"){ - field(DESC, "$(D)") -} diff --git a/startup/ioc@llrf.service b/startup/ioc@llrf.service deleted file mode 100644 index 1b456a8820848fb67eabed57482b554094f01288..0000000000000000000000000000000000000000 --- a/startup/ioc@llrf.service +++ /dev/null @@ -1,24 +0,0 @@ -[Unit] -Description=IOC: %i -ConditionHost=icslab-llrf -After=multi-user.target -Requires=multi-user.target - -[Service] -User=root -Type=simple -Environment=SITEAPP=/iocs/sis8300llrf -#run ProcServ -WorkingDirectory=${SITEAPP} -ExecStart=/usr/bin/procServ \ - -f \ - -L ${SITEAPP}/log-ioc-%i \ - -i ^C^D \ - -c ${SITEAPP}/run/ \ - -n %i \ - 2000 \ - /epics/base-<epics_base>/require/<req_version>/bin/iocsh.bash \ - ${SITEAPP}/llrf.cmd - -[Install] -WantedBy=multi-user.target diff --git a/startup/llrf_template.cmd b/startup/llrf_template.cmd deleted file mode 100644 index f8b5c7906215ef8288c46d324ceef375262e8f9c..0000000000000000000000000000000000000000 --- a/startup/llrf_template.cmd +++ /dev/null @@ -1,11 +0,0 @@ -# Timing Configuration -iocshLoad $(E3_CMD_TOP)/timing.iocsh - -epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES" "16777300") -require sis8300llrf, 3.11.0 -ndsSetTraceLevel 3 - -<snippet> - -afterInit("dbgrep REQMOD* > '$(E3_CMD_TOP)/REQMODs.list'") - diff --git a/startup/llrf_template.iocsh b/startup/llrf_template.iocsh deleted file mode 100644 index 7f652e3ecb5b7c716a6332a6800e5eaf63c581dc..0000000000000000000000000000000000000000 --- a/startup/llrf_template.iocsh +++ /dev/null @@ -1,38 +0,0 @@ - -####################### -### LLRF CONTROLLER 1 # -####################### -epicsEnvSet("LLRF_NOPULSETYPES" "$(SIS8300LLRF_NOPULSETYPES=1)") -epicsEnvSet("LLRF_PULSETYPE" "$(SIS8300LLRF_PULSETYPE=0)") - -epicsEnvSet("LLRF_PORT", "$(LLRF_PREFIX)") -epicsEnvSet("SP_SMNM_MAX" "0x1000") -epicsEnvSet("FF_SMNM_MAX" "0x10000") -epicsEnvSet("PIERR_SMNM_MAX" "0x10000") -epicsEnvSet("AI_SMNM_MAX" "0x200000") -epicsEnvSet("AI_SMNM_DEFOPT" "220000") - -ndsCreateDevice "sis8300llrf", "$(LLRF_PORT)", "FILE=/dev/sis8300-$(LLRF_SLOT), NUM_PULSE_TYPES=$(LLRF_NOPULSETYPES)" - -dbLoadRecords("sis8300llrf.db", "PREFIX=$(LLRF_PREFIX),ASYN_PORT=$(LLRF_PORT),NUM_PULSE_TYPES=$(LLRF_NOPULSETYPES),SP_SMNM_MAX=$(SP_SMNM_MAX), FF_SMNM_MAX=$(FF_SMNM_MAX), AI_NELM=$(AI_SMNM_MAX),PIERR_SMNM_MAX=$(PIERR_SMNM_MAX),SMNM_VAL=$(AI_SMNM_DEFOPT)") -dbLoadRecords("sis8300llrf-Main-ControlTable-CH.template", "PREFIX=$(LLRF_PREFIX), ASYN_PORT=$(LLRF_PORT), PULSE_TYPE=$(LLRF_PULSETYPE), CTRL_TABLE_TYPE=SP, CTRL_TABLE_CG_NAME=sp, TABLE_SMNM_MAX=$(SP_SMNM_MAX)") -dbLoadRecords("sis8300llrf-Main-ControlTable-CH.template", "PREFIX=$(LLRF_PREFIX), ASYN_PORT=$(LLRF_PORT), PULSE_TYPE=$(LLRF_PULSETYPE), CTRL_TABLE_TYPE=FF, CTRL_TABLE_CG_NAME=ff, TABLE_SMNM_MAX=$(FF_SMNM_MAX)") -dbLoadRecords("sis8300llrf-SpecOp.db", "PREFIX=$(LLRF_PREFIX), ASYN_PORT=$(LLRF_PORT), PULSE_TYPE=$(LLRF_PULSETYPE), FF_SMNM_MAX = 0x1000, SP_SMNM_MAX = 0x100000") -dbLoadRecords("sis8300llrf-Setup.db", "PREFIX=$(LLRF_PREFIX), ASYN_PORT=$(LLRF_PORT)") -dbLoadRecords("sis8300Register.db", "PREFIX=$(LLRF_PREFIX), ASYN_PORT=$(LLRF_PORT), REG_SCAN=2") -dbLoadRecords("sis8300noAO.db", "PREFIX=$(LLRF_PREFIX), ASYN_PORT=$(LLRF_PORT), AI_NELM=$(AI_SMNM_MAX)") -dbLoadRecords("sis8300llrf-Register.db", "PREFIX=$(LLRF_PREFIX), ASYN_PORT=$(LLRF_PORT), REG_SCAN=2") - -# configuration for scaling module -scalingConfigure("scalingLLRF", 10) -dbLoadTemplate("scaling_llrf.substitutions","PREFIX=$(LLRF_PREFIX),PORT=scalingLLRF,TIMEOUT=1,MAX_ELEM=$(AI_SMNM_MAX)") - - -epicsThreadSleep(1) -# Configure the RTM for LLRF -afterInit("dbpf $(LLRF_PREFIX):RTM 2 > /dev/null") -epicsThreadSleep(1) - -# Configure vector modulator output, write 0x12 to 0x60600000 -afterInit("dbpf $(LLRF_PREFIX):REG-SET-0x12 1616904192 > /dev/null") - diff --git a/startup/setPVs.sh b/startup/setPVs.sh deleted file mode 100644 index b27dd27d4669b3248efe0da28284e9682a8821d0..0000000000000000000000000000000000000000 --- a/startup/setPVs.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -caput -s ${LLRF_IOC_NAME}:AI0-MAG.DESC "PreAmp Fwd" -caput -s ${LLRF_IOC_NAME}:AI1-MAG.DESC "PwrAmp Fwd" -caput -s ${LLRF_IOC_NAME}:AI2-SMON-MAGCURR.DESC "PwrAmp Rflct" -caput -s ${LLRF_IOC_NAME}:AI3-SMON-MAGCURR.DESC "Circ Fwd" -caput -s ${LLRF_IOC_NAME}:AI4-SMON-MAGCURR.DESC "Cav1 Fwd" -caput -s ${LLRF_IOC_NAME}:AI5-SMON-MAGCURR.DESC "Cav1 Reflct" -caput -s ${LLRF_IOC_NAME}:AI6-SMON-MAGCURR.DESC "Cav2 Fwd" -caput -s ${LLRF_IOC_NAME}:AI7-SMON-MAGCURR.DESC "Cav2 Reflct" - diff --git a/startup/timing_template.iocsh b/startup/timing_template.iocsh deleted file mode 100644 index 2c544b460c7f5bdd90222cdaab045739d1dc9101..0000000000000000000000000000000000000000 --- a/startup/timing_template.iocsh +++ /dev/null @@ -1,46 +0,0 @@ -require mrfioc2,2.2.0-rc5 - -epicsEnvSet("IOC" "TR") -epicsEnvSet("DEV1" "<LLRF_IOC_NAME>") - -epicsEnvSet("MainEvtCODE" "14") -epicsEnvSet("HeartbeatEvtCODE" "122") -epicsEnvSet("ESSEvtClockRate" "88.0525") - -epicsEnvSet("RepRate", "14") -epicsEnvSet("Pulse_coming_event" "15") -epicsEnvSet("Pulse_start_event" "16") -epicsEnvSet("Pulse_end_event" "17") - -mrmEvrSetupPCI("$(DEV1)", "<B:D.F>") -dbLoadRecords("evr-mtca-300u-ess.db","SYS=$(IOC), EVR=$(DEV1), D=$(DEV1), FEVT=$(ESSEvtClockRate)") -dbLoadRecords("evrevent.db","EN=$(IOC)-$(DEV1)-$(RepRate), OBJ=$(DEV1), CODE=$(RepRate), EVNT=$(RepRate)") -dbLoadRecords("evrevent.db","EN=$(IOC)-$(DEV1)-$(Pulse_coming_event), OBJ=$(DEV1), CODE=$(Pulse_coming_event), EVNT=$(Pulse_coming_event)") -dbLoadRecords("evrevent.db","EN=$(IOC)-$(DEV1)-$(Pulse_start_event), OBJ=$(DEV1), CODE=$(Pulse_start_event), EVNT=$(Pulse_start_event)") -dbLoadRecords("evrevent.db","EN=$(IOC)-$(DEV1)-$(Pulse_end_event), OBJ=$(DEV1), CODE=$(Pulse_end_event), EVNT=$(Pulse_end_event)") - -# needed with software timestamp source without Real-Time thread scheduling -var evrMrmTimeNSOverflowThreshold 100000 - - -# Get current time from system clock -afterInit("dbpf $(IOC)-$(DEV1):TimeSrc-Sel 2") - -# Set delay compensation to 70 ns, needed to avoid timestamp issue -afterInit("dbpf $(IOC)-$(DEV1):DC-Tgt-SP 70") - -# Backplane trigger line configuration -afterInit("dbpf $(IOC)-$(DEV1):DlyGen0-Evt-Trig0-SP $(Pulse_coming_event)") -afterInit("dbpf $(IOC)-$(DEV1):DlyGen0-Width-SP 1000") # time in micro-seconds -afterInit("dbpf $(IOC)-$(DEV1):OutBack0-Src-SP 0") # trigger from delay generator 0 to RX17 -afterInit("dbpf $(IOC)-$(DEV1):OutFP0-Src-SP 0") - -afterInit("dbpf $(IOC)-$(DEV1):DlyGen1-Evt-Trig0-SP $(Pulse_start_event)") -afterInit("dbpf $(IOC)-$(DEV1):DlyGen1-Width-SP 1000") # time in micro-seconds -afterInit("dbpf $(IOC)-$(DEV1):OutBack1-Src-SP 1") # trigger from delay generator 0 to TX17 -afterInit("dbpf $(IOC)-$(DEV1):OutFP1-Src-SP 1") - -afterInit("dbpf $(IOC)-$(DEV1):DlyGen2-Evt-Trig0-SP $(Pulse_end_event)") -afterInit("dbpf $(IOC)-$(DEV1):DlyGen2-Width-SP 1000") # time in micro-seconds -afterInit("dbpf $(IOC)-$(DEV1):OutBack2-Src-SP 2") # trigger from delay generator 0 to RX18 -afterInit("dbpf $(IOC)-$(DEV1):OutFP2-Src-SP 2") diff --git a/startup/tr-sequencer.sh b/startup/tr-sequencer.sh deleted file mode 100644 index 642a5b7227182f58b531f86a378f74de6166ddb0..0000000000000000000000000000000000000000 --- a/startup/tr-sequencer.sh +++ /dev/null @@ -1,14 +0,0 @@ -# $1 is $(IOC) macro -# $2 is $(DEV1) macro -caput $1-$2:PS0-Div-SP 6289424 # in standalone mode because real frequency from synthesiser is 88.06194802 MHz, otherwise 6289464 - -# Configure the sequencer -caput $1-$2:SoftSeq0-RunMode-Sel 0 # normal mode -caput $1-$2:SoftSeq0-TrigSrc-2-Sel 2 # prescaler 0 -caput $1-$2:SoftSeq0-TsResolution-Sel 2 -caput $1-$2:SoftSeq0-Load-Cmd 1 -caput $1-$2:SoftSeq0-Enable-Cmd 1 - -caput -a $1-$2:SoftSeq0-EvtCode-SP 5 14 15 16 17 127 >/dev/null -caput -a $1-$2:SoftSeq0-Timestamp-SP 5 0 10 310 3170 3180 >/dev/null -caput $1-$2:SoftSeq0-Commit-Cmd 1 >/dev/null diff --git a/tools/bumpVer.sh b/tools/bumpVer.sh deleted file mode 100644 index 9352310d246fee44ce3bdf1fe7de140eb3c6b5e8..0000000000000000000000000000000000000000 --- a/tools/bumpVer.sh +++ /dev/null @@ -1,18 +0,0 @@ -if [ $# -ne 4 ]; then - echo "usage bumpVers.sh <MODULE PATH> <MODULE DEPENDENCY> <OLD VERSION> <NEW VERSION>" - echo "e.g. bumpVers.sh ../e3-sis8300 SIS8300DRV 4.3.3 4.3.4" - exit -fi - -cd $1 -oldDep=$(grep $2 configure/CONFIG_MODULE) -oldVer=$3 -newVer=$4 - -newDep=${oldDep/$oldVer/$newVer} -sed -i "s/$oldDep/$newDep/" configure/CONFIG_MODULE - -git add configure/CONFIG_MODULE -git commit -m "Bump version of module dependency $2 from $3 to $4" - -git diff HEAD^ diff --git a/tools/envLLRF.sh b/tools/envLLRF.sh deleted file mode 100755 index 3a42d39ce578751a64c412a495873e87fc32fc17..0000000000000000000000000000000000000000 --- a/tools/envLLRF.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/bash - -if [ $# -ne 1 ]; then - echo 'usage: envLLRF.sh <$EPICS_SRC>' - exit 1 -fi - -echo "*** Kernel Release ***" -uname -a -echo "*** UDev rules***" -ls /etc/udev/rules.d/99-* -echo "*** Kernel Module Load Rules ***" -ls /etc/modules-load.d/mrf.conf -ls /etc/modules-load.d/sis8300drv.conf -echo "*** Kernel Modules Loaded***" -lsmod | grep sis8300drv -lsmod | grep mrf -echo "*** Device Nodes***" -ls /dev/sis8300-* -ls /dev/uio* -echo "*** OS Release***" -cat /etc/centos-release -echo "*** systemd configuration ***" -echo " *service " -file /etc/systemd/system/ioc@llrf.service -echo " *service wants configuration " -file /etc/systemd/system/multi-user.target.wants/ioc@llrf.service -echo "*** Hardware Device ***" -lspci -v | grep Xilinx -lspci -v | grep Juelich -echo "*** EPICS Bases Available***" -ls /epics/ | grep base -echo "*** EPICS Modules Installed ***" -make -C $EPICS_SRC/e3-asyn existent | grep "[0-9]\+\.[0-9]\+\.[0-9]\+" | grep -v make: -make -C $EPICS_SRC/e3-loki existent | grep "[0-9]\+\.[0-9]\+\.[0-9]\+" | grep -v make: -make -C $EPICS_SRC/e3-nds existent | grep "[0-9]\+\.[0-9]\+\.[0-9]\+" | grep -v make: -make -C $EPICS_SRC/e3-sis8300drv existent | grep "[0-9]\+\.[0-9]\+\.[0-9]\+" | grep -v make: -make -C $EPICS_SRC/e3-sis8300 existent | grep "[0-9]\+\.[0-9]\+\.[0-9]\+" | grep -v make: -make -C $EPICS_SRC/e3-sis8300llrfdrv existent | grep "[0-9]\+\.[0-9]\+\.[0-9]\+" | grep -v make: -make -C $EPICS_SRC/e3-sis8300llrf existent | grep "[0-9]\+\.[0-9]\+\.[0-9]\+" | grep -v make: -make -C $EPICS_SRC/e3-mrfioc2 existent | grep "[0-9]\+\.[0-9]\+\.[0-9]\+" | grep -v make: