# Register Devices
Ionoid.io dashboard offers the possibility to manage an entire fleet of devices. By just clicking on buttons from one single page, you will be able to control and remotely deploy applications to hundreds or thousands of devices.
Ionoid.io uses Linux-IoT operating systems and supports multiple flavors that run systemd, the system and service manager for Linux operating system. You can check the supported boards and operating systems.
First you have to register your device(s) on Ionoid.io. It is as simple as clicking on a button, downloading an OS image, flashing the device storage then booting the device.
There is also the possibility to configure your image by chaning the WiFi network(s) password(s), the device name, or informations about cellular network(s). Please follow with the next section that explains it in more details.
# Prepare Registering
On Ionoid.io, devices belong to projects. If you didn't yet create a project, please follow these guidlines. Once you've created a project, open the ADD A DEVICE tab, you will notice 5 sections:
# Project General Informations
Here you can set a name (a hostname) for the device. If you let it blank, the
default hostname that is set in the original image will be choosed. You can
also prefix a
-* to the name to get a random ID at the end of the device
hostname, in case you have multiple devices serving the same purpose and you
need a different name for each devices (e.g. temp-sensor-1254,
temp-sensor-5699, temp-sensor-8445, ... etc).
You can also choose the image that will be flashed into the device. Click on the device model to see images that are available for this model.
# Project Parameters
Used only to display the project name, API key for devices and the API endpoint used by the device.
# General Settings
# Deployment Settings
Here you can configure applications deployment settings:
Application dual A/B deployment: if enabled, and if the deployed application is an archive app, then there will be two copies of the application stored in device storage. This is known as the dual A/B workflow, where for each new deployment of the application; we keep the previous one where we can rollback to it, in order to recover from errors, application bugs, etc. Before activating this feature, please make sure you have enough space storage on devices for the uncompressed application files. Usually if your uncompressed application takes up less than 30% of the entire storage, then it should be fine.
Application delta updates: if enabled, and if the application is an archive app, then the update mechanism will only download the generated
xdelta.xd3file that represent the files that have changed, and use it to reconstruct the original archive file. This allows to reduce download time and bandwidth usage drastically. Before activating this feature, please make sure to read the Application delta update documentation and how it works.
# Advanced Settings
# WiFi Configuration
You can add up to 5 WiFi networks by clicking on Add a WiFi network, for each network you can set:
- The network ID (SSID) (required)
- The network visibility (default to 'not hidden')
- The network security mode (default to 'No security')
- The network password (required unless the security mode is set to 'No security')
- The network priority: networks with higher priority will be preferred. Default is 0. The higher number means higher priority
You can also add a fallback WiFi network by clicking on Add a fallback WiFi NETWORK, this network will be used in case all other networks are unavailable.
For development purpose, it is strongly recommended that you set a second WiFi network as a fallback, in case there are some errors. Maybe use your phone wireless as a second WiFi.
# Cellular Configuration
You can add up to 2 cellular networks, for each network you have to specify in order:
- The country to which the cellular network belongs
- The network ID (generally the provider name)
- The APN used for this network ID
Once you choosed the APN, fields 'Plan' and 'Usage' will be filled with the corresponding data. Use this data to confirm that APN you choosed is really the one you are aiming to use.
Selecting an incorrect plan may result in billing issues for your account or prevent connectivity.
# Connectivity Check
If you have cellular connectivity problems or even WiFi related ones, the Connectivity Check feature will allow you to:
- Monitor connectivity status and try to recover.
- Reconfigure the connectivity.
- Reboot the device if all fails.
However rebooting devices should be last resort operation, usually reconfiguring connectivity will solve the problem.
The Connectiviy Check feature supports 4 parameters:
- The interval between two successive connectivity checks
- The number of failed connectivity checks that will trigger a network reconfiguration
- The maximum number of failed network connectivity and reconfiguration that will trigger the Failure Action
- The Failure Action to perform on connectivity and reconfiguration limit
The network reconfiguration operation will:
- Reset all Network Manager connections
- Reset all GSM modems and Modem Manager connections
The Failure Action supports the following operations:
- No action (by default): do not take any action, device state may stay in failure or unknown mode, until connectiviy is back.
- Normal reboot: perform a normal reboot operation.
- Force reboot: perform a forced reboot operation, all processes are killed, all file systems are unmounted or remounted read-only. Should cause no dirty file systems.
- Immediate reboot: similar to a hardware reboot, which might result in data loss.
To be supported soon:
- Exit: performs a
systemdservice manager exit call. Use this only with enabled hardware watchdog
- Force exit: porforms a forced exit by
systemdthe service manager. Use this only with enabled hardware watchdog
# Boot Configuration
Here you can specify the kernel boot options.
# Project Environment Variables
Here you can set the environment variables that can be used by apps on the target device. So that you have not to hardcode their values into these apps. Think of an endpoint URL that your app will use, say, to grab some data from the internet. If this URL changes in the future, or if you want to use a different service that offers the same data, the only thing you will need to do is to change the environment variable without touching the app.
Once all configuration done, you can now follow with OS image generation.
# Generate OS Image
To generate the OS image, you have three options:
- Begginer users (preferred): Use the online Ionoid.io Build OS tool to build, generate and download a ready-to-use image
- Advanced users: Use the Ionoid.io build scripts on a downloaded image
- Advanced users: Install on an already running Linux system - to be added soon
# Download OS Image
All you have to do is to click on the Download OS to download a ready-to-flash image:
Wait a few seconds until the image has been fully generated, then click on the image link to start download:
You can save the current project configuration as the default one by clicking on Save as default project settings.
You can also download the
config.json file that has been used to generate the
image (not mandatory):
Once the OS image downloaded, you can flash the device using this image.
# Using Ionoid.io Build Scripts
In order to use the build scripts, you will have to install the following tools first:
If you want to build your own OS, you will first need to generate the
config.json file corresponding to the current project configuration. For
that, simply click on Download config file.
Please keep in mind that the
config.json file contains your project credentials
and secrets, do not share this file with untrusted parties.
Now, you must have on hand an OS image to use, you have two options:
- Use a Raspbian image that you can download from here.
- Use SealOS (Secure Linux-IoT OS): SealOS is a secure Linux-IoT operating system that is distributed to some Ionoid.io partners for now. A more general purpose version will be available for free soon. To get your SealOS image please contact us at firstname.lastname@example.org.
Ionoid.io Raspbian images are adapted from the official Raspbian images. The only difference is that Ionoid.io Raspbian images use NetworkManager to handle network connectivity. Also, the openresolv package has been removed because of incompatibility with NetworkManager.
- Ionoid.io network connectivity works only if NetworkManager is installed.
- Default user and password for Raspbian images are
raspberry. Make sure to change them after you successfully login into your Raspbian OS.
Once you've got your OS image, open your favorite console and follow the following steps:
- Create a working directory and access it:
mkdir -p ionoid-build && cd ionoid-build
- Copy (or move) your image to that directory:
cp /path/to/os/image.zip .
- Copy (or move) the downloaded
config.jsonfile to the same directory:
cp /path/to/file/config.json .
- Run the build script to build your final configured Linux-IoT image. Make sure
to enter the root password when asked (superuser privileges are required to
mount the image in order to configure it). In the followig command, we suppose
that you didn't rename the
config.jsonfile, and that the image name is
curl https://github.install-ionoid.sdk.ionoid.net/install-tools.bash | IMAGE=image.zip CONFIG=config.json bash
Once the build process finishes, you will find the new patched image in the
output directory. You can now flash the
device using this image.
# Installing on an Already Running Linux System
To be added soon
# Flash OS Image to Storage
Please follow these guidlines to flash the generated OS image to the storage of your device.
# Boot the device
Once the device flashed with the new OS image, boot your device and observe the project details page on the dashboard, you will notice that the device appeared in the list of devices:
Now you can control you device from the dashboard using the control menu that is above the device list.