Nvidia Jetson: Flashing Custom Firmware

From Humanoid Robots Wiki
Revision as of 22:42, 29 August 2024 by Vedant (talk | contribs)
Jump to: navigation, search

Flashing Standard Firmware

SDKManager

SDKManager is available only on Linux, and can be installed here: https://developer.nvidia.com/sdk-manager

  1. Start up the SDKManager
  2. Put the Jetson into recovery mode. For the AGX, this can be done by pressing the recovery button while powering on the device. For the Nano and NX, however, a jumper will be required.
  3. Connect the Target Jetson to the host device and ensure that the target device is recognized.
  4. Follow the instructions on the application, choosing configurations as necessary.


Flashing Custom Firmware (For Jetson 36.3)

Pre-requisites

  1. Please install required packages with the command sudo apt install build-essential bc && sudo apt install build-essential bc.

Downloading the Toolchain

  1. Download the Toolchain binaries located in https://developer.nvidia.com/embedded/jetson-linux.
  2. From there, mkdir $HOME/l4t-gcc, cd $HOME/l4t-gcc and extract the installed toolchain into this newly created directory using the tar command.

Downloading the Kernel

  1. Follow steps 1 to 3 as mentioned in Flashing Standard Firmware.
  2. Proceed to the second step of the SDKManager, where the respective individual dependencies and Jetson Images are listed and are to be installed. Proceed with the installation.
  3. When prompted to actually flash the Jetson, opt to skip. This will install the nvidia folder on your home directory, in which the rootfs, kernel, and bootloader are located.
  4. Navigate to nvidia and cd through its subdirectories, until Linux for Tegra is reached.
  5. Inside Linux for Tegra, cd into the sources folder. It should be unpopulated with the exception of some bash scripts. Run the source_sync.sh script and when asked to specify the release tag of the downloadable sources, enter jetson_36.3. This will install the sources for the respective Jetson version as necessary. To find the release tag of future iterations of the Jetson firmware, please refer to its respective release notes.
  6. Once sources have been synced, the sources directory should now be populated with the required files.

Customizing Kernel

  1. Within source, enter the kernel eventually navigate to the kernel-jammy-src folder and run make menuconfig ARCH=arm64. This will bring up a UI with configurable drivers and peripherals. Select desired configurations and save.
  2. The configurations can be found within a .config file located within the same directory. Copy the contents and locate the defconfig file in ./arch/arm64/configs/, overwriting it with the copied contents.