Granite Rapids-D GNSS Monitoring and Quality Metrics

The GNR-D server platform integrates a GNSS receiver and DPLL logic block which can be used to provide accurate clock signals to the integrated E825 NIC and the external E830 NICs. To support the GNR-D server platform, the integrated GNSS receiver is used as a clock source to synchronize the onboard DPLL.

To ensure that the GNSS signal is not degraded, monitoring and alarming of satellite and signal quality are required. This GNSS monitoring is configured on StarlingX using the gnss-monitor instance type in the PTP configuration.

For details about the gnss-monitor instance, see Instance Specific Considerations.

Configure a gnss-monitor Instance

Procedure

  1. Create an instance.

    ~(keystone_admin)]$ system ptp-instance-add test-monitor gnss-monitor
    
  2. Add parameters to the instance.

    ~(keystone_admin)]$ system ptp-instance-parameter-add test-monitor satellite_count=8
    ~(keystone_admin)]$ system ptp-instance-parameter-add test-monitor signal_quality_db=30
    ~(keystone_admin)]$ system ptp-instance-parameter-add test-monitor devices="/dev/ttyACM0 /dev/gnss0"
    ~(keystone_admin)]$ system ptp-instance-parameter-add test-monitor cmdline_opts="-D 7"
    
  3. Assign the instance to a host.

    ~(keystone_admin)]$ system host-ptp-instance-assign controller-0 test-monitor
    
  4. Apply the configuration.

    ~(keystone_admin)]$ system ptp-instance-apply
    

Co-existence of ts2phc and gnss-monitor

When a ts2phc instance is present, gnss-monitor transparently overrides the ts2phc.nmea_serialport parameter in the ts2phc configuration file during device monitoring. For example, /dev/ttyACM0 is replaced with /dev/ttyACM0.pty. When the device is no longer monitored, the ts2phc configuration is restored.

Set Threshold on GNSS Device

Run the following script to check the satellite count and signal-quality-db thresholds detected by a given GNSS device. This can be used to determine where to set the thresholds.

For this script to run, a gnss-monitor instance must be configured and run.

$ sudo python /usr/rootdirs/opt/collectd/extensions/python/ptp_gnss_monitor_cli.py --devices /dev/ttyACM0

Output:
Devices supplied as argument: ['/dev/ttyACM0']
/dev/ttyACM0's gps_data: GpsData(gpsd_running=1, lock_state=1, satellite_count=21,
signal_quality_db=SignalQualityDb(min=40.0, max=51.0, avg=44.571))