JetPack 5.x(L4T)로 초기화 방법
JetPack 5.x에는 MFI(Mass Flash Interface)가 지원되지 않기 때문에 Linux_for_Tegra 폴더를 제공하여 공장 초기화 하는 방법을 지원합니다.
이미지 다운로드 및 압축 해제
Host PC OS
Host PC의 Ubuntu 버전에 맞게 파일을 다운로드 합니다.
Ubuntu 18.04
allai_jcb100_l4t35.2.1.tbz(Jetpack ver 5.1) - https://drive.google.com/file/d/1svbgXT2E1Rl34eqal1pKCkaY0YlMNBbT/view?usp=share_link
allai_jcb100_l4t35.3.1.tbz(Jetpack ver 5.1.1) - https://drive.google.com/file/d/1oYhQinJcDFb-T3OgvKrogkIjXtXUHfxj/view?usp=share_link
allai_jcb100_l4t35.4.1.tbz(Jetpack ver 5.1.2) - https://drive.google.com/file/d/1L8DlnfUPdWtkAND0j6V6hiEXlN8HXVP7/view?usp=drive_link
Ubuntu 20.04
allai_jcb100_l4t35.3.1.U20.04.tbz(Jetpack ver 5.1.1) - https://drive.google.com/file/d/1uq-DxW_Onour4xzuP2zB3RAj4jBFiJeD/view?usp=drive_link
allai_jcb100_l4t35.4.1.U20.04.tbz(Jetpack ver 5.1.2) - https://drive.google.com/file/d/1EB377XFoPVkppFSv_gXHVioGq2YnilwH/view?usp=drive_link
Jetson Orin Nano는 l4t35.3.1 버전 이상을 사용해야 합니다.
tbz2파일명의 의미는 다음과 같습니다.
의미 | 설명 | 비고 |
---|---|---|
allai | 회사명 | |
jcb100 | JCB 모델명 | |
l4535.x.x | 기본 Linux_for_Tegra버전 |
아래와 같이 압축을 해제 하면 Linux_For_Tegra폴더가 생성됩니다.
sudo tar xvpf allai_jcb100_l4t35.x.x.tbz2
압축을 해제하면 모든 이미지는 Linux_for_Tegra로 압축이 해제 됩니다.
cd Linux_for_Tegra
l4t_flash_prerequisites.sh 실행
sudo ./tools/l4t_flash_prerequisites.sh
공장 초기화 모드 진입
USB micro 5pin B Type cable을 PC와 연결합니다.
Power Adapter를 연결합니다.
Force Recovery Button을 누릅니다.
Reset Button을 누르고 떼면, Force Recovery Button을 해제합니다.
초기화 모드 진입 확인
호스트 컴퓨터에서 아래의 명령어를 통해 현재 연결된 SOM을 확인합니다.
lsusb #결과 예시 xxx@xxxxx:~/$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 25a7:fa61 Bus 001 Device 002: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO) Bus 001 Device 062: ID 0955:7423 NVidia Corp. Bus 001 Device 004: ID 8087:0029 Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
공장 초기화 모드 시에 Jetson SOM별 USB ID는 다음과 같습니다.
Bus <bbb> Device <ddd>: ID 0955: <nnnn> Nvidia Corp.
<bbb> 3자리 숫자로 연결된 버스 번호
<ddd> 3자리 숫자로 연결된 장치 번호
<nnnn> 4자리 숫자로 Jetson Module 구별 식별자
식별자는 아래와 같이 정의됩니다.
NNNN | MODEL | 비고 |
---|---|---|
7023 | Jetson AGX Orin | P3701-0000 Developer Kit |
7223 | Jetson AGX Orin | P3701-0004 32GB |
7323 | Jetson Orin NX 16GB | P3767-0000 16GB |
7423 | Jetson Orin NX 8GB | P3767-0001 8GB |
7523 | Jetson Orin Nano 8GB | P3767-0003 & P3767-0005 |
7623 | Jetson Orin Nano 4GB | P3767-0004 4GB |
7e19 | Jetson Xavier NX | P3668-0000 development m |
7e19 | Jetson Xavier NX | P3668-0001 |
7019 | Jetson AGX Xavier | P2888-0001 with 16GB |
7019 | Jetson AGX Xavier | P2888-0004 with 32GB |
7019 | Jetson AGX Xavier Industrial | P2888-0008 |
Jetson Orin NX & Jetson Orin Nano 초기화
아래의 명령어를 입력하면 초기화가 진행이 됩니다.
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" --showlogs --network usb0 p3509-a02+p3767-0000 internal
Jetson Orin NX와 Orin Nano의 초기화 명령어는 동일합니다.
설치가 완료 되면 사용자 등록 화면이 보이며, 사용자 등록이 완료되면 자동 리부팅이 되며, 예상 소요 시간은 약 3분 정도 소요됩니다.
Jetson Orin NX/Orin Nano의 경우 USB를 연결하지 않는 경우 자동으로 공장 초기화 모드가 해제되어 정상 부팅합니다. 따라서 위의 초기화 명령어 입력 전에 반드시 USB 연결 확인이 필요합니다.
아래의 내용은 Jetson Xavier NX만 해당되는 내용입니다.
Jetson Xavier NX
JetPack 4.x 버전을 Flash하지 않은 Jetson Xavier NX의 경우 위와 같이 바로 Flash가 가능합니다.
Jetson Xavier NX의 emmc에 Flash하는 경우
sudo ./tools/kernel_flash/l4t_initrd_flash.sh jetson-xavier-nx-devkit-emmc mmcblk0p1
Jetson Xavier NX에서 NvME에 Flash하는 경우
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c ./tools/kernel_flash/flash_l4t_external.xml --showlogs jetson-xavier-nx-devkit-emmc external
JetPack 4.x 버전이 설치된 경우
기존에 사용하는 Jetson xavier nx는 JetPack 5.x으로 초기화 하기 위해서는 기존에 사용하는 Bootloader를 cboot에서 UEFI로 변경 해주어야 합니다.
동작중인 Jetson에 다음의 TOOL을 설치합니다.
sudo apt-get install mtd-utils
Linux_for_Tegra/tools폴더에서 UEFI 이미지 생성하기
sudo ./l4t_generate_jetson_xavier_nx_qspi_images.sh
수행결과
Writing gpt_secondary_3_0.bin (parittion: secondary_gpt) into /home/jungsuk/Workspace/tegra/jcb_orin/Linux_for_Tegra/bootloader/jetson-xavier-nx-devkit-emmc.spi.img sha1 checksum matched for /home/jungsuk/Workspace/tegra/jcb_orin/Linux_for_Tegra/bootloader/signed/gpt_secondary_3_0.bin Writing /home/jungsuk/Workspace/tegra/jcb_orin/Linux_for_Tegra/bootloader/signed/gpt_secondary_3_0.bin (16896 bytes) into /home/jungsuk/Workspace/tegra/jcb_orin/Linux_for_Tegra/bootloader/jetson-xavier-nx-devkit-emmc.spi.img:33537536 Offset is not aligned to K Bytes, no optimization is applied dd if=/home/jungsuk/Workspace/tegra/jcb_orin/Linux_for_Tegra/bootloader/signed/gpt_secondary_3_0.bin of=/home/jungsuk/Workspace/tegra/jcb_orin/Linux_for_Tegra/bootloader/jetson-xavier-nx-devkit-emmc.spi.img bs=1 skip=0 seek=33537536 count=16896 16896+0 records in 16896+0 records out 16896 bytes (17 kB, 16 KiB) copied, 0.0392455 s, 431 kB/s Reach the end of the SPI device Generated image for SPI at Linux_for_Tegra/bootloader/jetson-xavier-nx-devkit-emmc.spi.img
정상적으로 수행되었다면 Linux_for_Tegra/bootloader 폴더에 img파일이 생성됩니다.
img파일을 Jetson으로 외부 메모리를 이용하여 복사합니다.
CBOOT을 지우기
sudo flash_eraseall /dev/mtd0
UEFI로 수정
sudo flashcp jetson-xavier-nx-devkit.spi.img /dev/mtd0
Jetson Xavier NX의 emmc에 Flash하는 경우
sudo ./tools/kernel_flash/l4t_initrd_flash.sh jetson-xavier-nx-devkit-emmc mmcblk0p1
Jetson Xavier NX에서 NvME에 Flash하는 경우
sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c ./tools/kernel_flash/flash_l4t_external.xml --showlogs jetson-xavier-nx-devkit-emmc external