Installing NVIDIA DriveOS for NVIDIA Developer Users#
To install NVIDIA DriveOS™ 7.0, you can pull and run Linux Docker images from the NVIDIA GPU Cloud Access (NGC) container registry, then bind and flash the target system.
Images Available for NVIDIA DriveOS 7.0#
Image Name |
Intent |
---|---|
|
Build and Flash DriveOS 7.0 Linux SDK |
Pulling and Running the DriveOS Docker Container Image via NGC#
After configuring registry access to NGC, you can pull and run the DriveOS Docker container image on your host system. This is useful for confirming access and pre-pulling the image before Preparing to Bind and Flash the Target System.
Tip
Prior to installation, you can choose to remove previously installed DriveOS Docker images and containers to increase space capacity.
Pull and run the DriveOS Docker container image by running the following command on your host system:
$ sudo docker run -it --privileged --net=host -v /dev/:/dev/ \
-v ${WORKSPACE}:/home/nvidia/ \
nvcr.io/drive/driveos-sdk/drive-agx-linux-nsr-aarch64-sdk-build-x86:<version>-<build>
Where:
${WORKSPACE}
is the native host directory you want to share inside the contaner.<version>-<build>
is the image version and build tag that you copied during Configuring NVIDIA GPU Cloud (NGC) Access for NVIDIA Developer Users.
Preparing to Bind and Flash the Target System#
To prepare to bind and flash NVIDIA DriveOS to the target system from the Docker container, perform the following steps:
Connect the DRIVE AGX to the host system.
Note
Refer to the NVIDIA DRIVE AGX Thor Developer Kit Hardware Quick Start Guide.
Ensure that the 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:To check if a process is holding the lock, run the following command:
$ lsof -w /dev/ttyACM*
To kill a process that is locking a specific port, run the following command:
$ kill -9 <pid>
Where
<pid>
is the corresponding Process ID (PID).
Start the DriveOS Docker container by running the relevant following command:
$ sudo docker run -it --privileged --net=host -v /drive_flashing:/drive_flashing \ -v /dev/:/dev/ -v ${WORKSPACE}:/home/nvidia/ \ nvcr.io/drive/driveos-sdk/drive-agx-linux-nsr-aarch64-sdk-build-x86:<version>-<build>
Binding and Flashing the Target#
After following Preparing to Bind and Flash the Target System, you can bind and flash the target manually.
Binding and Flashing the Target Manually#
You can bind and flash the target manually by performing the following steps:
To bind the target, perform the following steps inside the container:
Change to the following directory:
# cd $NV_WORKSPACE/drive-foundation
Run the relevant following bind command, based on your board variant:
Important
For assistance determining your board variant, see DRIVE Platform Supported Boards.
For Thor-U boards, run the following command:
# ./make/bind_partitions \ -b <board_variant> drive_av.linux \ -p dev_nsr \ ENABLE_THOR_U=y
Where:
-b
is set to the appropriate board variant from DRIVE Platform Supported Boards.ENABLE_THOR_U=y
is set.
For Thor-X boards, run the following command:
# ./make/bind_partitions \ -b <board_variant> drive_av.linux \ -p dev_nsr
Where
-b
is set to the appropriate board variant from DRIVE Platform Supported Boards.
Note
If the bind command fails due to the following error:
update-binfmts: exiting due to previous errors
You must manually run the following
apt
steps on the host system outside of the container to ensure the QEMU package is properly installed:$ sudo apt-get remove --purge qemu-user-static $ sudo apt-get install qemu-user-static
To flash the images, perform the following steps inside the container:
Note
The first time flashing the 7.0.3.0 release, add the bootburn
--init_persistent_partitions
option to update the user metadata structures. If this is done, persistent data will be saved across subsequent flashing of the board.Change to the following directory:
# cd $NV_WORKSPACE/drive-foundation/tools/flashtools/bootburn/
Run the relevant following flash command, based on your board variant:
For Thor-U boards, run the following command:
# ./bootburn.py \ -b <board_variant> \ --board_config /drive/drive-foundation/platform-config/hardware/nvidia/platform/t264/automotive/automotive-platform-configs/p3960/<p3960-1n>/<p3960-1n-sw0x>/board_configs/<p3960-1n-sw0x>_thor_u.json \ -x /dev/ttyACM2
Where:
-b
is set to the appropriate board variant from DRIVE Platform Supported Boards.--board_config
specifies the file path to specific Thor-U configs, where<p3960-1n>
and<p3960-1n-sw0x>
are updated based on the appropriate board variant from DRIVE Platform Supported Boards. For example, for the p3960-10-sw03 board variant:/drive/drive-foundation/platform-config/hardware/nvidia/platform/t264/automotive/automotive-platform-configs/p3960/p3960-10/p3960-10-sw03/board_configs/p3960-10-sw03_thor_u.json
For Thor-X boards, run the following command:
# ./bootburn.py \ -b <board_variant> \ -x /dev/ttyACM2
Where:
-b
is set to the appropriate board variant from DRIVE Platform Supported Boards.
Optional: Downloading and Installing Additional NVIDIA DriveOS Packages from NGC#
The following additional NVIDIA DriveOS packages are hosted on NGC and can be downloaded to the /drive_flashing
directory inside the container:
Additional Packages |
---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
To access these additional packages:
Download the additional packages by selecting the correct NVIDIA DriveOS version from the dropdown menu at https://registry.ngc.nvidia.com/orgs/drive/teams/driveos-sdk/resources/driveos_sdk/files.
Tip
For more details, see “Downloading Resources via WGET/cURL” in the NGC Catalog User Guide.
You can install packages that have a
nv-driveos*
prefix by using the DRIVEInstaller utility:Inside the container, change to the following directory:
# cd driveinstaller
Run the DRIVEInstaller utility with the
install
install type and specify the file path to the.tgz
file:# ./driveinstaller --installtype install \ --pkgpath <path/to/file>.tgz
For example:
# ./driveinstaller --installtype install \ --pkgpath /drive_flashing/<filename>.tgz
Next Steps#
After successfully completing Binding and Flashing the Target, continue to Finalizing the Installation.