본문 바로가기

NVIDIA Jeston/Jetson BSP

메시지브로커를 통한 jetson-stats 퍼블리싱 ZeroMQ 를 활용한 jetson-stats message publishing jetson-stats 는 Jetson 하드웨어 상태를 진단할 수 있는 좋은 도구 이다. 터미널에서 jetson-stats 명령어 또는, jtop 으로 시스템 정보를 확인할 수 있다. 하지만, 터미널이 아닌 다른 Host PC 에서 Jetson 을 진단하는 방법이 필요한 use case 가 있다. ZeroMQ 는 기본기능의 충실한 message broker 라이브러리 이다. ZeroMQ 를 이용해서 jetson-stats 데이터를 네트워크로 publising 하는 예제를 만들어보자! jetson-stats message publishing 구현 테스트 환경 NVIDIA Jetson NX devkit Jetpack 4.6 (L.. 더보기
Jetson Reverse SSH 터널링 엣지컴퓨팅, 클라우드 연결되다 다양한 장소에 설치된 엣지디바이스의 상태를 모니터링, 소프트웨어 업데이트 등을 해야할 경우가 있다. 엣지디바이스와 서버 사이의 SSH 채널을 생성하는 방법을 Jetson 의 사례로 소개한다. NVIDIA Jetson 리버스 터널링 Jetson 과 lightsail 의 연결 Jetson 과 같은 엣지디바이스의 상태를 모니터링, 소프트웨어 업데이트를 위한 서버 연결 구조를 설명한다. 다음 그림은 사설네트워크의 Jetson 과 인터넷의 Lightsail 의 연결을 보여준다. SSH reverse turnneling 을 통해 Jetson 은 클라우드 Server에 접속할 수 있다. 사용자는 클라우드 Server 를 통해 Jetson 에 접속 할 수 있다. 테스트환경 AWS Ligh.. 더보기
젯슨 부팅 과정에서 Power Model 고정하기 NVIDIA Jetson 부팅 과정에서 Power Model 고정하기 엔비디아 Jetson 은 nvpmodel 명령어를 통해 여러 Power Model 을 사용할 수 있다. 전원 또는 발열 때문에 Power Model 을 고정해야한다면 nvpmodel.conf 을 수정하면 되나, User 가 임의로 변경하는 경우 등. 변수가 있기 때문에, 보다 확실하게 부팅 과정에서 Power Model 고정하는 방법을 정리한다. 부팅 시, Power Model 설정 테스트 환경 NVIDIA Xavier NX Jetpack 4.6 (L4T R32.6.1) nvpmodel.service 서비스 Jetpack 을 설치하면, 부팅 과정에서 systemd 를 이용한 nvpmodel 서비스가 실행된다. 이 서비스는 /etc/nv.. 더보기
젯슨 NX Xavier NGC 컨테이너 개발환경 Jetson NX Xavier NGC 개발환경 엔비디아는 Jetson 의 SDK 개발환경을 NGC 를 통해 docker container 형태로 배포하고 있다. 배포되고 있는 container 에는 Linux for Tegra, CUDA, TensorRT, deepstream 등 엔비디아에서 제공하는 SDK 을 포함하고 있다. 이 포스팅은 Jetson NX Xavier 에서 NGC 를 통해 docker container 를 받고 실행하는 기본적인 예제를 다른다. Jetson NX Xavier (또는 Nano) production module 의 경우, 내부 eMMC 공간 (16G) 가 부족하기 때문에, 외부 SDCARD 를 이용해서, docker container 개발환경을 만들어보자. STEP1. Xa.. 더보기
Jetson 로깅 시스템, Rsyslogd Jetson 로깅 시스템, Rsyslogd Jetpack 4.6 기준으로 Linux for Tegra 에 적용되어 있는 로깅 시스템, Rsyslogd (Rocket-fast system for log processing) 에 대해서 정리한다. Jetson 로깅 시스템 설정 Jetpack 4.6 기준으로 Linux for Tegra 에 pre-built 된 로깅 시스템은 rsyslog 이다. (syslog.serivce 의 이름으로) systemd service 형태로 background 에서 이미 실행되어 있다. $ sudo systemctl status syslog.service ● rsyslog.service - System Logging Service Loaded: loaded (/lib/syste.. 더보기
Jetson Nano 이미지 백업과 재사용 엔비디아 Jetson Nano 이미지 백업과 재사용 매번 Jetson Nano 에 L4T, Jetpack 등 개발에 필요한 소프트웨어 패키지를 설치하기는 시간이 많이 소모 된다. 하나의 레퍼런스 Nano 보드에 필요한 패키지를 모두 설치하고 root file system 을 만들어둔다. 나중에 재설치가 필요할 경우, 백업한 root file system 으로 쉽게 복원하도록 한다. Jetson Nano 이미지 백업과 재사용하기 테스트 환경 NVIDIA Jetson Nano devkit (16G emmc module) Jetpack 4.6 (L4T R32.6.1) X86 Host PC (Ubuntu 18.04) 이미지 쓰기 Host PC 에 작업 디렉토리를 생성하고, 필요한 파일을 다운로드하고 압축해제 한.. 더보기
[Jetson] nvme ssd 를 루트파일시스템으로 사용하기 Jeston 에서 nvme ssd 를 루트파일시스템으로 사용하기 NVIDIA Xavier NX devkit (emmc module) 의 내장 emmc disk 공간은 16GB 이고, root file system 용도로 사용할 수 있는 공간은 약 14GB 이다. emmc module 의 disk 공간이 부족하기 때문에 root file system 을 SD 카드 또는 nvme ssd 로 이동할 수 있다. NVIDIA Xavier NX devkit 에서 jetsonhack 에서 제공하는 script 를 사용하여 root file system 을 nvme ssd 로 이동한다. nvme ssd 루트파일시스템 테스트 환경 NVIDIA Xavier NX devkit (16G emmc module) Jetpack .. 더보기
[Jetson] JTOP 시스템 프로파일러 도구 Jetson 을 위한 JTOP 시스템 프로파일러 jtop 으로 실행되는 jetson-stats 는 NVIDIA Jetson (Orin 시리즈, Xavier 시리즈, Nano, TX1, TX2) 를 프로파일링, 모니터, 제어 하기 위한 패키지이며, 모든 NVIDIA Jetson 에코시스템을 지원한다. Jetson 시스템을 프로파일링, 제어하는 가장 좋은 툴 테스트 환경 NVIDIA Xavier NX devkit Jetpack 4.6 (L4T R32.6.1) jetson-stats 설치 NVIDIA Xavier NX devkit 에 python-pip 가 설치된 상태에서, 다음과 같이 pip 명령으로 jetson-stats 패키지를 설치한다. $ sudo -H pip install -U jetson-stat.. 더보기
[Jetson] Xavier NX 방열팬 제어 NVIDIA Jetson Xavier NX 방열팬 제어 고온에서 SoC 의 열 관리를 위해 NVIDIA Jetson 에서는 방열팬을 제어하는 인터페이스를 제공한다. NVIDIA Jetson Xavier NX 의 방열팬 속도를 제어를 해보자. NVIDIA Jetson Xavier NX 방열팬 제어하기 NVIDIA Jetson Xavier NX 는 방열팬을 제어할 수 있는 인터페이스를 제공한다. 팬 제어하는 방법은 Jetpack (L4T) 버전에 따라서 다를 수 있다. (파일 시스템 내의 device node 의 위치가 상이) 테스트 환경 NVIDIA Jetson Xavier NX + JetPack 4.6 (L4T R32.6.1) FAN 제어 관련 device node 위치 NVIDIA Jetson Xavi.. 더보기
[Jetson] V4L2 C++ 로 카메라 정보 확인하기 V4L2 C++ 로 카메라 정보 확인하기 하나의 임베디드 시스템에 여러대의 카메라가 연결될 경우, 각각의 카메라의 node 를 구별해야하는 경우가 있다. Video4Linux 에서 제공하는 utils 기능으로 Jetson 에 연결된 카메라의 정보를 읽는 C++ 예제를 실행해본다. Jetson V4L2 util 명령으로 카메라 정보 얻기 테스트 환경 Jetson Xavier NX + JetPack 4.6 (L4T R32.6.1) 커멘드라인 명령 터미널 커멘드 라인 명령을 사용하기 위해서는 apt 를 이용해서 v4l-utils 를 설치해야한다. $ sudo apt-get install v4l-utils 터미널 커멘드 라인에서 v4l2-ctl 명령어로 연결된 카메라를 list-up 할 수 있다. 현재 NX 에.. 더보기
[Jetson] QtCAM 카메라 어플리케이션 QtCAM 카메라 어플리케이션 대표적인 Linux 웹캠 어플리케이션인 QtCAM은 e-consystems 에서 개발한 오픈 소스 Linux 웹캠 소프트웨어이다. QtCAM 카메라 소프트웨어 응용 프로그램은 Linux UVC 드라이버가 지원하는 장치에서 비디오를 캡처하고 쉬운 사용자 인터페이스를 제공하며 V4L2 호환 장치와 함께 작동한다. QtCAM 애플리케이션 컨트롤은 Qt Quick 그래픽 인터페이스를 기반으로 한다. 사용자는 최대 6대의 카메라를 연결하고 동시에 비디오를 스트리밍할 수 있다. 이 오픈 소스 웹캠 소프트웨어의 초기 배포는 e-consystems 의 모든 USB 카메라를 지원했으며 업데이트 버전(v4.0.1)은 e-consystems 에서 개발한 카메라 뿐만 아니라 타사 카메라도 지원한.. 더보기
[Jetson] GPIO PWM 예제 엔비디아 Jetson GPIO PWM 예제 구현 Jetson GPIO PWM 활성화 테스트 환경 Jetson Nano (B01) + JetPack 4.6 Jetson Nano 에서 하드웨어 PWM 를 사용하려면 Pinmux 를 수정해야한다. 다행히도 Jetpack 에서 jetson-io 라는 도구를 제공해주기 때문에 jetson-io 통해서 PWM 을 사용할 수 있는 dtb 를 생성하고 업데이트 할수있다. 우선, Jetson 에서 다음의 명령을 실행한다. sudo /opt/nvidia/jetson-io/jetson-io.py 메뉴에서 Configure Jetson 40pin Header > Configure header pins manually 를 선택하여, 다음과 같이 pwm0(32), pwm(33) .. 더보기
[Jetson] AX720 Jetpack SDK 설치하기 AX720 (AGX Xavier) Jetpack SDK 설치하기 엔비디아 SDK Manager 를 사용하여 Jetpack 설치하기 Jetpack 설치 테스트환경 X86 Host PC with Ubuntu 18.04 Jetpack 설치 하기 다음 NVIDIA SDK Manager 사이트를 방문하여 SDK Manager를 설치 https://developer.nvidia.com/nvidia-sdk-manager NVIDIA SDK Manager Everything You Need to Set Up Your Development Environment NVIDIA SDK Manager provides an end-to-end development environment setup solution for NVIDI.. 더보기
[Jetson] python 실행 중 Illegal instruction 오류 Illegal instruction on Jetson platform python 실행 중 Illegal instruction 오류 발생 Illegal instruction 현상 Jetson 에서 임의의 파이선 프로그램 실행 시, py 코드에 들어가지도 못하고 Illegal instruction 이 발생되는 문제가 있었다. $ python3 abc.py Illegal instruction (core dumped) 이 문제의 원인은 다양할 수 있다. 예를 들어 /sys/device 에서 cpuid 를 읽으려는 시도 등에서 발생할 수 있는데, 이 경우에는 OPENBLAS_CORETYPE=ARMV8 선언으로 해결될 수 있다. export OPENBLAS_CORETYPE=ARMV8 python 매번 터미널에서 .. 더보기
[Jetson] Jetpack 4.6 AGX Xavier 커스텀 커널 적용 JETPACK 4.6 에서 Jetson AGX Xavier 커스텀 커널 사용하기 Jetson AGX Xavier 커스텀 커널 적용 오류 JETPACK 4.6 커스텀 커널 문제 JETPACK SDK 4.6 RELEASE PAGE 에 따르면, CBoot 부트로더에 NVMe 디바이스 드라이버가 추가 되었다고 한다. 드라이버가 추가된 이유은 NVMe 을 통한 부팅을 지원하기 위함이다. NVMe driver added to CBoot for Jetson Xavier NX and Jetson AGX Xavier series. Enables loading kernel, kernel-dtb and initrd from the root file system on NVMe. 하지만, 이 업데이트로 인하여 JETPACK S.. 더보기
Aetina AX720 (AGX Xavier) 이미지 백업 엔비디아 Jeston AGX Xavier 백업 및 복원 엔비디아 Jetson 에 필요 소프트웨어를 설치하고 설정하는 많은 시간이 소요된다. 특히 양산을 전제로 할 경우, 개발과 출시 과정에서 전체소프트웨어를 이미지화 하는 방법이 필요하다. 엔비디아 Linux 4 Tegra BSP 에서 flash 스크립트를 통해 Jetson 의 소프트웨어를 백업하고 복원하는 기능을 제공한다. Jetson AGX Xavier 이미지 백업, 복원 테스트 환경 엔비디아 젯슨 AGX 자비에 (Aetina AX720) Jetpack 4.6 (L4T R32.6.1) X86 Host PC (Ubuntu 18.04) Jetson 이미지 백업하기 flash 스크립트를 통해 Jetson 의 소프트웨어를 백업한다. 아래의 명령어는 eMMC .. 더보기