Package: FeeServer This package implements the FeeServer for Front-end electronics based on the RCU. All contributions are under the terms of the GNU General Public License as published by the Free Software Foundation. Also see files AUTHORS and THANKS. This packages is maintained by Matthias.Richter@ift.uib.no Comments, bug reports, suggestions welcome! Overview ======== This package is a compilation of the FeeServer application for ALICE Front-end electronics based on the RCU. It features the full Control Engine for the TPC detector. The package is based on the FeeServer core from the ZTT Worms (http://www.ztt.fh-worms.de), but the code has been rearranged in order to have a bit more convenient structure. DIM, FeeServer core and ControlEngine have been separated. See the AUTHORS file for legal notice on parts and contributions. Setting up a version retrieved from CVS ======================================= Skip this section if you have started from the tar ball. A version checked out from CVS requires a few steps to set up the Makefiles and to set some links which are related to the CVS structure at the IFT. Go to the directory and run ./.autotools/acsetup.sh Note: This sub-folder/script is not part of the distribution since it is not necessary for it. Then continue with the package configuration described in the 'Installation' section. Modifying a distributed package =============================== If you are going the modify a distributed package you might need to re-make the GNU build system by running autoreconf -f -i Please notify the authors about bug fixes/corrections/extensions you made if you consider them worth to be merged into the project. Then continue with the package configuration described in the 'Installation' section. Installation ============ Package build relies on the GNU triplet configure, make and make install. To build the FeeServer for your workstation it's simply. ./configure make make install # !!! read the paragraph "Default install directories" first The binary will not run on the DCS board! To build the FeeServer for the ARM Linux of the DCS board, the --host option has to be used to specify the host system. You will need a cross compiler (see below)! Add the path of the cross compiler to the PATH variable. In addition, the compiler and a few options have to specified to the configure script: CC=arm-uclibc-gcc --disable-cxx-api --disable-shared For convenience there is a script doing that for you, it also sets the prefix to /nfs_export/dcscard/$USER if the directory exists. ./configure-arm make make install # !!! read the paragraph "Default install directories" first More info on options: ./configure --help=short # gives you an overview on specific options ./configure --help # gives you the full help Default install directories: If you compile the FeeServer for the ARM Linux, it's recommended to mount an nfs directory on the DCS board (this is convenient and, more crucial, saves the flash memory on the board. The latter is important, since one has only a limited number of write cycles before the flash weakens!). If you name the directory on the build machine /nfs_export/dcscard, the files will be copied automatically to /nfs_export/dcscard/$USER. Note: you need write access to that directory. If the directory doesn't exist or if you don't have write access the default prefix is set to $HOME. The same applies if you are not cross-compiling. To override the default prefix use --prefix= Some important options: --enable-tpc # Includes the TPC specific code --enable-phos # Includes the PHOS specific code --disable-services # Disable the service publication and handling --disable-rcu # Disable the RCU features The 4 steps to a running FeeServer ================================== 1. Required environment variables: DIM_DNS_NODE - the address of the machine running the dim name server FEE_SERVER_NAME - the name of this FeeServer e.g. for c-shell do setenv DIM_DNS_NODE setenv FEE_SERVER_NAME my_server and for bash export DIM_DNS_NODE= export FEE_SERVER_NAME=my_server 2. Goto the installation directory: cd $(prefix)/bin 3. The FeeServer for a normal machine is dynamically linked to the DIM library. Add the path where libdim.so is located, $(prefix)/bin, to the LD_LIBRARY_PATH variable. This is not necessary for the ARM Linux since the FeeServer is linked statically. 4. The FeeServer is started by the startFeeServer.sh script. ./startFeeServer.sh !!! !!! Note: the script is so far not very intelligent, you have to start it from !!! the directory where the feeserver binary and the script are located !!! Sample commands =============== A number of sample commands are provided in the folder rcu-ce-cmds. This is by far not a complete list but should illustrate the use of the ControlEngine commands. The command codes are defined in feeserver/src_ce/rcu_issue.h Further information =================== A wiki with detailed information is set up at www.ift.uib.no/~kjeks/wiki section: Detector Control System (DCS) for ALICE Front-end electronics Further info on the ARM Linux, including the cross compiler (arm-uclibc 3.3.1) http://frodo.nt.fh-koeln.de/%7Etkrawuts/dcs.html Also see files README_v* in the feeserver subfolder. These are the readme's distributed with the FeeServer core software. !!! Note: the compilation instructions are obsolete !!!!