====== Installing Software for Use with RCE and HSIO-2 ====== ====== Installing Python ====== Following https://github.com/h2oai/h2o-2/wiki/installing-python-2.7-on-centos-6.3.-follow-this-sequence-exactly-for-centos-machine-only yum install -y centos-release-SCL yum install -y python27 which python Following probably unimportant yum groups mark convert yum groups mark install "Development tools" yum install zlib-devel yum install bzip2-devel yum install openssl-devel yum install ncurses-devel yum install sqlite-devel cd /opt wget --no-check-certificate https://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.xz tar xf Python-2.7.5.tar.xz cd Python-2.7.5 ./configure --prefix=/usr/local make && make altinstall End unimportant wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py sudo /usr/local/bin/python2.7 ez_setup.py sudo /usr/local/bin/easy_install-2.7 pip yum install libffi-devel sudo /usr/local/bin/easy_install-2.7 requests sudo /usr/local/bin/easy_install-2.7 psutil sudo /usr/local/bin/easy_install-2.7 paramiko ====== Server Setup ====== We will be mostly following the steps on this page - https://twiki.cern.ch/twiki/bin/view/Atlas/RCEGen3Development. First, make sure your hardware is hooked up like shown in the first pictures on this page. Become root by using the 'su' superuser command, then perform all of the following commands as root. First, we configure a server on our local computer to communicate with RCE. This server will have NFS and DCHP. Get required packages. yum install dhcp cmake pyparted lib Disable firewall and SELinux (Linux security). /sbin/chkconfig iptables off /sbin/service iptables stop vim /etc/sysconfig/selinux Set "SELINUX=permissive". Now we install the RCE SDK. sudo mkdir /opt/AtlasRceSdk cd /opt/AtlasRceSdk wget -O - http://rceprojectportal.web.cern.ch/RceProjectPortal/software/SDK/V0.11.1.tar.gz | sudo tar xvfz - Add the following command to your bash_profile file so that it runs every time you open the terminal. source /opt/AtlasRceSdk/V0.11.1/setup.sh Set up the DHCP server by editing /etc/dhcp/dhcpd.conf. Make sure it looks like the following: default-lease-time 600; max-lease-time 7200; authoritative; ddns-update-style none; subnet 192.168.3.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option ntp-servers 192.168.3.1; option routers 192.168.3.1; option broadcast-address 192.168.3.255; range 192.168.3.2 192.168.3.254; } host hsio2 { option host-name "HSIO2"; hardware ethernet 08:00:56:00:45:0a; } Start the DHCP server. /sbin/chkconfig dhcpd on /sbin/service dhcpd start #Filesystem ====== Setting Up RCE Pixel Application ====== Following the setup instructions [[https://twiki.cern.ch/twiki/bin/view/Atlas/RCEGen3PixelApplication|here]]. Be sure to extract and install everything in exactly the same directories as listed below, because some scripts use hard-coded paths! The pixel application has two parts - calibserver, which runs on the HSIO-2, and calibGui, which is run locally and used to interface with calibserver. You don't need to edit /etc/hosts if your /etc/dhcp/dhcpd.conf file is set correctly. This automatically assigns IP addresses to external devices based on their MAC addresses. You can look at the leases created by DHCP in /var/lib/dhcpd/dhcpd.leases. This will tell you the IP address of the HSIO-2 board. You should be able to log on to the board using ssh root@ If you get an error "No route to host", this means you're using the wrong IP address. Execute all the commands in this section as superuser: yum install cmake libXpm libX11 libXext libSM libICE python-devel rpm-devel mkdir -p /sw/atlas chmod a+w /sw/atlas cd /sw/atlas git clone https://:@gitlab.cern.ch:8443/rce/ayum.git cd /sw/atlas/ayum ./configure.ayum Enter the following information: AYUM package location: /sw/atlas/ayum AYUM software installation location: /sw/atlas AYUM RPM database location: [/sw/atlas/.rpmdb] AYUM cache location: [/sw/atlas/.yumcache] Keep executing commands: cd /sw/atlas/ayum/src/rpmext make clean make cd ~/ayum ./ayum install -y LCG_81b_gcc_4.9.3_x86_64_slc6 gcc_4.9.3_x86_64-slc6 LCG_81b_ROOT_6.04.12_x86_64_slc6_gcc49_opt Boost_1.59.0_python2.7_armv7l_archlinux_gcc52_opt_lcgcmt81b_armv7l_archlinux_gcc52_opt cd ~ git clone https://:@gitlab.cern.ch:8443/rce/pixelrce.git ln -s ~/pixelrce ~/daq cd ~/daq/rce source ./scripts/setup-gen3.sh git checkout -b V1.1.0 cd ~/daq/rce/build.slc6-rcf; make cd ~/daq/rce/build.arm-rcf; make cd ~/daq/rce/ rsync -e 'ssh -l root' -rlptDv /sw/atlas/sw/lcg/LCG_81b/Boost/1.59.0_python2.7/armv7l-archlinux-gcc52-opt/lib 192.168.3.3:/root/pixelrce/ rsync -rlptDv -e 'ssh -l root' build.arm-rcf/{bin,lib} 192.168.3.3:/root/pixelrce You can ssh into the HSIO-2 to run calibserver. This is not necessary unless you want to see real-time outputs from the server. ssh root@192.168.3.21 export PATH=/root/pixelrce/bin:$PATH; export LD_LIBRARY_PATH=/root/pixelrce/lib:$LD_LIBRARY_PATH calibserver In another window, run calibGui on the local computer. cd ~/daq/rce source scripts/setup-gen3.sh calibGui Use Inlink X+1, Outlink X+1, where the module is plugged into port AX. Use Rce 0.