# Introduction

Ship hardware products at the speed of software. With Memfault, you can continuously monitor devices, debug firmware issues, and deploy OTA updates to your fleet.

## Overview​

The Memfault Linux SDK consists of a combination of existing open-source software and a daemon memfaultd that orchestrates and configures it. It also implements additional features such as tracking of reboot reason tracking, and in the future reporting crashes and logs.

To provide core Memfault platform features, the Memfault Linux SDK relies on well-established, battle-tested open-source software. The daemon memfaultd implements Memfault-specific features and also acts as a configuration agent.

## Prerequisites​

Even though support for a broader diversity of setups is planned, this first versions of our SDK makes the following assumptions:

• Your project uses Yocto as a build system.
• It uses systemd as an init system.
• It uses SWUpdate for OTA (optional if you don't plan to integrate with OTA).
• It uses CollectD for metrics (optional if you don't plan to integrate with Metrics).

If your project diverges from these assumptions, please get in touch. It will likely still work without major changes.

## Getting Started​

Take a look at our getting-started guide to set up your integration.

OTA/Release Management is currently fully supported through an off-the-shelf integration with the SWUpdate agent. Read more about it in the OTA integration guide.

## Documentation and Features​

An integration example can be found under /meta-memfault-example. The central part of the SDK lives in a Yocto layer in /meta-memfault.

To provide OTA Updates, the Memfault Cloud implements an API endpoint compatible with the hawkBit DDI API. Various clients are available, but memfaultd supports SWUpdate out of the box and is able to configure it to talk to our hawkBit DDI-compatible endpoint.

### Metrics​

Use metrics and diagnostic data to measure the success of software updates (OTA) and to proactively diagnose anomalies before users even experience their effect. The SDK ships with a configurable set of plugins for collectd to obtain standard KPIs at the operating system level (e.g. available storage or RAM, CPU utilization, or network status and traffic). You can also use the SDK to collect product-specific custom metrics via statsd.

### Reboot Reason Tracking, Crash Reports and Logs​

These features are fully in the domain of memfaultd. Note that crash reports and logs are upcoming features, while reboot reason tracking is supported today.

Get started

Take a look at our getting-started guide to set up your integration.