diff --git a/2-IOC-deployment.md b/2-IOC-deployment.md index fb73dc415b2d75b597da668b4f5b2bdd1de9d331..bbfea1e42f5a2c126718847d32c45b611a33fd96 100644 --- a/2-IOC-deployment.md +++ b/2-IOC-deployment.md @@ -199,7 +199,23 @@ $ ./softioc/xxx.sh run ### 2.10 Resolve the runtime errors -Scroll back until the you see the **first** error message. +Errors that occur when commands in an IOC's startup script are executed are usually critical. + +#### 2.10.1 Identify critical runtime errors + +Scroll back until the you see the **first** error message. Resolving the **first** error message can often eliminate many other error messages that appear unrelated. + +#### 2.10.2 Stop the IOC + +Exit the IOC from the IOC shell: +``` +kmp> exit +``` +Note: typing `ctrl+c` will also stop the IOC. + +#### 2.10.3 Resolve critcial runtime errors + +Resolve the problem that is causing the first error message, which accurately describes the problem. <details> <summary>hint</summary> @@ -249,12 +265,11 @@ perl -CSD /APSshare/epics/base-7.0.4.1/bin/rhel8-x86_64/convertRelease.pl -t /ho ``` </details> -### 2.11 Run the IOC +#### 2.10.4 Run the IOC -Start the IOC and confirm the envPaths is loaded. +Start the IOC and confirm the error is resolved. ``` -$ ./softioc/xxx.sh caqtdm $ ./softioc/xxx.sh run ``` @@ -262,14 +277,55 @@ There will be autosave errors due to missing .sav files. Let the IOC run for at Note: at this point the IOC is usable. -### 2.12 Stop the IOC +### 2.11 Resolve iocInit errors -Exit the IOC from the IOC shell: +Errors that occur during iocInit are not always critical and can sometimes be ignored, but it is good to eliminate them if possible. + +#### 2.11.1 Identify iocInit errors + +These `findUioAddr` errors occur at iocInit: + +``` +findUioAddr: Failed to open '/sys/class/uio/uio0/name' +findUioAddr: Failed to open '/sys/class/uio/uio0/name' +findUioAddr: Failed to open '/sys/class/uio/uio0/name' +``` + +The errors come from softGlueZynq, which isn't needed in general purpose Linux IOCs. +#### 2.11.2 Stop the IOC + +Exit the IOC from the IOC shell: ``` kmp> exit ``` +Note: typing `ctrl+c` will also stop the IOC. + +#### 2.11.3 Resolve iocInit errors + +Remove softGlueZynq by doing the following: + +``` +$ cd ${IOC_DIR}/xxx +$ echo "undefine SOFTGLUEZYNQ" > configure/RELEASE.local +$ make distclean +$ make +``` + +#### 2.10.4 Run the IOC +Start the IOC and confirm the error is resolved. + +``` +$ ./softioc/xxx.sh run +``` + +### 2.11 Stop the IOC + +Exit the IOC from the IOC shell: +``` +kmp> exit +``` Note: typing `ctrl+c` will also stop the IOC. ## [3 Add simulated motors to the IOC](3-Add-simulated-motors.md)