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.gz

  • config-file

  • bootable-usb-prepare.sh

  • ven-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 the lsblk command 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:

  1. Safely disconnect the USB from the developer system.

  2. Connect it to the target system.

  3. 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