Linux,Unix,BSD/Jetson

[Jetson] DeepStream-6.2 Sample 구동 실패/성공

채윤아빠 2023. 9. 26. 10:12
728x90
반응형

운용 환경

DeepStream-6.2 Sample 구동 실패한 환경에 대하여 정리해 둡니다. (실패는 성공의 어머니 ㅠ.ㅠ)

Host PC 준비

  • OS: Ubuntu 22.04

Jetson 구동환경

  • Jetson : Orin NX 16GB
  • OS : R35.2.1
  • Docker

Tegra Linux 이미지 준비하기 : R35.4.1 / R35.2.1

다음은 현재 Tegra Linux 가장 최신 버전인 R35.4.1을 준비하는 과정입니다.

mkdir -p ~/work/L4T_r35.4.1
cd ~/work/L4T_r35.4.1

wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v4.1/release/jetson_linux_r35.4.1_aarch64.tbz2 ; \
wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v4.1/release/tegra_linux_sample-root-filesystem_r35.4.1_aarch64.tbz2

tar xf jetson_linux_r35.4.1_aarch64.tbz2 ; \
cd Linux_for_Tegra/rootfs/ ; \
sudo tar xpf ../../tegra_linux_sample-root-filesystem_r35.4.1_aarch64.tbz2 ; \
cd .. ; \
sudo ./apply_binaries.sh

위 부분에서 Tegra Linux 버전만 변경하여 이미지를 준비하시면 됩니다.

예를 들어, R35.2.1을 준비할 경우에는 다음과 같이 하시면 됩니다.

mkdir -p ~/work/L4T_r35.2.1
cd ~/work/L4T_r35.2.1

wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v2.1/release/jetson_linux_r35.2.1_aarch64.tbz2 ; \
wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v2.1/release/tegra_linux_sample-root-filesystem_r35.2.1_aarch64.tbz2

tar xf jetson_linux_r35.2.1_aarch64.tbz2 ; \
cd Linux_for_Tegra/rootfs/ ; \
sudo tar xpf ../../tegra_linux_sample-root-filesystem_r35.2.1_aarch64.tbz2 ; \
cd .. ; \
sudo ./apply_binaries.sh

Jetson Linux Flashing

R35.4.1 적용 실패기

다음과 같은 순서로 Jetson Orin NX 16G 모듈에 적용해 보았으나, 정상적으로 부팅이 되지 않았습니다.

mkdir -p ~/work/L4T_r35.4.1
cd ~/work/L4T_r35.4.1

wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v4.1/release/jetson_linux_r35.4.1_aarch64.tbz2 ; \
wget https://developer.nvidia.com/downloads/embedded/l4t/r35_release_v4.1/release/tegra_linux_sample-root-filesystem_r35.4.1_aarch64.tbz2

tar xf jetson_linux_r35.4.1_aarch64.tbz2 ; \
cd Linux_for_Tegra/rootfs/ ; \
sudo tar xpf ../../tegra_linux_sample-root-filesystem_r35.4.1_aarch64.tbz2 ; \
cd .. ; \
sudo ./apply_binaries.sh

다음과 같이 "flash.sh" 스크립트를 이용해 보았으나, 정상적으로 적용되지 않았습니다. (후기: flash.sh 스크립트는 Dev-kit이 제공되는 모듈의 eMMC에 Jetson Linux를 플래싱할 때 적용합니다. Orin NX 16G는 정식 Dev kit이 없고 별도의 캐리어 보드에 장착하여 플래싱을 진행하므로 flash.sh 스크립트대신 l4t_initrd_flash.sh 스크립트를 활용합니다.)

# Orin NX board name = p3509-a02+p3767-0000
sudo ./flash.sh p3509-a02+p3767-0000 nvme0n1p1

다음과 같이 "l4t_initrd_flash.sh" 스크립트로 플래싱을 시도하였으나, 정상적으로 부팅되지 않았습니다. (후기: R35.4.1 이라면 됐을 수도 있었을 텐데... R35.2.1로 하여 문제가 되었던 것 같습니다.)

# Orin NX board name = p3509-a02+p3767-0000
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
  -c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" \
  --network usb0 p3509-a02+p3767-0000 internal

캐리어 보드를 구매한 곳에서 제공하는 스크립트를 참고하여 다음과 같이 수행하여 보았습니다.

https://www.waveshare.com/wiki/JETSON-ORIN-NX-16G-DEV-KIT 참조

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
 -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" \
 -c tools/kernel_flash/flash_l4t_external.xml \
 --showlogs --network usb0 p3509-a02+p3767-0000 internal

https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/FlashingSupport.html 참조

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device sda1 \
 -p "-c ./bootloader/t186ref/cfg/flash_t234_qspi.xml" \
 -c ./tools/kernel_flash/flash_l4t_external.xml --showlogs \
 --network usb0 jetson-orin-nano-devkit external
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device sda1 \
 -p "-c ./bootloader/t186ref/cfg/flash_t234_qspi.xml" \
 -c ./tools/kernel_flash/flash_l4t_external.xml --showlogs \
 --network usb0 p3509-a02+p3767-0000 external

여러 번의 실패 끝에 Jetson Linux 플래싱에는 성공했습니다만, 최신 버전도 아니고 하여 R35.4.1로 재도전하였습니다.


NVMe 추가 장착 후, OS 초기화

screen 패캐지 설치

sudo apt-get update
sudo apt-get intall -y screen

패캐지 업데이트

screen -S a
sudo apt-get upgrade -y
sudo rm -f /var/cache/apt/archives/*.deb

여분의 파티션을 "/home"으로 추가하기

sudo fdisk /dev/nvme0n1

Command (m for help): n
Partition number (15-128, default 15):
First sector (116944680-250069646, default 116944896):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (116944896-250069646, default 250069646):

Created a new partition 15 of type 'Linux filesystem' and of size 63.5 GiB.

Command (m for help): w
The partition table has been altered.
Syncing disks.

sudo mkfs.ext4 /dev/nvme0n15

sudo mv /home /home.old
sudo mount /dev/nvme0n15 /home

참고자료

https://www.waveshare.com/wiki/JETSON-ORIN-NX-16G-DEV-KIT ; JETSON-ORIN-NX-16G-DEV-KIT Waveshare Wiki
https://developer.nvidia.com/embedded/jetson-linux ; Jetson Linux
https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/index.html ; Jetson Linux Developer Guide
https://docs.nvidia.com/jetson/archives/r35.4.1/DeveloperGuide/text/SD/FlashingSupport.html ; Flashing Support