Prepare USB and Validate#
This guide covers Phase 2 and Phase 3 of the provisioning workflow: preparing the bootable USB on the developer system, installing the OS on the target system, and validating bring-up.
Before starting, ensure you have usb-installation-files.tar.gz produced by Build from Source.
Phase 2: Prepare Bootable USB#
1. Extract Installation Files on the Developer System#
sudo tar -xzf usb-installation-files.tar.gz
The extracted files include:
usb-bootable-files.tar.gzconfig-filebootable-usb-prepare.shven-deployment.sh
2. Configure and Prepare the USB Device#
Required inputs:
USB Device Path (
usb): The target USB device identifier (for example,/dev/sdX). Use thelsblkcommand to locate the correct device.Bootable Package (
usb-bootable-files.tar.gz): The compressed archive containing bootable system files.Configuration File (
config-file): User-customizable settings that include the following:Proxy configurations
SSH public key (
id_rsa.pub)Workload orchestration preference (host_type)
Single Root I/O Virtualization (SRIOV) toggle
Additional system parameters
Installation Mode (Attended or Unattended)
Note: Proxy configuration is optional in unrestricted network environments.
Run the following command:
sudo ./bootable-usb-prepare.sh /dev/sdX usb-bootable-files.tar.gz config-file
To reuse a prebuilt image:
sudo ./bootable-usb-prepare.sh /dev/sdX usb-bootable-files.tar.gz config-file image.raw.gz
After USB preparation completes:
Safely disconnect the USB from the developer system.
Connect it to the target system.
Enter the BIOS boot menu and boot from the USB.
Access the Edge Node#
After installation, log in using the credentials specified in the config-file during the Ubuntu desktop image preparation.
Phase 3: Post-Boot Bring-Up and Validation on Target System#
After the target system boots from the USB and completes first-boot provisioning via cloud-init, verify that services are running correctly. The orchestration mode depends on the host_type value set in the config-file during USB preparation (container is the default).
For container mode (host_type=container):
docker info
docker ps
For details on exposing IntelĀ® GPU or NPU to containers via CDI, see the Intel CDI Usage Guide.
For Kubernetes mode (host_type=kubernetes):
# Kubernetes nodes and plugin pods
sudo kubectl get nodes
sudo kubectl get pods -A
Expected healthy output includes the running Intel and Node Feature Discovery components, for example:
intel-device-plugins intel-gpu-plugin-xxxxx 1/1 Running
intel-device-plugins intel-npu-plugin-xxxxx 1/1 Running
node-feature-discovery nfd-master-xxxxx 1/1 Running
node-feature-discovery nfd-worker-xxxxx 1/1 Running
kube-system coredns-xxxxx 1/1 Running
kube-system metrics-server-xxxxx 1/1 Running
Verify SR-IOV status:
sudo cat /sys/kernel/debug/dri/0000:00:02.1/sriov_info
Expected indicators:
supported: yes
enabled: yes
mode: SR-IOV VF
Verify GPU and NPU driver bring-up:
sudo dmesg | grep xe
sudo dmesg | grep vpu