Jetson nano AI course Headless mode 요약

Zeung-il Kim
5 min readJan 29, 2021

Nvidia site에서 제공하고 있는 Free AI course 실습을 위한 Headless mode setup 요약

● Jetson nano spec.

CPU : Quad-core ARM A57 @ 1.43 GHz, A57은 Cortex-A57로 Armv8-A 아키텍터로 구현되어 있으므로 64bit 머신임. 
GPU : 128 core maxwell 이니 compute capability는 5.3 되겠다. (참고로 일반 비디오카드 GeForce GTX980 이 2048 core를 갖고 있다.)
Memory : 4GB 64bit LPDDR4(Low Power Double Data Rate), 요새 2GB모델도 나온 것 같음. 애는 5V 배럴잭이 없다.
Jetson nano Developer kit (4GB)

Jetson nano Headless mode : 별도 모니터나 마우스, 키보드를 nano에 연결하지 않고 그냥 USB cable로 PC에 연결해서 nano를 제어하는 모드로 메모리 리소스를 절약 할 수 있다. 또한 ssh로 연결도 가능하다.

$ ssh <username>@192.168.55.1

Headless mode의 경우 nano에 접속하는 IP는 192.168.55.1로 고정임.

● Setup 과정 (Jetson nano 4G kit 기준)

1. DC barrel jack에 전원 연결
2. 30초 정도 기다리면 부팅 완료됨. USB cable을 PC에 연결한다.
3. USB camera를 nano에 연결한다. (/dev/video0가 생성됨)
4. Docker image download를 위해 최초 한번은 nano를 인터넷에 연결해야 함.
5. ssh 로 nano에 접속
6. 코스 자료를 위한 폴더 생성 mkdir -p ~/nvdli-data
7. 다음 명령으로 docker container 실행
sudo docker run --runtime nvidia -it --rm --network host \
--volume ~/nvdli-data:/nvdli-nano/data \
--device /dev/video0 \
nvcr.io/nvidia/dli/dli-nano-ai:<tag>
여기에서 <tag>는 코스 버전과 nano jetPack L4T 버전 조합으로 되어 있음.
<tag> = <course_version>-<L4T_version>

https://ngc.nvidia.com/catalog/containers/nvidia:dli:dli-nano-ai 참조

● Jetpack 버전 및 정보 확인 (내려받은 컨테이터 태그 지정을 위해)

$ dpkg-query --show nvidia-l4t-coreL4T info 확인 --> $ cat /etc/nv_tegra_release또는 $ git clone https://github.com/jetsonhacks/jetsonUtilities
$ cd jetsonUtilities
$ python jetsonInfo.py

예를 들어
$ cat /etc/nv_tegra_release
# R32 (release), REVISION: 4.4, GCID: 23942405, BOARD: t210ref, EABI: aarch64, DATE: Fri Oct 16 19:44:43 UTC 2020
--> release와 REVISION을 조합하면 L4T 버전 확인 가능 : 즉, L4T 32.4.4 는 JetPack4.4.1 임을 알 수 있다. https://developer.nvidia.com/embedded/jetpack-archive 참고

JetPack Release 4.4.1 → Container Tag : v2.0.1-r32.4.4

JetPack Release 4.5 → Container Tag : v2.0.1-r32.5.0

스크립트를 만들어 사용하면 편리하다. $ echo "sudo docker run --runtime nvidia -it --rm --network host \
--volume ~/nvdli-data:/nvdli-nano/data \
--device /dev/video0 \
nvcr.io/nvidia/dli/dli-nano-ai:v2.0.1-r32.4.4" > docker_dli_run.sh
$ chmod +x docker_dli_run.sh
$ ./docker_dli_run.sh
실행하면 컨테이너 안으로 들어가게 됨.

옵션 설명

--runtime nvidia l4t-base 컨테이너 실행 시 NVIDIA 컨테이너 런타임을 사용
-it interactive terminal mode
--rm 종료시 컨테이너 삭제
--network host 컨테이너가 jetson host 네트워크와 포트를 사용하게끔 해줌
--volume 마운팅 디렉토리 설정, 로컬에 만든 nvdli-data 폴더와 컨테이너 폴더인 nvdli-nano/data 간 데이터 동기화
--device 컨테이너에서 비디오 장치 접근을 허용

● JupyterLab Server 에 로그인 하기

192.168.55.1:8888 로 접속, Passwd는 dlinanojupyterLab 에 들어가서 data 폴더에 데이터를 저장하면 로컬의 nvdli-data 폴더와 같이 일관되게 데이터가 유지됨. 컨테이너 닫더라도..

● system status

nvidia-smi can only be used on the desktop environment.For Jetson, please use tegrastats instead:

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

No responses yet

Write a response