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.xmlconnection 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.jsonfile. - The receiver endpoints details are defined in the
${HERMESMODULES_SHARE}/config/tx_endpoints.jsonfile.
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
makeOptional: 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