Private
Public Access
11
1
30
Setup Computer IOC Server
raabe edited this page 2023-11-24 17:45:12 +01:00

Prepare Computer

For use with orocos, trying to avoid Orchestra....

  • Install a Debian 12 Desktop 64 Bit, username: control with sudo permissions (add control to group sudo and to dialout)
  • disable sleep modes in /etc/systemd/sleep.conf
[Sleep]
AllowSuspend=no
AllowHibernation=no
AllowSuspendThenHibernate=no
AllowHybridSleep=no
  • set NTP server (if defaults are not working) in /etc/systemd/timesyncd.conf
[Time]
NTP=d.psi.ch
  • Add various packages:
sudo apt-get install fakeroot build-essential cvs flex bison openssh-server git-core geany synaptic joe jed subversion autoconf-archive cmake libreadline-dev libhdf5-dev pkg-config libxml2-dev libzmq3-dev   liblog4cpp5-dev libelf-dev libssl-dev libarchive-dev libgtkmm-3.0-dev libatkmm-1.6-dev libglibmm-2.4-dev libncurses5-dev libxerces-c-dev libboost-dev  xsltproc cifs-utils xterm  meld default-jre autogen autoconf libtool libqwt-qt5-dev  libqt5webkit5-dev rsync libboost-all-dev strace python3-numpy python3-pip python3-h5py python3-zmq python3-matplotlib python3-attr python3-scipy hdf5-tools dbus-x11 nfs-common nfs-kernel-server nfs4-acl-tools iptables dnsmasq iptables-persistent tftpd-hpa tftp-hpa

sudo apt-get install linux-image-rt-amd64 linux-headers-rt-amd64

apt install python3.11-venv

pip3 install pyepics

get Pixelator for various config files

cd
mkdir work
cd work
git clone https://gitlab.psi.ch/microspectro/pixelator.git stxm
  • create mount points
sudo mkdir /mnt/epics
sudo mkdir /mnt/ioc
sudo mkdir /mnt/eldk52-e500v2
  • add to /etc/fstab
sudo cat /home/control/work/stxm/IOCServer/fstab-mv >> /etc/fstab

#sls-fs:/export/sls/ioc             /ioc            nfs  ro         0       0
#sls-fs:/export/gfa-epics/epics             /mnt/epics            nfs  ro         0       0
#gfa-ifc-fs:/export/eldk52-e500v2        /mnt/eldk52-e500v2      nfs  ro         0       0
  • prepare local copy of ioc
sudo mkdir /local
sudo mkdir /local/ioc_local
sudo mkdir /local/eldk52-e500v2_local
sudo mkdir /export/
sudo mkdir /export/eldk52-e500v2
sudo mkdir /export/sls
sudo mkdir /export/sls/ioc
sudo mkdir /export/sls/data
sudo mkdir /export/sls/ifc-exchange
sudo ln -s /local/ioc_local /ioc


/home/control/work/stxm/IOCServer/sync_scripts/sync_ioc
/home/control/work/stxm/IOCServer/sync_scripts/sync_eldk

  • prepare NAT routing
#add to /etc/sysctl.d/99-sysctl.conf
net.ipv4.ip_forward=1

#add to /etc/network/interfaces, use the correct inferface, e.g. eno2
auto eno2
iface eno2 inet static
        address 192.168.10.1/24

  • add NAT routing
sudo iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eno1 -j MASQUERADE
sudo iptables-save > /etc/iptables/rules.v4


  • copy server config files
sudo cp /home/control/work/stxm/IOCServer/exports /etc
sudo cp /home/control/work/stxm/IOCServer/tftpd-hpa /etc/default/

  • setup DNS and DHCP
sudo cp /home/control/work/stxm/IOCServer/dnsmasq.conf /etc/dnsmasq.d/ 
  • setup ethercat
mkdir ~/Basesystem
cd ~/Basesystem
###git clone https://gitlab.com/etherlab.org/ethercat.git
git clone https://github.com/paulscherrerinstitute/ethercat.git
cd ethercat
### git checkout stable-1.5
./bootstrap
./configure --disable-8139too --disable-eoe
make all modules
sudo make modules_install install
sudo depmod -a

sudo cp ~/work/stxm/IOCServer/99-EtherCAT.rules  /etc/udev/rules.d/
sudo cp ~/work/stxm/IOCServer/ethercat.conf /usr/local/etc/ ## change MAC address
sudo cp ~/work/stxm/IOCServer/ethercat.conf /etc/ ## change MAC address


  • install epics gw
mkdir /usr/local/epics/extensions
cd /usr/local/epics/extensions
wget https://github.com/epics-extensions/ca-gateway/archive/refs/tags/v2.1.3.tar.gz
tar xfv v2.1.3.tar.gz 
git clone https://github.com/epics-modules/pcas.git
cd pcas
cd configure
cp ~/work/stxm/IOCServer/RELEASE.local .
cd ..
make
cd ../ca-gateway-2.1.3/configure/
cp ~/work/stxm/IOCServer/RELEASE.local .
# edit RELEASE to add:
# PCAS=/usr/local/epics/extensions/pcas
cd ../
make