Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. You need /lib, /include, and /bin.
    1. 1) Keep everything in the epics/ folder, but copy the folder over, then update $LD_LIBRARY_PATH(lib), $PATH(bin),  $CPATH(include)?
      1. cp -r /mnt/eed/ad-build/registry/epics-base/R7.0.8/rocky9/epics-base/ /build/
      2. # If this works add to .bashrc instead because this'll be dev image
        export EPICS_BASE=/build/epics-base export EPICS_HOST_ARCH=$(${EPICS_BASE}/startup/EpicsHostArch) export PATH=${EPICS_BASE}/bin/${EPICS_HOST_ARCH}:${PATH}
      3. Works for binaries, need to try building simple ioc with it.

        Code Block
        languagebash
        mkdir -p /build/testIoc
        cd /build/testIoc
        makeBaseApp.pl -t example testIoc
        makeBaseApp.pl -i -t example testIoc
        make
        cd iocBoot/ioctestIoc
        chmod u+x st.cmd
        ./st.cmd

        Building works, and can run the ioc. 

        Code Block
        languagebash
        linenumberstrue
        collapsetrue
        [root@ad-build-container-rocky9-544f5787dc-gl4sq ioctestIoc]# pwd
        /build/testIoc/iocBoot/ioctestIoc
        [root@ad-build-container-rocky9-544f5787dc-gl4sq ioctestIoc]# ls
        Makefile  README  envPaths  st.cmd
        [root@ad-build-container-rocky9-544f5787dc-gl4sq ioctestIoc]# ./st.cmd
        #!../../bin/linux-x86_64/testIoc
        < envPaths
        epicsEnvSet("IOC","ioctestIoc")
        epicsEnvSet("TOP","/build/testIoc")
        epicsEnvSet("EPICS_BASE","/build/epics-base")
        cd "/build/testIoc"
        ## Register all support components
        dbLoadDatabase "dbd/testIoc.dbd"
        testIoc_registerRecordDeviceDriver pdbbase
        ## Load record instances
        dbLoadTemplate "db/user.substitutions"
        dbLoadRecords "db/testIocVersion.db", "user=root"
        dbLoadRecords "db/dbSubExample.db", "user=root"
        cd "/build/testIoc/iocBoot/ioctestIoc"
        iocInit
        Starting iocInit
        ############################################################################
        ## EPICS R7.0.8
        ## Rev. R7.0.8
        ## Rev. Date Git: 2023-12-14 16:42:10 -0600
        ############################################################################
        cas WARNING: Configured TCP port was unavailable.
        cas WARNING: Using dynamically assigned TCP port 37587,
        cas WARNING: but now two or more servers share the same UDP port.
        cas WARNING: Depending on your IP kernel this server may not be
        cas WARNING: reachable with UDP unicast (a host's IP in EPICS_CA_ADDR_LIST)
        iocRun: All initialization complete
        ## Start any sequence programs
        #seq sncExample, "user=root"
        epics> ^C
        [root@ad-build-container-rocky9-544f5787dc-gl4sq ioctestIoc]#
      4. Now Youre on step 5 of epics-controls. can build, need to try asyn as that would need 'include' statements of epics. After this then we can conclude epics can be built/ran in a container, although still unclear if can access s3df pvs?
      5. How would channel access work if epics is in container? Can it be accessed from main server?
    2. 2) Or try moving everything (/include (.h), /lib (.so/.a), and /bin (binaries)) to according directories

...