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