Version 1A05

This commit is contained in:
cvs
2000-11-09 09:18:24 +00:00
parent 31a4096b64
commit 9b326321a6

View File

@ -35,17 +35,14 @@
%% 18-Jun-1999 DM. Bring up to date.
%% 18-Nov-1999 DM. Bring up to date.
%%====================================================================
%% To process this file on PSICL0:
%% To process this file under Digital Unix
%%
%% $ import tex
%% $ set default usr_scroot:[maden]
%% $ copy lnsa09::tas_src:[psi.notes]hist_mem_notes.tex []
%% $ copy lnsa09::tas_src:[psi.notes]psi_logo.ps []
%% $ copy lnsa09::tas_src:[psi.notes]sinq_logo.ps []
%% $ latex hist_mem_notes
%% $ dvips/printer=lps20 hist_mem_notes
%% $ print/noti/noflag/par=(side=two,page_orientation=portrait) -
%% /que=whga_u119_ps1 hist_mem_notes.ps
%% rcp maden@lnsa04:sinqhm/hist_mem_notes.tex .
%% rcp maden@lnsa04:sinqhm/psi_logo.ps .
%% rcp maden@lnsa04:sinqhm/sinq_logo.ps .
%% latex hist_mem_notes
%% dvips -o hist_mem_notes.ps hist_mem_notes
%% vpp -device=ps800 -form=duplex hist_mem_notes.ps
%%====================================================================
%%
\addtolength{\textheight}{40mm}
@ -199,7 +196,7 @@
P. Rasmussen}}}
\put( 25,175){\makebox(0,0)[l]{Software Support Notes for the
SINQ Histogram Memory, SinqHM}}
\put(170,152){\makebox(0,0){??}}
\put(170,152){\makebox(0,0){25}}
\put( 25,135){\shortstack[l]{%
This note provides software support information \\
for the SINQ histogramming memories}}
@ -560,6 +557,8 @@
%
\subsection{The {\em /etc/hosts\/} File}
% ========================================
%
\label{etc-hosts}
%
All target hosts must be entered into the file: \\[1.0ex]
%
@ -607,8 +606,8 @@
\hspace*{15mm}lnse06~~~~~~sinqhm~~~/\\
\hspace*{15mm}lnse06.vme~~sinqhm~~/}
%
\subsection{Special Considerations for FOCUS}
% =============================================
\subsection{Special Considerations for FOCUS}
% =============================================
%
\label{FOCUS-setup}
The FOCUS detector consists of 383 detectors connected to 3 histogram
@ -645,26 +644,124 @@
\end{verbatim}
It is necessary to declare that {\em lnse04} is the router for {\em
lnse05.vme} and {\em lnse06.vme} on both the VxWorks boot server, {\em
pss123}, and of the FOCUS host computer, {\em lnsa12}. This requires {\em
root} privilege.
\subsubsection{Setup for FOCUS on {\em pss123}}
\subsubsection{Setup for FOCUS on {\em lnsa12}}
The commands are:\\[1.0ex]
%
\begin{tabular}{rl}
On pss123: & \texttt{route add net 192.168.11.0 129.129.62.104 1}\\[0.5ex]
On lnsa12: & \texttt{route add -net 192.168.11.0 129.129.62.104}
\end{tabular}
Routing Table:
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
127.0.0.1 127.0.0.1 UH 0 512 lo0
192.168.11.0 129.129.62.104 UG 0 84
pss123}, and on the FOCUS host computer, {\em lnsa12}. This requires {\em
root} privilege. The details are described in the following two
sub-sections.
/etc/rc2.d/S69inet
/etc/rc2.d/S69z-inet-D.Maden
\subsubsection{Setup for FOCUS on {\em pss123}}
% ===============================================
%
One should first check that the Internet addresses for the 3 histogram
memory modules are defined in the {\em /etc/hosts} file,
as shown in Sect.~\ref{etc-hosts}. The command:\\[1.0ex]
%
\hspace*{15mm}\texttt{route~~add~~net~~192.168.11.0~~129.129.62.104~~1}
\\[1.0ex]
%
will then set up the necessary routing. In order to set the
routing automatically whenever the computer is rebooted, it is
necessary to add a startup file to the Unix boot
procedure. According to the documentation, this is supposed to
be possible via the {\em /etc/gateways} file. Unfortunately, the
author was unable to get this to work and therefore the
following, somewhat more complicated, method was necessary.
During the boot procedure, Unix proceeds through several phases
and, in each phase, a series of scripts is executed. The routing
information must be added in Phase~2, after the {\em inet}
subsystem has been started. The scripts which are executed in
Phase~2 have names of the form:\\[1.0ex]
%
\hspace*{15mm}\texttt{/etc/rc2.d/Snn*}\\[1.0ex]
%
where {\em nn} is a number in the range 01 to 99. The scripts
are executed in numerical order. On the current {\em pss123}
system, the {\em inet} subsystem is started up in script {\em
S69inet}. The file:\\[1.0ex]
%
\hspace*{15mm}\texttt{/etc/rc2.d/S69z-inet-D.Maden}\\[1.0ex]
%
has therefore been created containing the command:\\[1.0ex]
%
\hspace*{15mm}\texttt{/usr/sbin/route add net 192.168.11.0
129.129.62.104 1}\\[1.0ex]
%
Because the file name is alphabetically after {\em S69inet},
this script is executed after the {\em inet} subsystem has been
started, as required.
In order to check that the route has been defined correctly, one
may issue the command:\\[1.0ex]
%
\hspace*{15mm}\texttt{netstat -r}\\[1.0ex]
%
One should obtain output of the form:
\begin{verbatim}
Routing Table:
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ------ ---------
...
192.168.11.0 lnse04 UG 0 84
...
\end{verbatim}
%
\subsubsection{Setup for FOCUS on {\em lnsa12}}
% ===============================================
%
One should first check that the Internet addresses for the 3 histogram
memory modules are defined in the {\em /etc/hosts} file,
as shown in Sect.~\ref{etc-hosts}. The command:\\[1.0ex]
%
\hspace*{15mm}\texttt{route~~add~~-net~~192.168.11.0~~129.129.62.104}
\\[1.0ex]
%
will then set up the necessary routing. In order to set the
routing automatically whenever the computer is rebooted, it is
necessary to add a startup file to the Unix boot
procedure. According to the documentation, this is supposed to
be possible via the {\em /etc/gateways} file. Unfortunately, the
author was unable to get this to work and therefore the
following, somewhat more complicated, method was necessary.
During the boot procedure, Unix proceeds through several phases
and, in each phase, a series of scripts is executed. The routing
information must be added in Phase~3, after the {\em inet}
subsystem has been started. The scripts which are executed in
Phase~3 have names of the form:\\[1.0ex]
%
\hspace*{15mm}\texttt{/sbin/rc3.d/Snn*}\\[1.0ex]
%
where {\em nn} is a number in the range 01 to 99. The scripts
are executed in numerical order. On the current {\em lnsa12}
system, the {\em inet} subsystem is started up in script {\em
S55inetd}. The file:\\[1.0ex]
%
\hspace*{15mm}\texttt{/sbin/rc3.d/S55z-inetd-D.Maden}\\[1.0ex]
%
has therefore been added to this directory containing the
command:\\[1.0ex]
%
\hspace*{15mm}\texttt{/sbin/route add -net 192.168.11.0 129.129.62.104
}\\[1.0ex]
%
Because the file name is alphabetically after {\em S55inetd},
this script is executed after the {\em inet} subsystem has been
started, as required.
In order to check that the route has been defined correctly, one
may issue the command:\\[1.0ex]
%
\hspace*{15mm}\texttt{netstat -r}\\[1.0ex]
%
One should obtain output of the form:
\begin{verbatim}
Routing tables
Destination Gateway Flags Refs Use Interface
Netmasks:
...
192.168.11 lnse04 UGS 0 347 tu0
...
\end{verbatim}
%
\section{SinqHM Software}
% =========================
@ -672,13 +769,14 @@ Routing Table:
\label{SinqHM-Soft}
%
The master copy of the SinqHM software resides on the computer
{\em lnsa09.psi.ch\/} in a CMS\footnote{{\em CMS\/} = Code Management
System. It is the VMS equivalent of RCS under Unix.} library. The
CMS library is \verb#TASMAD_DISK:[CMSLIB]# and the elements of the library
which are relevant for SinqHM are in the CMS group, \verb#SINQHM#.
A working copy of these elements is kept in directory
\verb#TAS_SRC:[SINQHM]#.
{\em lnsa15.psi.ch\/} as module {\em sinqhm} of a CVS\footnote{{\em
CVS\/} is a code management
system.} repository. A working copy of the current SinqHM software can
be obtained by logging in to the LNS CVS repository
(See~\cite{LNS-CVS}) and issuing the command:\\[1.0ex]
%
\hspace*{15mm}\texttt{cvs export -D today sinqhm}\\[1.0ex]
%
In order to compile and link SinqHM, it is necessary to use a computer
on which the VxWorks cross-development software has been installed.
This is {\em pss123.psi.ch\/} and the user account is {\em sinqhm},
@ -687,7 +785,7 @@ Routing Table:
\hspace*{15mm} /home/pss123/aco/sinqhm \\[1.0ex]
%
The build procedure involves the copying of the
SinqHM source files from {\em lnsa09\/} to {\em pss123}, compiling and
SinqHM source files from working copy to {\em pss123}, compiling and
linking them and then merging the resultant object files into a VxWorks
system image.
@ -697,8 +795,10 @@ Routing Table:
\item the SinqHM histogram memory server, {\em SinqHM{\usc}srv\/};
\item the SinqHM auto-configure utility, {\em
SinqHM{\usc}bootParamsConfig\/};
\item a fibre-optic test generator server, {\em lwl{\usc}server\/} and
\item a boot-line configuration server, {\em SinqHM{\usc}bootUtil}.
\item a fibre-optic test generator server, {\em lwl{\usc}server\/};
\item a boot-line configuration server, {\em
SinqHM{\usc}bootUtil} and
\item the SinqHM server-server for FOCUS, {\em FOCUS{\usc}srv}.
\end{itemize}
These are described in the following sub-sections.
%
@ -714,10 +814,12 @@ Routing Table:
\\[1.0ex]
%
where \texttt{$<$instr$>$} is either \texttt{"DMC"}, \texttt{"SANS"},
\texttt{"FOCUS"}, \texttt{"HRPT"} or
\texttt{"Dflt"}\footnote{\texttt{"Dflt"}
\texttt{"FOCUS"}, \texttt{"HRPT"}, \texttt{"TRICS"},
\texttt{"POLDI"}, \texttt{"AMOR"} or
\texttt{"Devel"}\footnote{\texttt{"Devel"}
is a directory where test versions of SinqHM may be built.}. These
are VxWorks system images into which the four SinqHM utility programs
are VxWorks system images into which the four or five
SinqHM utility programs
have been loaded and code has been added to the VxWorks startup so that
{\em SinqHM{\usc}bootParamsConfig\/} is started automatically once
the system has been booted. Copies of the source code used to build
@ -754,22 +856,24 @@ Routing Table:
have the same \mbox{VxWorks} options included, viz:
\begin{center}\begin{tabular}%
{@{}l@{\hspace{1mm}}l@{\hspace{1mm}}l@{\hspace{1mm}}l@{}}
BOOTP & NETWORK & SEM{\usc}MUTEX & WDB{\usc}CTXT \\
CONSTANT{\usc}RDY{\usc}Q & NET{\usc}INIT & SIGNALS & WDB{\usc}DIRECT{\usc}CALL \\
BOOTP & NETWORK & SIGNALS & WDB{\usc}CTXT \\
CONSTANT{\usc}RDY{\usc}Q & NET{\usc}INIT & SM{\usc}NET & WDB{\usc}DIRECT{\usc}CALL \\
ENV{\usc}VARS & NET{\usc}SHOW & STDIO & WDB{\usc}EVENTS \\
EXC{\usc}HANDLING & NFS & TASK{\usc}HOOKS & WDB{\usc}EXC{\usc}NOTIFY \\
EXC{\usc}TASK & PIPES & TASK{\usc}VARS & WDB{\usc}EXIT{\usc}NOTIFY \\
FLOATING{\usc}POINT & POSIX{\usc}SIGNALS & TFTP{\usc}CLIENT & WDB{\usc}FUNC{\usc}CALL \\
FORMATTED{\usc}IO & POSIX{\usc}TIMERS & TIMEX & WDB{\usc}GOPHER \\
FTP{\usc}SERVER & PROXY{\usc}CLIENT & TTY{\usc}DEV & WDB{\usc}MEM \\
IO{\usc}SYSTEM & RAMDRV & WATCHDOGS & WDB{\usc}REG \\
LOGGING & SELECT & WDB & WDB{\usc}TTY{\usc}TEST \\
MEM{\usc}MGR{\usc}FULL & SEM{\usc}BINARY & WDB{\usc}BANNER & WDB{\usc}VIO \\
MSG{\usc}Q & SEM{\usc}COUNTING & WDB{\usc}BP \\
EXC{\usc}HANDLING & PIPES & TASK{\usc}HOOKS & WDB{\usc}EXC{\usc}NOTIFY \\
EXC{\usc}TASK & POSIX{\usc}SIGNALS & TASK{\usc}VARS & WDB{\usc}EXIT{\usc}NOTIFY \\
FLOATING{\usc}POINT & POSIX{\usc}TIMERS & TFTP{\usc}CLIENT & WDB{\usc}FUNC{\usc}CALL \\
FORMATTED{\usc}IO & PROXY{\usc}CLIENT & TIMEX & WDB{\usc}GOPHER \\
FTP{\usc}SERVER & RAMDRV & TTY{\usc}DEV & WDB{\usc}MEM \\
IO{\usc}SYSTEM & SELECT & WATCHDOGS & WDB{\usc}REG \\
LOGGING & SEM{\usc}BINARY & WDB & WDB{\usc}TTY{\usc}TEST \\
MEM{\usc}MGR{\usc}FULL & SEM{\usc}COUNTING & WDB{\usc}BANNER & WDB{\usc}VIO \\
MSG{\usc}Q & SEM{\usc}MUTEX & WDB{\usc}BP \\
\end{tabular}\end{center}
%
In addition, the \texttt{SinqHM{\usc}spawn{\usc}$<$instr$>$}
configurations have the 4 SinqHM
configurations have the first four\footnote{The {\em
FOCUS{\usc}srv} module has not been included in the VxWorks
systems by means of WindCFG.} SinqHM
modules included and the {\em edit\/} button is used to define symbol
\texttt{SINQHM{\usc}SPAWN} in the {\em config.h\/} file. This causes the
auto-configure module, {\em SinqHM{\usc}bootParamsConfig}, to get
@ -787,11 +891,10 @@ Routing Table:
\begin{verbatim}
/*
** This file should be copied to the VxWorks directory tree, e.g:
** pss123> set src = "lnsa09:tas_src:[sinqhm]"
** pss123> if ("$USER" != "maden") set src = "lnsg@$src"
** pss123> set src = "lnslib@lnsa15:sinqhm/"
** pss123> rcp -p "${src}usrConfig.c" \
** $HOME/wind/ppc/target/config/all/usrConfig.c
** pss123> rcp -p "${src}bld." $HOME/wind/SinqHM/bld
** pss123> rcp -p "${src}bld" $HOME/wind/SinqHM/bld
**
** The system images are:
**
@ -892,7 +995,15 @@ Routing Table:
\hspace*{15mm}\texttt{\$HOME/wind/SinqHM/bld $<$instr$>$
SinqHM{\usc}srv} \\[1.0ex]
%
which generates the object module \\[1.0ex]
which generates the object module\footnote{Note that there are 2
directories in each instrument's base directory called
\texttt{OLD} and \texttt{NEW}. It is assumed that the released
version of SinqHM for an instrument resides in its base
directory. The {\em bld} script uses the \texttt{NEW} directory
as its working directory. When the new version is to be
released, the files in the base directory should be moved to
the \texttt{OLD} directory and then the files from \texttt{NEW}
can then be copied to the base directory.}\\[1.0ex]
%
\hspace*{15mm}\texttt{\$HOME/wind/SinqHM/$<$instr$>$%
/NEW/SinqHM{\usc}srv.o} \\[1.0ex]
@ -965,7 +1076,8 @@ Routing Table:
via the VxWorks {\em taskSpawn\/} function\footnote{This normally happens
via code which has been added to the {\em usrConfig.c\/} file, but the
program may also be
started manually via the WindSh utility for debugging purposes.}, up to
started manually via the Tornado WindSh utility for debugging
purposes.}, up to
10 arguments, \verb#<arg1># \ldots
\verb#<arg10>#, may be specified. Only \verb#<arg1># is used by
{\em SinqHM{\usc}bootParamsConfig\/} as follows: \\[1.0ex]
@ -1099,7 +1211,7 @@ Routing Table:
\item From a terminal with X-windows support, login to {\em pss123\/} as
user {\em sinqhm\/} and change the default directory: \\[1.0ex]
%
\verb# cd $HOME/wind/SinqHM/DMC#
\verb# cd $HOME/wind/SinqHM/DMC/NEW#
%
\item Start the Tornado launcher\footnote{If one is logged-in to
{\em pss123\/} from a Unix workstation, it may be necessary to issue
@ -1136,7 +1248,7 @@ Routing Table:
%
Note that these commands assume that the default directory has been set
correctly in Step~2 above. Otherwise, the object files must be prefixed
with the full directory path.
with the appropriate directory path.
%
\item If it is desired to debug one of the SinqHM modules, it is now
possible to start the module in the suspended state via the WindSh
@ -1175,15 +1287,15 @@ Routing Table:
can be created using the {\em bld\/} script. For help on using the script,
simply enter the command \\[1.0ex]
%
\hspace*{15mm}\texttt{\$HOME/wind/SinqHM/bld} \\[1.0ex]
\hspace*{15mm}\texttt{\$HOME/wind/SinqHM/bld h} \\[1.0ex]
%
without arguments. A simplified version of the script is reproduced
A simplified version of the script is reproduced
below. The script is actually more complicated than illustrated on
account of checking for the correctness of the arguments.
\begin{verbatim}
#! /bin/csh
#-------------------------------------------------
# pss123:~sinqhm/wind/SinqHM/bld V01E
# pss123:~sinqhm/wind/SinqHM/bld V01G
#
# Script to compile and link the SinqHM programs for vxWorks
#
@ -1192,7 +1304,7 @@ Routing Table:
cd $proc:h # Move to bld's directory!
if ("$1" == "dmc") then
cd DMC/NEW <== See Note 1
set defn = '-DINST="DMC"' <== See Note 2
set defn = '-DINST="DMC" -DDMC' <== See Note 2
else if ("$1" == "sans") then
\end{verbatim}
@ -1200,8 +1312,7 @@ Routing Table:
\begin{verbatim}
endif
#
set src = "lnsa09:tas_src:[sinqhm]"
if ("$USER" != "maden") set src = "lnsg@$src"
set src = "maden@lnsa04:sinqhm/"
#
printf "\nWorking directory is %s\n" "$cwd"
printf 'Source is "%s"\n\n' "$src"
@ -1302,7 +1413,7 @@ Routing Table:
\begin{enumerate}
\item {\em bld\/} changes to the instrument's \texttt{NEW} directory
for building instrument dependent modules.
\item {\em defn\/} supplies a compile time definition of \texttt{INST}
\item {\em defn\/} supplies compile time definitions
to enable the selection of instrument specific code by
means of conditional compilation macros.
\end{enumerate}
@ -1331,16 +1442,18 @@ Routing Table:
** There may be no white space characters in the string. Tokens
** in the string may be specified in upper or lower case.
**
** <action> may be "sp" for "Spawn a task"
** "sps" for "Spawn and suspend a task"
** "cfg" for "Configure SinqHM_srv"
** <action> may be "sp" for "Spawn a task"
** "sps" for "Spawn and suspend a task"
** "cfg" for "Configure SinqHM_srv"
** "wt" for "Wait"
**----------------------------------------------------
** If <action> = "sp" or "sps", then
**
** <arg0> = name of task to spawn. This may be:
** "SinqHM" for SinqHM_srv or
** "lwl" for lwl_server.
** "bootUtil" for SinqHM_bootUtil.
** "lwl" for lwl_server or
** "bootUtil" for SinqHM_bootUtil or
** "focus" for FOCUS_srv
** <arg1>,..<arg9> = integer args for the spawn, as follows:
**
** If <arg0> = "SinqHM"
@ -1359,14 +1472,23 @@ Routing Table:
** If <arg0> = "bootUtil"
** <arg1> = TCP/IP port number for SinqHM_bootUtil (dflt=2300).
**
** If <arg0> = "focus"
** <arg1> = name of hostM (Mittel-bank) (dflt=localhost).
** <arg2> = #-counters in Mittel-bank (dflt=151).\end{verbatim}
\newpage%
\begin{verbatim}
** <arg3> = name of hostO (Ober-bank) (dflt=lnse05.vme).
** <arg4> = #-counters in Ober-bank (dflt=117).
** <arg5> = name of hostU (Unter-bank) (dflt=lnse06.vme).
** <arg6> = #-counters in Unter-bank (dflt=116).
** <arg7> = Client-side TCP/IP port number (dflt=2500).
** <arg8> = Server-side TCP/IP port number (dflt=2400).
**
** In addition, <arg10> will be set to 0 for "sp" and 1 for
** "sps". SinqHM_srv, lwl_server and SinqHM_bootUtil will suspend
** themselves immediately if they find <arg10> is non-zero. This
** cooperation on the part of the spawned task is intended as a
** debugging aid.
**------------------------------------- Continued on next page\end{verbatim}%
\newpage%
\begin{verbatim}
**
** "SinqHM" and "SinqHM_bootUtil" will be spawned with priority
** 100, "lwl" with priority 250.
@ -1380,6 +1502,8 @@ Routing Table:
** If <action> = "cfg":
** <arg0> = HM_DIG, HM_PSD, TOF, HRPT or TRANS to specify the
** hist memory mode.
** <arg8> = sub-mode bits to "or" with <arg0> (dflt=0)
** <arg9> = TCP/IP port # of server (dflt=2400)
** And for <arg0> = HM_DIG or HRPT,
** <arg1> = # bins (no dflt)
** <arg2> = # histograms (dflt=1)
@ -1397,14 +1521,21 @@ Routing Table:
**
** Note: The built-in "cfg" program can only define bins of equal
** width. For non-equal width bins, one must send the
** SQHM_CONFIG message to SinqHM_srv from a host computer.
** SQHM_CONFIG message to SinqHM_srv from a host computer.\end{verbatim}
\newpage%
\begin{verbatim}
**
** And for <arg0> = TRANS,
** <arg1> = #-buffers (dflt = 8)
** <arg2> = buff-size (dflt = 4096)
**
** And for <arg0> = HM_PSD, the arguments still need defining.
**----------------------------------------------------
** If <action> = "wt", then
**
** <arg0> = number of seconds to wait (may be useful for
** FOCUS startup).
**----------------------------------------------------
** For example:
**
** other = "sp=bootUtil/sp=SinqHM/cfg=HM_DIG,400"
@ -1412,6 +1543,7 @@ Routing Table:
** will cause bootUtil and SinqHM_srv to be automatically started
** after the system has been booted and will configure it in HM_DIG
** mode with a single histogram of 400 bins (as used for DMC).
**----------------------------------------------------
*/
\end{verbatim}
%
@ -1432,5 +1564,9 @@ Routing Table:
{\em Tornade User's Guide (Unix Version)} \\
DOC-11033-ND-01
\bibitem{LNS-CVS} Mark K\"{o}nnecke, February 2000 \\
{\em The LNS CVS Repository} \\
Internal Note
\end{thebibliography}
\end{document}