Skip to content

v1.2.0

Compare
Choose a tag to compare
@josephnobes-stfc josephnobes-stfc released this 19 Apr 15:59
· 23 commits to master since this release
v1.2.0
535b8ef

Init Script Overhaul

Init scripts have been overhauled for a more robust, standardised boot process. This has had a focus on defining predictable behaviour for every detector system and removing the requirement for non-standard boot scripts placed in SD cards varying by system causing confusion. Everything is now central. A particular focus has been placed on ensuring that a machine set up for interfacing with LOKI-based control systems does not require any additional configuration when switching between LOKI control boards, detectors, or even detector types.

  • Persistent files and directories have been moved from flash to eMMC. This is because the SoM is now considered an interchangeable part, and therefore all storage of detector-specifics are stored on the LOKI control PCB itself.
  • Dedicated eMMC bootstrapping script will automatically format and partition the eMMC on first boot, making the first bring-up of a new LOKI board no different to any other boot.
    • This script also bind mounts persistent network interface settings from an eMMC. See networking below.
  • Dedicated system ID recovery script will recover a System ID from the eMMC. This can be programmed manually with the use of a new helper function (see below), but will default to the already unique serial number of the eMMC module.
  • Default configuration directory for odin-control is now in eMMC
  • Dedicated host mounting script will search for a controlling host PC and mount directories from it
    • The host PC IP and export location can be overridden with a file in eMMC
    • The export directory will automatically be separated by application (detector type) name
    • Exact structure, and what is or isn't included is the choice of the host; they create a layout.conf file to specify what is present, and the LOKI system will interpret it
      • If there is no file yet present, an example will be dropped in
    • It is possible to either share configuration with all detectors of the same type, or have separated directories by System ID
      • This can be specified on a per-directory basis
      • For example, one could provide sequences for every HEXITEC-MHz system from a common directory, but have different detectors have different SPI data export directories.
    • The host machine doesn't have to provide anything at all; no export directory will not prevent boot, and will still allow interfacing with the web UI

ECDSA SSH Host Key Support:

  • Dropbear now generates an ECDSA host key alongside the RSA one, which prevents issues connecting from systems refusing to use old ciphers.

Helper Aliases / Functions:

  • Several helper functions have been added to the environment (all starting with loki_) to make common operations easier
    • loki_info prints out some basic information about the application, module, versions
    • loki_set_system_id will set the System ID stored in the eMMC
    • loki_system_id will return the current System ID
    • loki_update_image_flash will program a specified image.ub file into the SoM flash (not typical)
    • loki_update_image_emmc will program a specified image.ub file into the eMMC (reccomended)
    • loki_remount_host will remove and re-mount the control host directories
    • loki_set_static_ip a quick way of writing a config to eMMC that will be picked up by the networking service to add a static address
      • This uses an alias, therefore not preventing DHCP from operating at the same time; good as a fallback
      • This would mean the control host could be a machine without a DHCP server
    • loki_restart_app will restart the odin-control instance
    • loki_stop_app will stop the odin-control instance

Networking Upgrades:

  • DHCP by default, support for static addresses (or anything that could be specified in an interfaces file). See helpers.

What's Changed

Full Changelog: v1.1.1...v1.2.0