Add Upswift to Yocto image

These guidelines explain how to insert Upswift agent into a Yocto image build, in order to deploy Upswift on a big scale of devices at once.

Yocto image requirements:

  1. Systemd or init.d + Cron. *It is recommended to use Systemd DISTRO_FEATURES_append = " systemd" VIRTUAL-RUNTIME_init_manager = "systemd" DISTRO_FEATURES_BACKFILL_CONSIDERED = "sysvinit" VIRTUAL-RUNTIME_initscripts = ""

  2. OpenSSH: CORE_IMAGE_EXTRA_INSTALL_append = " openssh"

How to register a device by adding Upswift agent software to the Yocto file system image build

Upswift agent automatically recognizes new devices based on the "device_token" (generated by the Upswift ser) of the device. The next method can help you install Upswift on a fleet of devices easily without the need to register each device separately.

This guide is specifically for building Yocto image with Upswift agent inside:

  1. Download Upswift software zip file:

2. Extract the zip file.

3. Open the file upswift -> service -> settings.json

4. Fill the values of "user_token" and "project_name" (can be found by clicking on 'Register Device' inside Upswift platform). Colors: user_token - orange, project_name - green.

5. Save the file. Here is an example of a ready settings.json file:

{"user_token":"4aAT_NPRQsKLam2ryjzNRV_XKSK1nkkcVQ","project_name":"Demo","device_name":"","device_group":"","software_version":"","device_token":""}

*By default devices will register with automatic name - "New Device" to group - "Production".

6. Copy the next files and directories to your Yocto file system:

  1. upswift directory to /etc/

  2. upswift.service to /etc/systemd/system/

  3. upswift.service to /etc/systemd/system/multi-user.target.wants/

After copying the files, the next paths need to exist: directory -> /etc/upswift

file -> /etc/systemd/system/upswift.service

file -> /etc/systemd/system/multi-user.target.wants/upswift.service

* In case Systemd service manager doesn't exist, please follow the next guide to install Upswift on init.d or contact us at [email protected] to receive guidelines accordingly.

Set custom device name and group automatically at scale

As noted above, new devices will automatically be registered with "New Device" as the device name and into the "Production" group. After adding the Upswift agent to the file-system image, you might want to add a unique 'Device name' and 'Group' to each of the devices that register themselves. You can choose any of these 2 options to do so.

Option A

The device name and group can be changed using the Upswift REST API - change devices details.

By using the Upswift REST API, the device can run a script to change the name and group after device registration.

Option B

In order to set a custom name and group for each deployed device you will need to add a script which will run on the device boot. The script should pull a unique identifier for this device (For example - mac address or serial number). To insert the value as the device name and update the Upswift agent settings JSON file, found at/etc/upswift/service/settings.json and insert the value under "device_name" key. You can also edit the "group" key to match the group you want the device to move into.