Installation ================== You will need the following dependencies installed: - docker - docker-compose - git - make 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 If you do have access to LOFAR station hardware, you will have to :doc:`configure_station`. 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 ``. Note that the containers will automatically be restarted on failure, and also if you reboot. Stop them explicitly to bring them down (``make stop ``). Post-boot Initialisation --------------------------- After bootstrapping, and after a reboot, the software and hardware of the station needs to be explicitly initialised. Note that the docker containers do restart automatically at system boot. The following commands start all the software devices to control the station hardware, and 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 import time while boot.initialising_station_R: print(f"Still initialising station. {boot.initialisation_progress_R}% complete. State: {boot.initialisation_status_R}") time.sleep(1) # print conclusion if boot.initialisation_progress_R == 100: print("Done initialising station.") else: print(f"Failed to initialise station: {boot.initialisation_status_R}") See :ref:`boot` for more information on the ``boot`` device. .. _elk-kernel-settings: ELK ```` The ELK stack requires some kernel settings to be tuned, before it will start. Although ``make bootstrap`` configures the kernel, these settings will not stick after a reboot. You will need to run either:: make start elk-configure-host make restart elk after reboot, or configure your system to set ``sysctl -w vm.max_map_count=262144`` (or higher) as root during boot.