Select Git revision
installation.rst~Stashed changes
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
installation.rst~Stashed changes 2.23 KiB
Installation
==================
You start with checking out the source code, f.e. the master branch, as well as the git submodules we use::
git clone https://git.astron.nl/lofar2.0/tango.git
cd tango
git submodule init
git submodule update
Next, we bootstrap the system. This will build our docker images, start key ones, and load the base configuration. This may take a while::
cd docker-compose
make bootstrap
If you lack access to LOFAR station hardware, load additional configurations to use the simulators instead::
for sim in ../CDB/\*-sim-config.json; do
../sbin/update_ConfigDb.sh ../CDB${sim}-config.json
done
Now we are ready to start the other containers::
make start
and make sure they are all up and running::
make status
You should see the following state:
- Containers `astor`, `hdbpp-viewer`, `jive`, `log-viewer` and `pogo` will have State `Exit 1`. These are containers that are interactive X11 tools, and not needed for now,
- Other containers have either State `Up` or `Exit 0`.
If not, you can inspect why with `docker logs <container>`. Note that the containers will automatically be restarted on failure, and also if you reboot. Stop them explicitly to bring them down (`make stop <container>`).
Initialisation
----------------
The following procedure describes how to initialise the system, which is required after installation and after a system reboot.
The docker containers will automatically restart after a system reboot. But the Linux kernel will lose its required custom settings required by our ELK stack. To reconfigure the kernel parameters, run::
make start elk-configure-host
make restart elk
We can now initialise the station configuration, that is, start all the software devices to control the station hardware, and to initialise the hardware with the configured default settings. Go to http://localhost:8888, start a new *Station Control* notebook, and initiate the software boot sequence::
# reset our boot device
boot.off()
assert boot.state() == DevState.OFF
boot.initialise()
assert boot.state() == DevState.STANDBY
boot.on()
assert boot.state() == DevState.ON
# start and initialise the other devices
boot.initialise_station()
# wait for the devices to be initialised