Generalized Power Interface

For the execution of a boot item, SoTest needs to be able to power the test hardware on and off on demand. Sometimes specialized tools such as AMT or IPMI are not available. In that case, remotely actuating the power button provided by the hardware is the only alternative.

The Generalized Power Interface is an extension board and a set of software for a Raspberry Pi that makes it possible to power control computers remotely.

Details on how to obtain and set up the GPI itself can be found in the GPI documentation.

This document describes the usage of the GPI in conjunction with SoTest.

Configuration in controller.yaml

In order to use the GPI for a certain test computer, it needs to be configured in the appropriate machines entry in the SoTest Controller configuration.

An example configuration can be found in the documentation on Power Configuration and further general information on SoTest configuration can be found here.

The Controller configuration uses the following parameters to configure the GPI for a machine:

  • power_interface: To use the GPI for a test machine, the power_interface needs to be set to raspi.
  • raspi_ip: IP address assigned to the Raspberry Pi that runs the GPI for this machine.
  • raspi_id: Machine ID known by the Raspberry Pi server.
  • raspi_switch_on_duration_ms: Optional duration (in ms) to actuate the power button in order to turn the machine on. Default is 100.
  • raspi_switch_off_duration_ms: Optional duration (in ms) to actuate the power button in order to turn the machine off. Default is 6000.
  • raspi_cmd_delay_ms: Optional duration (in ms) to wait after any power command. Default is 1000.

The switch on/off durations are necessary for machines that need longer button presses to register the power events and can also be used to speed up Test Runs on machines that use shorter durations.