2025. 1. 3. 20:48ㆍMemorizing/Jetson
이래저래 해봐도 안되어서 다시 JetPack을 설치하려고했다. 원래 있던 OS에서 중요한 파일만 백업하였다.
그 후, sd 카드를 다시 포맷했다.
https://etcher.balena.io/
balenaEtcher - Flash OS images to SD cards & USB drives
A cross-platform tool to flash OS images onto SD cards and USB drives safely and easily. Free and open source for makers around the world.
etcher.balena.io
젯슨에서는 바로 JetPack6을 설치할 수 없기 때문에 JetPack5를 설치한 후, 펌웨어를 업데이트하고 다시 JetPack6을 설치해야한다. 따라서 먼저 JetPack5를 설치해준다.
https://developer.nvidia.com/embedded/jetpack
JetPack SDK
Builds end-to-end accelerated AI applications and supports edge AI development.
developer.nvidia.com
여기서 실수한 게, 아무 생각 없이 JetPack 5.1.1을 설치했는데, 5.1.1에서는 QSPI updater가 없는 것이었다..
아주 친절하게도 공식 홈페이지에서 모든 것을 알려주었다. 우선 JetPack5.1.1을 5.1.3으로 업데이트해주어야한다.
https://docs.nvidia.com/jetson/archives/r36.3/DeveloperGuide/SD/FlashingSupport.html#updating-jetson-orin-nano-devkit-from-jetpack-5-to-jetpack-6
아래 처럼 실행했을 때, 현재 부트로더 버전이 35.5.0이면 올바르게 진행된 것이다.
sudo nvbootctrl dump-slots-info
Flashing Support — NVIDIA Jetson Linux Developer Guide 1 documentation
Flash the image to the target board. Note If root file system of the source device for clone is resized during oem-config, the eMMC configuration file of destination device must be updated accordingly. For example, with jetson-agx-orin-devkit, root file sy
docs.nvidia.com
그 후, QSPI updater를 실행한다. QSPI updater를 실행하고나서 재부팅하면 부팅이 안된다. 그이유는 QSPI의 부트로더와 SD카드의 파일 시스템이 호환이 안되기 때문이다. 부트로더의 버전은 JetPack6인데, 파일시스템은 5.1.3이기 때문. (이것이 바로 JetPack6을 바로 설치하면 부팅이 안되었던 이유..!)
아무튼, 위에서 진행했던 이미지 엣칭 과정을 다시 JetPack6에 대해서 진행해주면 된다.
그 후, 위와 같은 명령어로 부트로더의 버전을 확인했을 때, 36.x.x가 나오면 잘 진행된 것이다.
그 후, 아래의 명령어로 부트로더와 QSPI의 호환성을 매칭해주고 끝내면 된다.
sudo dpkg-reconfigure nvidia-l4t-bootloader
짤막하게 알아본 QSPI와 부트로더
QSPI(Quad SPI)
- QSPI는 직렬 플래시 메모리와 통신하는데 사용되는 인터페이스로, 일반적으로 부트로더, 펌웨어 등 시스템 시작에 필요한 코드를 저장한다.
- Quad는 데이터 전송 라인이 4개임을 의미하며, 이는 단일 SPI 보다 더 빠른 통신을 가능하게한다.
부트로더
- 시스템 전원이 켜질 때, 가장 먼저 실행되는 소프트웨어로 일반적으로 QSPI의 플래시 메모리에 저장되어있다. 시스템이 시작하면 프로세서가 QSPI의 플래시 메모리로부터 부트로더를 읽어서 실행한다.
- 부팅 프로세서가 부트로더를 실행하면 메모리에 운영체제를 올려서 실행하게 된다.
'Memorizing > Jetson' 카테고리의 다른 글
JetPack6에서 Deepsort 사용하기 (1) | 2025.01.04 |
---|---|
JetPack6에서 Opencv 빌드하기 (0) | 2025.01.04 |
error: stat(/usr/local/cuda/lib64/libcudart_static.a): Bad message (0) | 2025.01.03 |
Jetson Orin Nano에 ONNXRUNTIME 환경 설정하기 (1) | 2024.12.21 |
Mac에서 ssh로 젯슨에 접속한 후, x11 forwarding 사용하기 (0) | 2024.12.20 |