logo

Nvidia Jetson 36.2 Developer Preview on Turing PI

Dec 30, 2023

I have finally received my Turing PI; I will post more about it on my Blog, especially in combination with Synology. But for now, I will not keep any of you waiting. I solved installing Nvidia Jetson Linux 36.2 Developer Preview on an Orin NX 16 GB on a Turing PI carrier board. Please note that the fix included in this post relates to Waiting for target to boot-up, will probably also work in your case when you are not using a Turing PI or even an Orin NX.

In December 2023, Nvidia released Nvidia Jetson Linux 36.2.

Nvidia Release Page: https://developer.nvidia.com/embedded/jetson-linux-r362

Requirements

  • Ubuntu 22.04 Host Machine (Bare Metal)
  • Get a USB-A > USB-A 2.0 Cable
  • Connect Host to Turing PI on the USB_OTG Port (version Turing PI v2.4, this is the vertical USB port next to the HDMI port)

Preparation

Update System

sudo apt update
sudo apt upgrade -y
sudo apt dist-upgrade -y
sudo apt install -y qemu-user-static nano openssh-server openssh-client
sudo reboot

Prepare Flash

mkdir ~/nvidia
cd ~/.nvidia

Download BSP & RootFS

wget -O bsp.tbz2 -L https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v2.0/release/jetson_linux_r36.2.0_aarch64.tbz2

wget -O rootfs.tbz2 -L https://developer.nvidia.com/downloads/embedded/l4t/r36_release_v2.0/release/tegra_linux_sample-root-filesystem_r36.2.0_aarch64.tbz2

Extract BSP & RootFS

tar -xvpf bsp.tbz2
sudo tar -xvpf rootfs.tbz2 -C Linux_for_Tegra/rootfs/

Patch Firmware (Turing PI)

This step is required on Turing PI because it does not have a EEPROM.

sed -i 's/cvb_eeprom_read_size = <0x100>/cvb_eeprom_read_size = <0x0>/g' Linux_for_Tegra/bootloader/generic/BCT/tegra234-mb2-bct-misc-p3767-0000.dts

Prepare Firmware

cd Linux_for_Tegra
sudo ./apply_binaries.sh  
sudo ./tools/l4t_flash_prerequisites.sh

Prepare Username, Password, Hostname

sudo ./tools/l4t_create_default_user.sh --accept-license -u <username> -p <password> -a -n <hostname>

Example

sudo ./tools/l4t_create_default_user.sh --accept-license -u ubuntu -p turing -a -n node4

Patch nv_enable_remote.sh

Now we are going to patch nv_enable_remote.sh this patch will fix the Waiting for target to boot-up. If you are experiencing this error, this patch might also work for you.

nano tools/kernel_flash/initrd_flash/nv_enable_remote.sh

Press: CTRL + SHIFT + _ this will give you a Goto line menu. Enter: 222. This will jump you straight to line 222.

The cursor will now be on an empty line between the following to lines: the | simulates your cursor.

        echo "${cfg_str:1}" > "${cfg}/strings/0x409/configuration"
|
        echo "${udc_dev}" > UDC

Now on the empty line insert following:

echo on > /sys/bus/usb/devices/usb2/power/control

Result:

        echo "${cfg_str:1}" > "${cfg}/strings/0x409/configuration"
        echo on > /sys/bus/usb/devices/usb2/power/control
        echo "${udc_dev}" > UDC

Save the file with CTRL + X

Prepare Turing PI for Flashing

Log into the BMC with SSH and run the following commands, replace {NODE} with the Node ID you want to flash.

tpi power off
tpi usb -n {NODE} flash
tpi power -n {NODE} on

Now, on the Host machine, you are going to use to flash the module, run lsusb Check that the Nvidia Module is now in recovery flash mode. The lsusb the command will be a device called NVIDIA Corp. APX. When you see this, it means you have successfully put your module into flash mode.

Flash Firmware

Run the following command to flash the module; please note that the command provided here assumes you are going to flash to an NVMe drive. Furthermore, the command provided also includes the option --erase-all to clear any previous data from the drives.

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
  -c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" \
  --showlogs --network usb0 --erase-all jetson-orin-nano-devkit internal

Please get some coffee will the flashing finishes.

Post Flashing Firmware

!IMPORTANT! Do not forget these steps.

After you are done flashing, the Turing PI still keeps the module in recovery/flash mode. We need to turn off the module and boot it normally.

Log into your newly flashed node with SSH and turn it off with:

sudo shutdown -h now

Now log into the BMC and reset the USB to normal mode.

tpi power -n {NODE} off
tpi usb -n {NODE} device
tpi power -n {NODE} on

Your Nvidia will now boot up normally with Jetson Linux 36.2 Developer Preview installed.

Tags