Skip to content

Commit

Permalink
add the latest pvxs, and update ALS-U configuration docs
Browse files Browse the repository at this point in the history
  • Loading branch information
jeonghanlee committed Aug 30, 2024
1 parent a3e36f6 commit 8226fcc
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 17 deletions.
2 changes: 1 addition & 1 deletion configure/CONFIG_MODS
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ SRC_GITURL_SNMP:=$(strip $(SRC_URL_JEONGHANLEE))/$(strip $(SRC_NAME_SNMP))
# SRC_GITURL_MEASCOMP:=$(SRC_URL_JEONGHANLEE)/$(strip $(SRC_NAME_MEASCOMP))
SRC_GITURL_MOTORSIM:=$(strip $(SRC_URL_MOTOR))/$(strip $(SRC_NAME_MOTORSIM))
SRC_GITURL_PYDEVSUP:=$(strip $(SRC_URL_MD))/$(strip $(SRC_NAME_PYDEVSUP))
SRC_GITURL_PVXS:=$(strip $(SRC_URL_MD))/$(strip $(SRC_NAME_PVXS))
SRC_GITURL_PVXS:=$(strip $(SRC_URL_BASE))/$(strip $(SRC_NAME_PVXS))
SRC_GITURL_PMAC:=$(strip $(SRC_URL_PMAC))/$(strip $(SRC_NAME_PMAC))
#
MODS_INSTALL_LOCATIONS_VARS:=$(filter-out %_EPICS %_ %_BASE %_MODS, $(filter INSTALL_LOCATION_%, $(.VARIABLES)))
Expand Down
8 changes: 4 additions & 4 deletions configure/RELEASE
Original file line number Diff line number Diff line change
Expand Up @@ -184,11 +184,11 @@ SRC_NAME_PCAS:=pcas
SRC_TAG_PCAS:=a8ba939
SRC_VER_PCAS:=a8ba939

## https://github.com/mdavidsaver/pvxs
## 2023-12-14 1.3.1
## https://github.com/epics-base/pvxs
## 2024-08-30 647775e
SRC_NAME_PVXS:=pvxs
SRC_TAG_PVXS:=tags/1.3.1
SRC_VER_PVXS:=1.3.1
SRC_TAG_PVXS:=647775e
SRC_VER_PVXS:=647775e
#
# https://github.com/DiamondLightSource/pmac
# 2024-07-15 dls-master
Expand Down
63 changes: 51 additions & 12 deletions docs/ALS-U-EPICS-Environment.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,34 @@
# **ALS-U EPICS Environment**

Jeong Han Lee, jeonglee@lbl.gov
Jeong Han Lee
jeonglee@lbl.gov

This document covers only the Rocky Linux distribution, however, it may work with Redhat variants as well. If one would like to install them to Debian, one can install packages correctly (i.e., package names are slightly different), then all other Makefile procedures remain the same.
This document only covers the Rocky Linux distribution, but it may work on Redhat variants as well. If you want to install it on Debian, you can install the packages correctly (i.e. package names are slightly different), then all other Makefile procedures remain the same.

# Packages

The following repository configuration I did before installing any packages and asking the unix team.
The following is the repository configuration I did before installing any packages and asking the unix team.

```
dnf -y install dnf-plugins-core
dnf -y config-manager --set-enabled powertools
dnf -y install "epel-release"
```

The following packages are not mandatory at ALS, since they already were installed as default. However, if you use your own Rocky Linux, please install them first before installing others. In the last chapter, we will show you more convenient packages for the development environment.
The following packages are not mandatory for ALS, as they are already installed by default. However, if you are using your own Rocky Linux, please install them first before installing others. In the last chapter we will show you more comfortable packages for the development environment.

```
dnf -y install git sudo
```

Here are some packages are required for the ALS-U EPICS environment
Here are some packages that are required for the ALS-U EPICS environment

```
dnf -y install \\
tree which autoconf libtool automake re2c graphviz flex-devel patch readline-devel libXt-devel libXp-devel libXmu-devel libXpm-devel motif-devel gcc-c++ ncurses-devel perl-devel net-snmp net-snmp-utils net-snmp-devel libzip-devel libusb-devel platform-python-devel boost-devel pcre-devel libcurl-devel libxml2-devel hdf5-devel netcdf-devel libtiff-devel libjpeg-turbo-devel libevent-devel libpng-devel libusbx-devel systemd-devel libtirpc-devel libtirpc rpcgen re2c libusb-devel libusb python3-devel cmake libssh2-devel libssh2
```

