Skip to main content

Provision

In Development

This provisioning guide is currently under development. Features may be incomplete or subject to change. Please check back for updates or report any issues you encounter.

This guide will walk you through the process of provisioning a Advantech ICAM-540 using the Avocado CLI. For general information on provisioning, see the provisioning reference.

Prerequisites

  • A Linux host machine per reliable provisioning:
    • Ubuntu 22.04+, Fedora 39+
  • Available disk space: 16 GB
  • A TTY serial console USB adapter to connect to the device's serial console for monitoring and debugging.
  • The latest version of the Avocado CLI.
Linux Auto-mounting

Some Linux operating systems, like Ubuntu, will attempt to auto-mount mass storage devices. This can interfere with Avocado's ability to finalize provisioning a device.

Before provisioning, disable auto-mounting. The following example is for Ubuntu (GNOME desktop); the same commands apply to other GNOME-based distributions such as Fedora Workstation.

Ubuntu (GNOME desktop)
gsettings set org.gnome.desktop.media-handling automount false
gsettings set org.gnome.desktop.media-handling automount-open false

Set up serial console

Connect your TTY serial console USB adapter to the device's serial console port. This will allow you to monitor the boot process and access the device console.

Use a serial terminal program like screen or tio to connect. The typical connection settings are:

Example using tio:

Host machine
tio -b 115200 /dev/ttyUSB0

Replace /dev/ttyUSB0 with the appropriate device path for your serial adapter.

Create project

Create the project directory and install dependencies.

Host machine
avocado init --target icam-540 icam-540 && cd icam-540
avocado install --force

Provision

Build the project and execute the provisioning procedure. This will build the system image and flash it to your target hardware.

Host machine
avocado build
avocado provision -r dev

Run

After provisioning completes, remove any USB cables or jumpers that were used to facilitate USB provisioning, then reapply power to the device.

The device will boot with the provisioned system. The root user is passwordless in the dev runtime used by this guide.