운용 환경
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
'Linux,Unix,BSD > Jetson' 카테고리의 다른 글
[jetson] Namespace GstRtspServer not available 오류 해결 방법 (0) | 2023.11.15 |
---|---|
[Jetson] modprobe: FATAL: Module nvidia not found in directory /lib/modules/5.10.104-tegra (0) | 2023.10.17 |
[Jetson] GPU 상태 등을 확인하기 위한 "nvidis-smi"는? (0) | 2023.09.27 |
[Jetson] AGX ORIN 핫스팟(Hot Spot) 설정하기 (0) | 2022.07.09 |
[Jetson] NVIDIA TensorRT 버전 확인하는 방법 (0) | 2022.07.08 |