Set Up DRIVE OS QNX with NVIDIA GPU Cloud (NGC)

Begin by referring to the instructions in Set Up Docker and NVIDIA GPU Cloud Access, then proceed with the following installation guide for DRIVE OS QNX.

Images Available in This Release

The following images will be available on NGC in this release:

 File Name     Intent  
drive-agx-orin-qnx-aarch64-sdk-build-x86:latest    Build and Flash DRIVE OS 6.0.6 QNX SDK  
Note: The flash container has been deprecated in this release, as the functionality is now included in the build container.  

Pull Docker Images from NGC

This example pulls and uses the following NVIDIA DRIVE SDK build/flash image:

  1. Log into the NVIDIA GPU Cloud (NGC) using instructions in the previous section.

  2. On the host system, pull the image using the following command:

    Note: ${MY_NGC_ORG} is the NGC Organization allocated for your team.
    sudo docker pull nvcr.io/${MY_NGC_ORG}/driveos-sdk/drive-agx-orin-qnx-aarch64-sdk-build-x86:latest

Instructions for Running QNX SDK Docker

Use the following command template to start the container, mount an existing QNX SDP installation, and cross-compile CUDA and TensorRT samples:

sudo docker run -it --privileged --net=host -v /dev/bus/usb:/dev/bus/usb -v <path/to/sdp>:/sdp -v <path/to/license>:/root/.qnx -v <path/samples>:/samples -e QNX_TOP=/drive/drive-qnx/ -e QNX_BASE=/sdp -e QNX_TARGET=/sdp/target/qnx7 -e QNX_HOST=/sdp/host/linux/x86_64 -e PATH=/sdp/host/linux/x86_64/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin -e CUDA_INSTALL_DIR=/usr/local/cuda-safe-11.4 -e CUDA_PATH=/usr/local/cuda-safe-11.4 -e QNX_SDK_PATH=/drive/drive-qnx/ -e QNX_VERSION=7.1.0 nvcr.io/drive/driveos-sdk/drive-agx-orin-qnx-aarch64-sdk-build-x86:latest 

For example:

sudo docker run -it --privileged --net=host -v /dev/bus/usb:/dev/bus/usb -v /home/user/p4/sw/tools/embedded/qnx/qnx710-ga1/:/sdp -v /home/user/.qnx:/root/.qnx -v /home/user/samples/:/samples -e QNX_TOP=/drive/drive-qnx/ -e QNX_BASE=/sdp -e QNX_TARGET=/sdp/target/qnx7 -e QNX_HOST=/sdp/host/linux/x86_64 -e PATH=/sdp/host/linux/x86_64/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin -e CUDA_INSTALL_DIR=/usr/local/cuda-safe-11.4 -e CUDA_PATH=/usr/local/cuda-safe-11.4 -e QNX_SDK_PATH=/drive/drive-qnx/ -e QNX_VERSION=7.1.0 nvcr.io/nv-drive-internal/driveos-qnx-pdk-dev/drive-agx-orin-qnx-aarch64-pdk-build-x86:latest
Note:

Enter all subsequent commands at the Docker container command prompt.   

Flash DRIVE OS QNX

Use the procedures in this section to flash DRIVE OS 6.0.6 SDK QNX to the target system from the Docker container.

Flash Using the DRIVE OS Docker Container

  1. Log on to the NVIDIA GPU Cloud (NGC). If you need to download a DRIVE OS Docker image, use the procedures in the Set Up Docker and NVIDIA GPU Cloud Access section of this document.

  2. Connect NVIDIA DRIVE™ AGX to the host system.

    Note: Ensure that NVIDIA DRIVE AGX is connected to the host system, and that no other processes, such as TCUMuxer or Minicom are holding a lock on /dev/ttyACM* before starting the Docker container.   
  3. Start the DRIVE OS Docker container and flash DRIVE OS onto the NVIDIA DRIVE AGX using the following command.

    sudo docker run -it --privileged --net=host -v /dev/bus/usb:/dev/bus/usb -v /drive_flashing:/drive_flashing
    nvcr.io/${MY_NGC_ORG}/driveos-sdk/drive-agx-orin-qnx-aarch64-sdk-build-x86:latest

Instructions for Flashing

Note: These instructions are new for this release.

Put the DRIVE AGX system into reset mode from the Aurix MCU console.

  • Flash with flash.py:

    ./flash.py /dev/ttyACM1 p3710
Note:

/dev/ttyACM1 is the default port for the DRIVE AGX Orin Developer Kit on the x86 Host system if only one Developer Kit or another USB device is connected. If there are additional devices in this device range, please disconnect them before flashing.    

Note: Please ensure that the samples built are available, so <path>/samples must be shared between the host PC and the Docker Container for NFS mount on the QNX target.

Finalize DRIVE AGX System Setup (QNX)

Note:

Please note when installing DRIVE OS, the DP display will not be activated when flashing is completed. The user must connect to the DRIVE AGX platform console via a terminal emulator to determine when flashing has been completed, and to complete the platform setup.

Instructions for connecting a terminal emulator to the platform are in the DRIVE OS 6.0 QNX Developer Guide sections "Using tcu_muxer" and "Terminal Emulation."    
  1. First, begin by referring to Finalize DRIVE AGX Orin System Setup.

  2. Setup Networking for SSH and NFS.

    • Install and configure the DHCP server on the Linux host.

    • Install and configure the NFS server on the Linux host.

    Set up the Host/Target networking interface. Connect the RJ45 connector to the Linux Host machine Ethernet port. For more information, see DRIVE OS 6.0 QNX Developer Guide section "Setting Up Networking on the Host and Target."

  3. Setup Environment Variables.

    Refer to Prerequisites.