IGX-Software includes:
IGX-OS, which is based on Ubuntu. This is the main operating system running on IGX.
NVIDIA AI stack, which is installed on IGX-OS.
Firmware for BMC, Bootloader firmware (QSPI), Safety Microcontroller firmware, ConnectX-7 firmware, and HDMI IN firmware.
Enterprise support on IGX-Software is provided by NVIDIA AI Enterprise - IGX which is purpose-built for mission-critical applications and provides unmatched performance, security, stability, and long-term enterprise support for the entire software stack. IGX-Software is accessible via NVIDIA AI Enterprise - IGX subscription. Please refer following docs on more info on NVIDIA AI Enterprise - IGX.
IGX-Software is also publicly hosted for development and evaluation in the IGX Download center: https://developer.nvidia.com/igx-downloads
Installation steps in this document is the same irrespective whether IGX-Software is downloaded from NVIDIA AI Enterprise - IGX or via public hosted download center.
Before you install IGX-OS:
Check the NVIDIA IGX Orin™ Developer Kit bootloader firmware version.
If the firmware is
UEFI firmware version 36.1.0-gcid-34862486 date 2023-11-16T21:00:16+00
or newer, proceed to installing IGX-OS.If the firmware is an older version you must update the firmware in your Developer Kit before installing IGX-OS.
Developer Kit Back Panel
Connect the Display to the DisplayPort output, labeled 8 in the figure above, for iGPU mode.
Connect the Display to the PCIe Gen5 double width slot, labeled 14 in the figure above, dGPU mode.
Turn on and boot up your IGX Developer kit.
The boot process will show the UEFI splash screen, which will display the bootloader version as a string. For example:
UEFI firmware version 36.1.0-gcid-34862486 date 2023-11-16T21:00:16+00
If your developer kit is running a UEFI version built after Nov 16 2023, then you can proceed with installing IGX-OS. If your developer kit is running an earlier version, you must update the boot firmware before you can install IGX-OS. See Updating the Boot Firmware (QSPI).
Update the firmware in following order:
Updating the BMC Firmware
Follow the instructions here: BMC Firmware Update.
Command to check the BMC version:
root@mgx-3809:~# cat /etc/os-release
ID=openbmc-phosphor
NAME="NVIDIA MGX/IGX BMC (OpenBMC Project Reference Distro)"
VERSION="IGXOrinBMC-23.11-02-v1.0"
VERSION_ID=igxorinbmc-23.11-02-v1.0-0-g740ad1efa6.1699289677.6775017
PRETTY_NAME="NVIDIA MGX/IGX BMC (OpenBMC Project Reference Distro) IGXOrinBMC-23.11-02-v1.0"
BUILD_ID="20231106165432"
OPENBMC_TARGET_MACHINE="mgx-3809"
BUILD_DESC="prod-platform
Updating the Safety Microcontroller (SMCU) Firmware
You must install the BMC Firmware update first.
IGX BMC can flash the SMCU Firmware and upgrade the SMCU.
SMCU FW |
HW Board Revision |
---|---|
P3740-Aurix-StepB_C00.hexC | TS3 |
P3740-Aurix-StepB_C01.hex | QS2, CR |
The version of the IGX Developer Kit (TS3, QS2 or CR) can be found on the sticker on the developer kit or laser etched on the bottom.
To flash the SMCU, follow these steps:
On the Host Machine: Download the SMCU firmware to your Linux host machine
On the Host Machine: Extract SMCU firmware:
sudo tar xvjf smcu_ifw_R36.1.0_aarch64.tbz2
On the Host Machine: Copy the SMCU firmware (
.hex
) extracted above to the IGX Developer Kit BMC using the scp tool:QS2/CR Example:
scp smcu/IFW/P3740-Aurix-StepB_C01.hex root@192.168.1.110:/etc/smcu-flash
TS3 Example:
scp smcu/IFW/P3740-Aurix-StepB_C00.hex root@192.168.1.110:/etc/smcu-flash
On the IGX Developer Kit - BMC: Stop the console service:
systemctl stop obmc-console\@ttyS2.service
On the IGX Developer Kit - BMC: Go to the smcu-flash directory:
cd /etc/smcu-flash
On the IGX Developer Kit - BMC: Flash SMCU firmware and provide the SMCU firmware file path:
QS2/CR Example:
./flash_tc39x.py ttyS2 921600 ./P3740-Aurix-StepB_C01.hex
TS3 Example:
./flash_tc39x.py ttyS2 921600 ./P3740-Aurix-StepB_C00.hex
On the IGX Developer Kit - BMC: Start the console service when you have finished mcu-flash:
systemctl start obmc-console\@ttyS2.service
On the IGX Developer Kit - BMC: Reset SMCU:
cd /etc/smcu-flash ./smcu-flash.sh smcu_reset
Updating the Boot Firmware (QSPI)
Use L4T Tegra BSP for this update.
Connect the USB-C cable from the Linux Host to the USB-C connector, labeled 9 in the figure above.
On the Host Machine: Download the L4T Tegra BSP to your Linux host:
Jetson_Linux_R36.1.0_aarch64
.On the Host Machine: Run these commands:
tar xvf Jetson_Linux_R36.1.0_aarch64.tbz2 cd Linux_for_Tegra sudo ./flash.sh p3740-0002-p3701-0008-qspi external
Updating the Connect-X 7 (CX7) Firmware
CX7 firmware is updated from IGX OS. If you have not yet done so, install IGX OS before continuing.
Download
MLNX_OFED_LINUX-23.10-0.5.5.0-ubuntu22.04-aarch64.iso
.Follow the instructions in https://docs.nvidia.com/networking/display/mlnxofedv461000/installing+mellanox+ofed#src-12013402_InstallingMellanoxOFED-InstallationProcedure
Updating the HDMI IN (Input) Firmware
HDMI-IN firmware is updated from IGX OS. If you have not yet done so, install IGX OS before continuing.
Before using the HDMI in device of your devkit, ensure that it has the latest firmware by first downloading the firmware files from the Lontium website, or contact Nvidia Support.
Register an account and then download the following two files from the NVIDIA section on to your IGX:
lontium_lt6911_flash_update
LT6911UXC_RGB888
It may take several days for Lontium to approve your registration.
Extract the downloaded files on Tegra Linux with:
unrar e lontium_lt6911_flash_update.rar unrar e LT6911UXC_RGB888.rar
Change the updater to be executable:
chmod a+x lontium_lt6911_flash_update
Run the following to power the HDMI in chip and flash it with the firmware file:
v4l2-ctl -d /dev/video0 --stream-mmap & sudo ./lontium_lt6911_flash_update 2 0x2b LT6911UXC_RGB888.bin
Reboot the IGX.
If you do not have v4l2-ctl
, it can be installed with:
sudo apt-get install v4l-utils
You must ensure you have Bootloader Firmware is updated before loading the IGX Base OS image. Checking Bootloader Firmware Version
Installing the IGX OS will erase the content of the SSD (NVMe) on the IGX. Please backup your data.
To install the IGX OS ISO image locally from a UEFI-bootable USB flash drive:
Download the IGX OS ISO image.
Create a bootable installation medium, such as a USB flash drive, that contains the image. See the Creating a Bootable USB Flash Drive by Using BalenaEtcher topic for detailed steps.
You must install Tegra Boot Firmware update first.
Plug the USB flash drive containing the OS image into the IGX Developer Kit.
Connect a monitor and keyboard directly to the IGX system’s iGPU or dGPU based on whether you are using iGPU mode or dGPU mode.
Boot the system. Press F11 when the NVIDIA logo appears to access the boot menu.
Select the USB volume name that corresponds to the inserted USB flash drive and boot the system from that drive.
Continue to the IGX OS ISO Boot Options topic for a description of the GRUB menu options and for instructions on completing the installation process.
Install IGX OS (iGPU)
Install IGX OS (dGPU)
The NVIDIA AI Stack can be installed on IGX-OS as debian packages OR as containers.
Debian Packages
iGPU |
dGPU |
---|---|
|
|
Containers
NVIDIA AI Stack containers include:
Tensorrt Container
Triton Container
Tensorflow Container
PyTorch Container
Holoscan Container
The container supported via NVIDIA AI Enterprise - IGX can be accessed with NVIDIA AI Enterprise - IGX subscription. Please refer to <> on more info on NVIDIA AI Enterprise - IGX.
These publicly hosted versions of the containers for development and evalutaion can be found on below locations on NVIDIA GPU Cloud (NGC):
https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tensorrt/tags
dGPU support starting with 23.12
iGPU support starting with 23.12. iGPU container has a -igpu in the tag
https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tritonserver/tags
dGPU support starting with 23.12
iGPU support starting with 23.12. iGPU container has a -igpu in the tag
https://catalog.ngc.nvidia.com/orgs/nvidia/containers/tensorflow/tags
dGPU support starting with 23.12
iGPU support starting with 23.12. iGPU container has a -igpu in the tag
https://catalog.ngc.nvidia.com/orgs/nvidia/containers/pytorch/tags
dGPU support starting with 23.12
iGPU support starting with 23.12. iGPU container has a -igpu in the tag
https://catalog.ngc.nvidia.com/orgs/nvidia/teams/clara-holoscan/containers/holoscan/tags
dGPU support starting with 1.0.3. dGPU container has a -dgpu in the tag
iGPU support starting with 1.0.3. iGPU container has a -igpu in the tag
Log in to the BMC
Developer Kit Back Panel
Connect your Linux host machine and the developer kit with an Ethernet cable. Use the Ethernet port labeled 5 in the figure above.
Find out which Ethernet adapter on the host machine is connected, then start static IP configuration.
Configure the remote Ubuntu host machine Ethernet adapter as a static node. Thus, the Ubuntu Host can communicate to the BMC over the static IP address
192.168.1.110
. Find the network adapter inifconfig
, which is connected to the RJ45 port of the NVIDIA IGX Orin Developer Kit, then configure it as a static route. The name can beem1
oreno1
or whatever you choose. As an example:ifconfig eno1 192.168.1.1 netmask 255.255.255.0
Test the connection to the BMC default IP address with either an SSH or ping.
ssh root@192.168.1.110
Getting the Tegra UART Port
ssh port 2200
is the default to mux the UART to Tegra.
Set bmc_gpio_n1
to 1
to switch it back to Tegra Linux, if you previously switched to SMCU.
ssh root@192.168.1.110 -p 2200
Getting the SMCU UART Port
ssh port 2200
is default to mux the UART to Tegra. Setting the bmc_gpio_n1
to 0
will switch it to SMCU.
root@mgx:~# gpioset -m exit \`gpiofind "bmc_gpio_n1"\`=0
ssh root@192.168.1.110 -p 2200
Put IGX into Recovery mode
From BMC
root@mgx:~# powerctrl recovery
From IGX OS
Login to IGX OS.
sudo reboot forced-recovery
To check if the IGX is in recovery mode, use the linux command lsusb
and you should see a USB device with PID 7023
. If you are still not able to see this USB device, a power cycle of the IGX is required.
Access all necessary downloads from the NVIDIA Developer Downloads pages: https://developer.nvidia.com/igx-downloads
Creating a Bootable USB Flash Drive using BalenaEtcher
BalenaEtcher https://etcher.balena.io/ currently supports:
Windows
MacOS
Linux
Follow these steps to create the bootable USB Flash drive:
Download and launch the balenaEtcher https://etcher.balena.io/.
Plug the USB flash drive into one of the USB ports of your Windows system.
Click Flash from file, select the iso image you downloaded.
Click Select target, select the USB flash drive you inserted this host.
Click Flash!