Install VPX Agent on X86/NVIDIA Server

Install NVIDIA drivers and the Docker engine

Check our system requirements first!

Install the Docker Engine

Install the NVIDIA drivers and CUDA

Install the NVDIA container toolkit

After you followed the installation guidelines you must be able to get a similar output

docker run --rm --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.86       Driver Version: 470.86       CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|

Install Azure IoTEdge

Install IotEdge 1.4 (only the package aziot-edge is required)

Skip the container engine installation (you did that already)

Configure Azure IotEdge

You will receive a ZIP file from Swarm with configuration files. (Replace $ID with the device ID you received from SWARM)

ID=<DEVICE-ID>
sudo mkdir /opt/swarm/
sudo mkdir /opt/swarm/config
sudo mkdir -p /etc/iotedge/
sudo cp $ID/VPX-$ID/config.yaml /etc/iotedge/config.yaml
sudo chown iotedge:iotedge /etc/iotedge/config.yaml
sudo cp $ID/VPX-$ID/config.toml /etc/aziot/config.toml
sudo mkdir -p /var/lib/iotedge/hsm/
sudo cp $ID/all/azure-production-certificates/* /var/lib/iotedge/hsm/
sudo chown aziotcs:aziotcs /var/lib/iotedge/hsm/iot-edge-device-SwarmEdgeDeviceCA-full-chain.cert.pem
sudo chown aziotcs:aziotcs /var/lib/iotedge/hsm/swarm-iot.root.ca.cert.pem
sudo chown aziotks:aziotks /var/lib/iotedge/hsm/iot-edge-device-SwarmEdgeDeviceCA.key.pem
sudo iotedge config apply -c '/etc/aziot/config.toml'

At this point check the IotEdge logs for any errors

iotedge system logs -- -f

You will now see your deployment in the SWARM Control Center as "Unnamed Device" with the registration ID:

At this stage, the IoT Edge runtime will pull the docker images and once finished the device can be configured in the Control Center.

docker ps -a
CONTAINER ID   IMAGE                                                    COMMAND                   CREATED        STATUS        PORTS                                                                                                                         NAMES
118c96889ec7   swarm.azurecr.io/curiosity-x64-tensorrt:6.6.33           "/usr/local/bin/nvid…"    6 days ago     Up 6 days     0.0.0.0:8090->8090/tcp, :::8090->8090/tcp                                                                                     curiosity
95d63beb336e   swarm.azurecr.io/azure-module-x64:1.7.1                  "java -jar app.jar"       6 days ago     Up 6 days                                                                                                                                   azure-module
3003fd8db258   mcr.microsoft.com/azureiotedge-hub:1.1.15                "/bin/sh -c 'echo \"$…"   3 months ago   Up 4 weeks    0.0.0.0:443->443/tcp, :::443->443/tcp, 0.0.0.0:5671->5671/tcp, :::5671->5671/tcp, 0.0.0.0:8883->8883/tcp, :::8883->8883/tcp   edgeHub
6f469d38d91d   mcr.microsoft.com/azureiotedge-metrics-collector:1.0.9   "/bin/sh -c 'echo \"$…"   3 months ago   Up 3 months                                                                                                                                 azure-monitor
88d10c824af0   mcr.microsoft.com/azureiotedge-agent:1.1.15              "/bin/sh -c 'exec /a…"    3 months ago   Up 3 months                                                                                                                                 edgeAgent

Next steps: Configure your use case.

Last updated