The Hermes core can be monitored, controlled and configured using the hermesbutler.py
script.
This script is part of the hermesmodules
DUNE-DAQ package. It requires a DUNE-DAQ release or area.
The other ingredients to set up the Hermes core to transmit data to a network endpoint are:
- The hermes ipbus connection details
- the hermes link mac and ip addresses (and port)
- the receiver link mac and ip addresses (and port)
- A handful of parameters.
In order to simplify the handling of these parametrs, all the connection details are specified in configuration files and only the connection names are exposed to the hermesbutler
command line.
- Hermes IPbus control endpoint details are specified in the
${HERMESMODULES_SHARE}/config/c.xml
connection file. Information about IPBus connection files are available on the IPbus User Guide. - The transmitter endpoints details are defined in the
${HERMESMODULES_SHARE}/config/tx_endpoints.json
file. - The receiver endpoints details are defined in the
${HERMESMODULES_SHARE}/config/tx_endpoints.json
file.
The content of these configuration files can be visualized hermesbutler.py addrbook
.
Once all the information have been inserted, the sequence of commands to set-up the endpoint is:
hermesbutler.py -d <device id> enable -l <link> --dis
hermesbutler.py -d <device id> udp-config -l <link> <rx endpoint> <tx endpoint>
hermesbutler.py -d <device id> mux-config -l <link> 1 2 3
hermesbutler.py -d <device id> fakesrc-config -l <link> -n 4
hermesbutler.py -d <device id> enable -l <link> --en
hermesbutler.py -d <device id> stats -l <link>
Installing the ipbus bridge requires compiling the bridge code on the zynq PS and running the bridge from terminal or as a service. gcc
Log in onto the Zynq PS. Clone the hermesmodules
via git or by downloading a tarball.
git clone https://github.com/DUNE-DAQ/hermesmodules.git -b <tag or branch>
or
curl -o <path to tarball on GitHub>
tar xfvz <tarball>
Compile the bridge code with make
cd zynq
make
Optional: Install hermes_udp_srv
system-wide
-
On the ZCU102
sudo make install-zcu102
-
On the WIBs
sudo make install-zcu102
When installed system-wide, the hermes_udp_srv
is started automatically at boot.
If not, the service can be started from commandline
Usage: ./hermes_udp_srv [options...]
Options:
-d, --device device type (Required)
-v, --verbose verbosity level
-c, --check-replies-countCheck Replies count
-h, --help Shows this page
-
On the ZCU102
sudo /bin/hermes_udp_srv -d zcu102
-
On the WIBs
sudo /bin/hermes_udp_srv -d wib -c false