Install DRIVE OS Linux Debian Packages

Install Linux 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 the below instruction:

sudo rm -rf $NV_WORKSPACE

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-linux-[VERSION]-[GCID]_[VERSION]_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]-[OS]-[RELEASE]-[GCID]
    2>&1 | tee nv-driveos-build-[SDK]-[OS]-[RELEASE]-[GCID]_install.log

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

$NV_WORKSPACE directory structure Sub-directories
drive-foundation
firmware make platform-config security tools version-nv-sdk.txt virtualization
drive-linux
filesystem firmware include kernel lib-target make oss samples tools tests
drive-linux_src
3rdparty_dtc_src.tgz e2fsprogs-1.41.11.tar.gz jq-1.5.tar.gz kernel linuxptp.tgz NVIDIA-kernel-module-source-TempVersion.tar.xz wayland yocto
toolchains
aarch64--glibc--stable-2022.03-1 armv5-eabi--glibc--stable-2020.08-1 armv7-eabihf--glibc--stable-2020.08-1

Installation Steps for the Extra Packages

  1. Install the below CUDA 11.4 Debian packages for Linux available under the same folder.

    sudo dpkg -i ./cuda-repo-ubuntu2004-11-4-local_[CUDA-VERSION]-[DRIVER-VERSION]-1_amd64.deb
    sudo dpkg -i ./cuda-repo-cross-aarch64-ubuntu2004-11-4-local_[CUDA-VERSION]-1_all.deb
    sudo apt-key add /var/cuda-repo-ubuntu2004-11-4-local/51997F51.pub
    sudo apt-key add /var/cuda-repo-cross-aarch64-ubuntu2004-11-4-local/32437944.pub
    sudo apt update
    sudo apt -y install cuda-toolkit-11-4
    sudo apt -y install cuda-cross-aarch64-11-4 
  2. 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-get autoremove -y
    sudo apt-get remove --purge -y "cuda*"
    sudo apt-get remove --purge -y "*cublas*"
  3. Install the cuDNN Debian packages for Linux:

    sudo apt install ./cudnn-local-repo-ubuntu2004-[CUDNN-VERSION].deb
    sudo apt-key add /var/cudnn-local-repo-ubuntu2004-[CUDNN-VERSION]/44B3C3AF.pub
    sudo apt update
    sudo apt install libcudnn8
    sudo apt install libcudnn8-dev
    sudo apt install libcudnn8-samples
  4. Install the cuDNN Debian packages for cross-compiling on Linux:

    sudo apt install ./cudnn-local-repo-cross-aarch64-ubuntu2004-[CUDNN-VERSION].deb
    sudo apt-key add /var/cudnn-local-repo-cross-aarch64-ubuntu2004-[CUDNN-VERSION]/8DD81901.pub
    sudo apt update
    sudo apt install libcudnn8-cross-aarch64
    sudo apt install libcudnn8-dev-cross-aarch64
  5. Install TensorRT Debian packages for Linux:

    sudo dpkg -i nv-tensorrt-repo-ubuntu2004-cuda11.4-trt[RELEASE]-d6l-host-{ea/ga}-[BUILD-DATE]_1-1_amd64.deb
    sudo dpkg -i nv-tensorrt-repo-ubuntu2004-cuda11.4-trt[RELEASE]-x86-host-[ea|ga]-[BUILD-DATE]_1-1_amd64.deb
    sudo apt-key add /var/nv-tensorrt-repo-ubuntu2004-cuda11.4-trt[RELEASE]-d6l-cross-{ea/ga}-[BUILD-DATE]/4790c9e1.pub
    sudo apt update
    sudo apt install tensorrt

Flash DRIVE OS Linux

Instructions for BIND PCT

cd $NV_WORKSPACE/drive-foundation
./make/bind_partitions -b <board-variant> linux

Please refer to DRIVE Platform Supported Boards to identify your board variant.

Instructions for Flashing

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

    Connect to the Aurix MCU console:

    sudo minicom -w -D /dev/ttyACM1

    From the Aurix MCU console:

    tegrarecovery x1 on
    tegrareset x1
  2. Flash:

    tools/flashtools/bootburn/bootburn.py -b <board-variant> -B qspi

Please refer to DRIVE Platform Supported Boards to identify your board variant.

Getting Started with DRIVE OS 6.x Linux Development

This installation guide is for the users of the Linux operating system running on the NVIDIA DRIVE AGX platforms.

Target SSH Access from the Linux Host

The target may have an IP address assigned automatically from the network or Host to which it is connected. See the DRIVE OS 6.0 Linux Developer Guide section on "Setting Up Networking on the Host and Target" for more information on enabling the DHCP server on your Development Host to connect the target directly to it.

Also as discussed in Finalize DRIVE AGX Orin System Setup you will be prompted to choose an SSH profile during the initial setup of the target device. If you choose the DRIVE OS Linux Secure Login profile, you will need to consult the DRIVE OS 6.0 Linux Developer Guide section on "SSH Key-Based Authentication from Clients to Server" to create a key on the Linux Host to connect to the target.

Finally, while the DRIVE AGX Devkit is pre-flashed with the SSH server installed and enabled, if you flash with base DRIVE OS SDK Debian build (which uses the driveos-core-rfs filesystem), the SSH server will NOT be installed by default and you will need to install and set up using the instructions in the DRIVE OS 6.0 Linux Developer Guide section on "DRIVE OS Linux SSH Server." If you follow the directions under Finalize DRIVE AGX Orin System Setup to install the driveos-oobe-desktop filesystem, the SSH server will be enabled by default.

To confirm the overall network and SSH installation the user should:

  1. Confirm the target is responding.

    ping <target-IP>
  2. Launch the ssh client.

    ssh <user>@<target-IP> 

    (The username and password will be what is set during setup of the system on first boot.)

If the ping or ssh command is not successful and the target does not respond, you can launch the UART terminal (minicom) to access the target.

  1. Make sure only one DRIVE AGX platform is connected to the HOST USB.

  2. On the Host, confirm the ttyACM0 and ttyACM1 are listed under /dev/.

  3. Launch.

    minicom -D /dev/ttyACM0
  4. Check the IP address.

    ifconfig eqos_0