Some packages I cannot install due to proxy configuration. I asked the Unix team to set up. For example,
I cannot install some packages because of the proxy configuration. I have asked the Unix team to set it up. For example,

```
net-snmp net-snmp-utils net-snmp-devel boost-devel hdf5-devel
Expand Down Expand Up @@ -72,11 +73,11 @@ $ sudo python3 -m pip install numpy==1.19.5 nose2

There are three variables we should define.

* `EPICS_TS_NTP_INET` : I think we don't need to set up this if we use any Linux host, however, it doesn't hurt. If you are not in the ALS network, you can use `time.google.com`, or any other NTP server around your location instead of tic.lbl.gov
* `VENDOR_ULDAQ_PATH` : This is what one see in the above
* `INSTALL_LOCATION` : This is where the EPICS will be. One must have the write permission on that path. We use the `INSTALL_LOCATION` as `/usr/local/epics/alsu.` If you don’t define it, it will use `${HOME}/epics` as a default location. And only if your path does not contain `epics`, the `epics` path will be added to your path as well.
* `EPICS_TS_NTP_INET` : I don't think we need to set this up if we are using any Linux host, but it doesn't hurt. If you are not on the ALS network, you can use time.google.com or any other NTP server near your location instead of tic.lbl.gov.
* `VENDOR_ULDAQ_PATH` : This is what you see in the above
* `INSTALL_LOCATION` : This is where the EPICS will be. You must have the write permission to this path. We use the `INSTALL_LOCATION` as `/usr/local/epics/alsu.` If you don’t define it, it will use `${HOME}/epics` will be used as the default location. And only if your path does not contain `epics`, the `epics` path will also be added to your path as well.

We are still in the release candidate phase, so please use the master branch with the latest commit.
We are still in Release Candidate mode, so please use the master branch with the latest commit.

```
$ git clone https://github.com/jeonghanlee/EPICS-env.git
Expand Down Expand Up @@ -108,7 +109,7 @@ $ caget -h

# The SNMP mib files for Rocky 8/9

To troubleshoot any SNMP connection easily, I asked Kuldeep to review the following external files for the SNMP MIBs files. He approved the installation, so I installed it on `appdev`, which is the development server at ALS.
To easily troubleshoot any SNMP connection, I asked Kuldeep to check the following external files for the SNMP MIBs files. He approved the installation, so I installed it on appdev, which is the development server at ALS.

```
$ git clone https://github.com/jeonghanlee/snmp-mibs-downloader-env
Expand All @@ -120,9 +121,47 @@ $ snmp-mibs-downloader-env (master)$ make get

# Additional Packages

Here are the list of additional packages which we believe could help developers to navigate their IOC development and deployment process.
Here is the list of additional packages we believe can help developers with their IOC development and deployment process.

```
dnf -y install vim bash-completion
```

# Appendix A \- Two Versions of A Module

This chapter shows how to add the different versions of the modules to the existing EPICS environment. For the production environment, the maintainer will only do this if there are specific requirements. This guide will help someone who wants to set up the environment locally for their test environment.

We select the \`pvxs\` module as an example. In the scenario, the existing environment, we have `pvxs 1.3.1`. However, it has a bug found later. So, we would like to upgrade the latest one `647775e`, AKA `1.3.2a`.

### Edit `RELEASE`

Please open `configure/RELEASE`, and add the latest commit id in `SRC_TAG_PVXS` and `SRC_VER_PVXS` as follows:

```
SRC_TAG_PVXS:=647775e
SRC_VER_PVXS:=647775e
```

### Follow the procedure

```
$ rm -rf pvxs-src ## Remove the existing clone folder
$ make init.modules ## Require init.modules NOT init.pvxs
$ make patch.pvxs.apply ## <<<< This step is for a pvxs specific rule
$ make conf.pvxs
$ make build.pvxs
$ make install.pvxs
$ make symlinks
```

### Check the versions

The environment has the following command like make exist. It helps users to see our installation folder. You can check if there are two PVXS in the environment, and the default is for the latest version that we just installed.

```
$ make exist
├── pvxs -> ./pvxs-647775e
│   ├── pvxs-1.3.1
│   ├── pvxs-647775e
```

Binary file modified docs/ALS-U-EPICS-Environment.md.pdf
Binary file not shown.

0 comments on commit 8226fcc

Please sign in to comment.