Build Edge Microvisor Toolkit and Deploy on Edge Nodes#
This guide will walk you through the entire process of deploying the Edge Microvisor Toolkit. You will learn how to build the toolkit, install it on single or multiple edge node clusters, and deploy AI solutions.
The Edge Microvisor Toolkit Standalone Node supports different EMT images to meet specific edge deployment needs. You can choose between:
Edge Microvisor Toolkit Non-Real-Time image (default)
Edge Microvisor Toolkit Desktop Virtualization image
Custom immutable Edge Microvisor Toolkit created using Build Instructions
Table of contents:
1. Build the microvisor#
If you want to create your own custom standalone node, follow the instructions below to build the Edge Microvisor from scratch. If you wish to use the default, non-real-time image of Edge Microvisor skip to Create a bootable USB installer.
Clone the stable branch of edge-microvisor-toolkit repository:
Check the tags for the
<stable_tag_name>
.git clone https://github.com/open-edge-platform/edge-microvisor-toolkit --branch=<stable_tag_name>
Navigate to the
edge-microvisor-toolkit
directory:cd edge-microvisor-toolkit
Install prerequisites:
Note: Requirements for building the toolchain were validated on Ubuntu 22.04 host.
# Install required dependencies. sudo ./toolkit/docs/building/prerequisites-ubuntu.sh # Also supported: # make -C toolkit install-prereqs # Fix go 1.21 link sudo ln -vsf /usr/lib/go-1.21/bin/go /usr/bin/go sudo ln -vsf /usr/lib/go-1.21/bin/gofmt /usr/bin/gofmt # Install and configure Docker. curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER
You will need to log out and log back in for user changes to take effect.
Navigate to the
toolkit
subdirectory.cd ./toolkit
Build the toolchain.
sudo make toolchain REBUILD_TOOLS=y
Customize the toolkit image.
You can include additional components to your toolkit image by adding RPM packages. For more details, see Customize Your Edge Microvisor Toolkit Image.
Build the toolkit image:
All available image configurations are stored in JSON files, located in the
imageconfigs
folder. For example, to build a RAW image without real-time extensions, useedge-image.json
and run the following command:sudo make image -j8 REBUILD_TOOLS=y REBUILD_PACKAGES=n CONFIG_FILE=./imageconfigs/edge-image.json
The built image will be located in its separate directory under
edge-microvisor-toolkit/out/images/
.For more information about specific building parameters, refer to this article.
2. Create a bootable USB installer#
Prepare the bootable USB drive#
Ensure the correct USB drive is selected to avoid data loss.
Replace /dev/sdX
with the device name of your USB drive.
Insert the USB drive and identify the USB disk:
lsblk -o NAME,MAJ:MIN,RM,SIZE,RO,FSTYPE,MOUNTPOINT,MODEL
Use the
wipefs
command to remove any existing filesystem signatures from the USB drive. This ensures a clean slate for formattingsudo wipefs --all --force /dev/sdX
Format the USB drive with the FAT32 filesystem, using
mkfs.vfat
:sudo mkfs.vfat /dev/sdX
Unmount the USB drive to ensure the creation of bootable USB.
Check what is currently mounted:
df -hT
Unmount the drive:
sudo umount /dev/sdX
Prepare the installation files#
Clone the edge-microvisor-toolkit-standalone-node repository:
Check the tags for the latest release.
git clone https://github.com/open-edge-platform/edge-microvisor-toolkit-standalone-node --branch=<latest_tag_name>
Navigate to the
edge-microvisor-toolkit-standalone-node
directory:cd ../../edge-microvisor-toolkit-standalone-node
Create the installer:
To create the installation tar file with all required components for preparing a bootable USB drive, run the following command:
sudo make build
Note: This command will generate the
standalone-installation-files.tar.gz
file. The file will be located in the./standalone-node/installation-scripts/out
directory.Copy the contents of
standalone-installation-files.tar.gz
:Since the
./standalone-node/installation-scripts/out
folder is read only, you need to select a folder to which you will extract the required files and then edit them. For example, you can create thestandalone-installation-files
folder in the\home
directory:mkdir ~\standalone-installation-files
Extract the contents to the selected folder:
tar -xzf ./standalone-node/installation_scripts/out/standalone-installation-files.tar.gz -C ~/standalone-installation-files
The extracted files are as follows:
bootable-usb-prepare.sh write-image-to-usb.sh config-file usb-bootable-files.tar.gz edgenode-logs-collection.sh standalone-vm-setup.sh download_images.sh user-apps
Navigate to the folder with the extracted installation files:
cd ~/standalone-installation-files
Download the Kubernetes artifacts (container images and manifest files) by executing the
./download_images.sh
script. For the default non-real-time image, use theNON-RT
parameter.sudo ./download_images.sh NON-RT
Note: By default, the script will only pull basic Kubernetes artifacts to create a single node cluster. If you want to use EMT image with desktop virtualization features, use the
DV
parameter instead ofNON-RT
.Update the
config-file
with your deployment-specific settings. This configuration file is used to provision the edge node during its initial boot and should include the following parameters:Proxy settings - when the edge node requires a proxy to access external networks.
SSH key - the public SSH key (typically your
id_rsa.pub
) from your Linux development system to enable passwordless SSH access to the edge node.User credentials - the username and password for the primary user account on the edge node.
cloud-init customization - optional, user-defined
cloud-init
configurations for advanced setup requirements.For the default non-RT image, a basic Kubernetes installation is done automatically.
Note: For deployments requiring desktop virtualization features, refer to the desktop virtualization image guide in the
user-guide
directory. This document provides referencecloud-init
configurations that can be tailored to your specific deployment needs.HugePages configuration - set when the workloads require HugePages.
Create the bootable USB drive#
To create the bootable USB drive, run the script:
sudo ./bootable-usb-prepare.sh </dev/sdX> usb-bootable-files.tar.gz config-file
Note: If you want to add specific configurations, helm charts, or packages to your deployment, you can refer to the pre-loading user apps guide for detailed instructions on customizing your EMT image.
Select your Edge Microvisor Toolkit image:
If you want to use the default non-RT image, proceed with installation, as the
usb-bootable-files.tar.gz
file already includes this image.To install custom build image, or the image with desktop virtualization features (DV) you need to copy it manually to the 5th partition of the USB drive, replacing the default non-RT one. Follow the instructions below:
Mount the 5th partition and remove the default image:
# Create a test directory for mounting. sudo mkdir -p /mnt/test # Mount the 5th partition of the USB drive. sudo mount /dev/sda5 /mnt/test # Navigate to the mounted directory. cd /mnt/test # Remove the older image (backup first if needed). sudo rm -f <old-image-file>
Copy the image to the mounted directory:
Copy your custom build image from its directory under
edge-microvisor-toolkit/out/images/
to the 5th partition:sudo cp ~/edge-microvisor-toolkit/out/images/edge-image/edge-readonly-3.0.20250717.0840.raw ./
If you decided to use the toolkit image with desktop virtualization features, you can download it, using the command:
sudo wget <https://files-rs.edgeorchestration.intel.com/files-edge-orch/repository/microvisor/dv/edge-readonly-dv-3.0.20250717.0840.raw.gz> -O edge-readonly-dv-3.0.20250717.0840.raw.gz
Unmount the partition:
cd / sudo umount /mnt/test
3. Install the toolkit on an edge device#
Unplug the attached bootable USB from developer system.
Plug the created bootable USB pen drive into the standalone node.
Set the BIOS boot manager to boot from the USB drive.
Reboot the standalone node to start the installation of Edge Microvisor Toolkit.
After the installation, the standalone edge node will automatically reboot into the microvisor.
On the first boot,
cloud-init
will install the K3s Kubernetes cluster.
Login to the Edge Node After Installation Completes#
Use the Linux login credentials provided while preparing the bootable USB drive.
Make sure to verify the kubernetes cluster creation. If you want to run kubectl commands
from the edge node, you can use the provided k
alias, which is defined in the
.bashrc
of the user specified during configuration.
k get pods -A
Set up tools on developer system#
Install and configure kubectl and helm tools on the developer system.
Install
kubectl
- the Kubernetes command-line tool:sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gnupg curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.32/deb/Release.key | \ sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] \ https://pkgs.k8s.io/core:/stable:/v1.32/deb/ /' | \ sudo tee /etc/apt/sources.list.d/kubernetes.list sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubectl
Copy the kubeconfig file from the edge node:
The admin kubeconfig file is written to
/etc/rancher/k3s/k3s.yaml
andkubectl
installed by K3s loads configuration from it by default. The kubeconfig file is used to provide access to the Kubernetes cluster. Usescp
to securely copy it from the edge node:mkdir ~/.kube export EN_IP=<EN_IP> scp user@${EN_IP}:/etc/rancher/k3s/k3s.yaml ~/.kube/config
Update the edge node IP (EN_IP) in the kubeconfig file and export the path as KUBECONFIG:
sed -i "s/127\.0\.0\.1/${EN_IP}/g" ~/.kube/config export KUBECONFIG=~/.kube/config
Test the connection:
kubectl get pods -A
Install
helm
:curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 chmod 700 get_helm.sh ./get_helm.sh
4 Deploy AI solution#
Now that you have the edge node ready, you can deploy a sample application from the AI Suites. Follow the guide for Smart Parking application with AI-driven video analytics to optimize parking management.