From 9b326321a6f7d8b39dd1ff4bfcc27ae7bdad65be Mon Sep 17 00:00:00 2001 From: cvs Date: Thu, 9 Nov 2000 09:18:24 +0000 Subject: [PATCH] Version 1A05 --- sinqhm/hist_mem_notes.tex | 294 ++++++++++++++++++++++++++++---------- 1 file changed, 215 insertions(+), 79 deletions(-) diff --git a/sinqhm/hist_mem_notes.tex b/sinqhm/hist_mem_notes.tex index e9bef055..edefe142 100755 --- a/sinqhm/hist_mem_notes.tex +++ b/sinqhm/hist_mem_notes.tex @@ -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## \ldots \verb##, may be specified. Only \verb## 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. ** - ** may be "sp" for "Spawn a task" - ** "sps" for "Spawn and suspend a task" - ** "cfg" for "Configure SinqHM_srv" + ** may be "sp" for "Spawn a task" + ** "sps" for "Spawn and suspend a task" + ** "cfg" for "Configure SinqHM_srv" + ** "wt" for "Wait" **---------------------------------------------------- ** If = "sp" or "sps", then ** ** = 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 ** ,.. = integer args for the spawn, as follows: ** ** If = "SinqHM" @@ -1359,14 +1472,23 @@ Routing Table: ** If = "bootUtil" ** = TCP/IP port number for SinqHM_bootUtil (dflt=2300). ** + ** If = "focus" + ** = name of hostM (Mittel-bank) (dflt=localhost). + ** = #-counters in Mittel-bank (dflt=151).\end{verbatim} + \newpage% + \begin{verbatim} + ** = name of hostO (Ober-bank) (dflt=lnse05.vme). + ** = #-counters in Ober-bank (dflt=117). + ** = name of hostU (Unter-bank) (dflt=lnse06.vme). + ** = #-counters in Unter-bank (dflt=116). + ** = Client-side TCP/IP port number (dflt=2500). + ** = Server-side TCP/IP port number (dflt=2400). + ** ** In addition, 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 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 = "cfg": ** = HM_DIG, HM_PSD, TOF, HRPT or TRANS to specify the ** hist memory mode. + ** = sub-mode bits to "or" with (dflt=0) + ** = TCP/IP port # of server (dflt=2400) ** And for = HM_DIG or HRPT, ** = # bins (no dflt) ** = # 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 = TRANS, ** = #-buffers (dflt = 8) ** = buff-size (dflt = 4096) ** ** And for = HM_PSD, the arguments still need defining. + **---------------------------------------------------- + ** If = "wt", then ** + ** = 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}