Install DRIVE OS QNX with Debian Packages

Uninstall Steps for Local Repo Debian Packages

If you have previously installed DRIVE OS, the existing DRIVE OS first needs to be uninstalled. This will help maintain content integrity and avoid any conflicts.

To remove or uninstall, please follow these instructions:

sudo -E apt-get -y --purge remove "nv-driveos*"
sudo apt-get -y autoremove

Optional step: The DRIVE OS Debian Package uninstall will not remove any data from $NV_WORKSPACE.

If you want to remove, please follow below instruction:

sudo rm -rf $NV_WORKSPACE

Using NVONLINE PID Groups for Download

  1. Log into NVONLINE (partners.nvidia.com), and find the DRIVE OS 6.0.9.0 QNX SDK group in order to get access to the Debian packages.

  2. The downloaded local repo will have the local repo Debian package and extra Debian packages that are available to be installed outside of the local repo.

  3. The local repo Debian package has the following format:

    nv-driveos-repo-sdk-qnx-[RELEASE]-[GCID]_amd64.deb

Installation Steps for Local Repo Debian Packages

Instructions for installing local repo Debian packages.

  1. To install the local repo Debian packages, use dpkg.

    sudo dpkg -i nv-driveos-repo-sdk*_amd64.deb
  2. Run apt update to refresh the APT cache:

    sudo apt update
    echo $?
    CAUTION: Proceeding with a non-ZERO value can result in installation errors.
  3. Install top-level DRIVE OS SDK Debian packages:

    export NV_WORKSPACE=/path/where/SDK/needs/to/be/installed

    If using SDK Local Repo Debian packages:

    sudo -E apt -f -y install nv-driveos-build-sdk-qnx-[RELEASE]-[GCID]
    2>&1 | tee nv-driveos-build-sdk-qnx-[RELEASE]-[GCID]_install.log
Note: Packages will be installed in /opt/nvidia/driveos/[RELEASE] and the path is specified by NV_WORKSPACE.

After a successful installation of nv-driveos-build-sdk-qnx-[RELEASE]-[GCID], the SDK install directory structure will be as following:

$NV_WORKSPACE directory structure Sub-directories
drive-foundation
firmware make platform-config qnx-bsp security tools version-nv-sdk.txt virtualization
drive-qnx
aurix auto-safety bsp canrtc.sh filesystem firmware include lib-target make nvidia-bsp qa qnx_find_sdp_dups.sh samples tools tos
drive-linux
filesystem firmware include kernel lib-target make oss samples tools tests
toolchains
aarch64--glibc--stable-2022.03-1 armv5-eabi--glibc--stable-2020.08-1 armv7-eabihf--glibc--stable-2020.08-1

After exporting NV_WORKSPACE, the following commands should be run:

sudo apt update
sudo apt upgrade

Installation Steps for the Extra Packages

  1. Ensure the Blackberry® QNX® QPKG is installed under:

    drive-qnx-[VERSION]-sdp-patchset.qpkg

    Use the QNX Software Centre with the Import Wizard to import the qpkg corresponding to SDP 7.1 and QOS 2.2.2 EA required for DRIVE OS 6.0.9.0.

  2. Install the below CUDA 11.4 Debian packages for QNX available under the same folder.

    sudo dpkg -i cuda-repo-ubuntu2004-11-4-local_11.4.[VERSION]_amd64.deb
    sudo cp /var/cuda-repo-ubuntu2004-11-4-local/cuda-51997F51-keyring.gpg /usr/share/keyrings/
    
    sudo dpkg -i cuda-repo-minimal-toolkit-11-4-local_11.4.[VERSION]_amd64.deb
    sudo cp /var/cuda-repo-minimal-toolkit-11-4-local/cuda-D83CAF59-keyring.gpg /usr/share/keyrings/
    
    sudo dpkg -i cuda-repo-cross-aarch64-qnx-standard-11-4-local_11.4.[VERSION]_all.deb
    sudo cp /var/cuda-repo-cross-aarch64-qnx-standard-11-4-local/cuda-AA80FF97-keyring.gpg /usr/share/keyrings/
    
    sudo dpkg -i cuda-repo-qnx-11-4-local_11.4.[VERSION]_amd64.deb
    sudo cp /var/cuda-repo-qnx-11-4-local/cuda-8C8BAA32-keyring.gpg /usr/share/keyrings/
    
    sudo apt-key add /var/cuda-repo-qnx-11-4-local/[filename].pub
    sudo apt-get update
    sudo apt install cuda-qnx-standard-cross-qnx-11-4 cuda-qnx-safe-toolkit-11-4 cuda-qnx-toolkit-11-4 cuda-toolkit-11-4
  3. In case of any issue with the installation, remove old packages and reinstall.

    sudo rm /var/lib/apt/lists/_var_cuda*
    sudo apt --fix-broken install -y
    sudo apt autoremove -y
    sudo apt remove--purge -y "cuda*"
    sudo apt remove--purge -y "*cublas*"
    sudo apt remove--purge -y "*nsight*"
    sudo apt autoremove -y
  4. Install the cuDNN Debian packages for QNX:

    sudo dpkg -i cudnn-local-repo-ubuntu2004*amd64.deb
    sudo cp /var/cudnn-local-repo-ubuntu2004*/cudnn*-keyring.gpg /usr/share/keyrings/
    sudo dpkg -i cudnn-local-repo-cross-aarch64-qnx*_all.deb
    sudo cp /var/cudnn*cross-aarch64-qnx*/cudnn*-keyring.gpg /usr/share/keyrings/
    sudo apt update
    sudo apt install libcudnn8-dev libcudnn8-cross-qnx libcudnn8-samples -y
  5. Install the TensorRT Debian packages for QNX:

    sudo dpkg -i nv-tensorrt-repo-ubuntu2004-[CUDA-VERSION]-[TensorRT-VERSION]-qnx-cross*.deb
    sudo apt update
    sudo apt install tensorrt-cross-qnx
    sudo apt install -y tensorrt-safe-cross-qnx
  6. In case of any issue with the installation, remove old packages and reinstall:

    sudo apt remove tensorrt-cross*
    sudo dpkg -P nv-tensorrt* <use TAB to auto complete>
    sudo apt autoremove

Flash DRIVE OS QNX

Instructions for BIND PCT

cd $NV_WORKSPACE/drive-foundation
./make/bind_partitions BOARD=[BOARD-VARIANT] PCT=qnx 
Note: Please refer to DRIVE Platform Supported Boards to identify your board variant.

Instructions for Flashing

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

  1. Connect to the Aurix MCU console:

    sudo minicom -w -D /dev/ttyACM1
  2. From the Aurix MCU console:

    tegrarecovery x1 on
    tegrareset x1
  3. Flash:

    tools/flashtools/bootburn/bootburn.py -b [BOARD-VARIANT] 
Note: You do not need to use sudo for the following commands:
  • bootburn.py
  • create_bsp_images.py
  • flash_bsp_images.py
However, if you choose to use sudo for one, use it consistently with the others. Do not switch between sudo/non-sudo usage.
Note: Please refer to DRIVE Platform Supported Boards to identify your board variant.

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.

Note: Post installation, please refer to the "Getting Started with DRIVE OS QNX Development" chapter in the NVIDIA DRIVE OS 6.0 QNX SDK Developer Guide.