EPICS

From V5wiki

Jump to: navigation, search

Contents

Getting started on Debian

1. Download the repository signing key: http://epics.nsls2.bnl.gov/debian/repo-key.pub

2. Add the key to the APT keyring with the following command.

apt-key add repo-key.pub

3. Add the following lines to: /etc/apt/sources.list Also ensure that you include the 'contrib' on 'non-free' sections of the main repository (for Open Motif needed by EDM)

deb http://epics.nsls2.bnl.gov/debian/ wheezy main contrib
deb-src http://epics.nsls2.bnl.gov/debian/ wheezy main contrib

(Remember the space between debian/ and wheezy)

4. Fetch the list of packages.

apt-get update

5. Install packages.

apt-get install epics-dev epics-catools

Локализация трафика внутри группы машин

1. Уставновить переменные окружения

EPICS_CA_AUTO_ADDR_LIST=NO                                                                                                                                                                                                             
#                   pult1         pult3         pult5          pult6          spot           spin           cont           fs             k500            hare/Oidin      localhost                                                    
EPICS_CA_ADDR_LIST="192.168.176.8 192.168.176.9 192.168.176.14 192.168.176.10 192.168.176.13 192.168.176.61 192.168.176.11 192.168.176.77 192.168.164.229 192.168.163.195 127.255.255.255"

Для этого создан файл /usr/local/etc/profile.d/epics.sh, который находится на NFS и на него сделана символическая ссылка в /etc/profile.d на каждой машине.

2. Далее необходимо настроить iptables так, чтобы все входящие CA UDP пакеты на данном интерфейсе становились броадкастными и их могли получать все IOC.

#!/bin/sh -e
# Called when an interface goes up / down

# Author: Ralph Lange <Ralph.Lange@gmx.de>

# Make any incoming Channel Access name resolution queries go to the broadcast address
# (to hit all IOCs on this host)

# Change this if you run CA on a non-standard port
PORT=5064 

IFACE=$1
MODE=$2

[ "$IFACE" != "lo" ] || exit 0

line=`/sbin/ifconfig $IFACE | grep "inet "`

# Fedora ifconfig output
addr=`echo $line | sed -e 's/.*inet \([0-9.]*\).*/\1/'`
bcast=`echo $line | sed -e 's/.*broadcast \([0-9.]*\).*/\1/'`

if [ -z "$addr" -o -z "$bcast" ]
then
    # RHEL ifconfig output
    addr=`echo $line | sed -e 's/.*inet addr:\([0-9.]*\).*/\1/'`
    bcast=`echo $line | sed -e 's/.*Bcast:\([0-9.]*\).*/\1/'`
fi

[ -z "$addr" -o -z "$bcast" ] && return 1

if [ "$MODE" = "up" ]
then
    /sbin/iptables -t nat -A PREROUTING -d $addr -p udp --dport $PORT -j DNAT --to-destination $bcast
elif [ "$MODE" = "down" ]
then
    /sbin/iptables -t nat -D PREROUTING -d $addr -p udp --dport $PORT -j DNAT --to-destination $bcast
fi

exit 0

Источник

На данный момент (--Cheblakov 21:47, 17 May 2017 (+07)) созданы два скрипта /usr/local/etc/sysconfig/network-scripts/if[down|up]-local, которые позволяют настроить iptables в ручном режиме. Мне не удалось сходу заставить эти скрипты исполняться при старте и стопе интерфейса. Для того, чтобы эта настройка была перманентной, надо в /etc/sysconfig/iptables-config включить опции IPTABLES_SAVE_ON_STOP и IPTABLES_SAVE_ON_RESTART

Установка на Centos 7.2

  1. sudo yum install gcc gcc-c++ readline-devel
  2. Скачиваем EPICS
  3. Распаковываем
  4. Читаем документацию
  5. make

Links

Personal tools