ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • jetson orin nano ubuntu 22.04 설치 (JetPack 6)
    SLAM 2024. 8. 5. 19:04

    jetson에 ubuntu를 설치하기 위해선 ubuntu가 설치된 host pc가 필요했던 것 같으나 이젠 sd 카드만으로 설치가능하다고 한다.

    jetson 공식문서를 보면서 설치한 과정을 한글로 기록하고 다른 분들에게도 도움이 되었으면 한다. 

    https://developer.nvidia.com/embedded/learn/get-started-jetson-orin-nano-devkit

     

    JetPack6.0은 ubuntu 22.04, TensorRT 8.6.2, DLA 3.14, cuDNN 8.9.4, CUDA 12.2.1 등을 포함하고 있다.

     

     

    목표: jetpack6 설치

    사전 준비물 : usb 키보드, usb마우스, DP케이블과 모니터, SD카드, SD카드 어댑터(PC에 연결하기 위해 필요)

     

    0. SD 카드 준비

    가지고 있던 sd카드에는 이미 ubuntu 20.04가 설치되어 있었다. 그래서 포맷을 진행해야 했다.

    ( balenaEtcher 소프트웨어는 sd카드를 알아서 덮어쓰기 때문에 굳이 sd카드를 포맷할 필요는 없었다. 나중에 알게된 사실이라서, 포맷방법은 기록용으로 남겨둔다. 0.SD카드 준비는 건너뛰고 1.펌웨어 업데이트부터 보면 된다.)

     

    (1) sd카드 어댑터를 사용해서 ubuntu 환경의 host pc에 sd 카드를 연결한다.

    (2) 터미널에서 아래 명령어를 입력하여 sd카드의 크기와 이름을 확인한다.

    sudo fdisk -l

    sd카드의 이름은 dev/sda 이고 크기는 256gb인데 15개의 파티션으로 쪼개져 있는 것을 알 수 있다. 

     

    (3) umount 수행. 

    마운트된 파일 시스템을 포맷하면 파일 시스템에 오류가 발생할 수 있기 때문에 언마운트를 진행한다고 한다.

    sudo umount /dev/sda
    
    # 모든 sda가 제대로 언마운트 되었는지 확인
    # 아래 명령어는 현재 마운트된 모든 파일 시스템을 나열한다.
    df -h

    (4) fdisk 진입하여 기존의 파티션 삭제

    command에 d 를 입력한다. delete를 의미하고, 몇 번 파티션을 삭제할 지를 선택하는데, enter를 누르면 디폴트 번호의 파티션이 알아서 삭제된다. 15개의 파티션이 있으므로 d + enter를 15번 반복한다.

     

    (5) 새로운 파티션 생성하기

    n (new)를 입력해서 파티션을 생성한다. first sector와 last sector는 모든 용량을 사용하기 위해 default 값을 사용하면 된다.

     

    (6) 변경된 sd카드 파티션을 저장하기 

    w (write)을 입력하여 저장한다.

    파티션 이름이 변경될 수도 있으므로 다시 한 번 확인한다.

    sudo fdisk -l

     

    (7) 선택한 포맷형식으로 포맷하기

    포맷형식은 FAT32, exFAT 등이 있는데, FAT32는 파일 하나당 이동 및 복사할 수 있는 최대 파일 용량이 4GB라는 점이다. 

    exFAT은 안정성에 취약하다. usb 안전 제거를 무시하고 뽑았을 때 파일 손상을 일으킬 수도 있다는 의미다.

    # FAT32로 포맷
    sudo mkfs.vfat -F 32 /dev/sdX1
    
    # exFAT로 포맷
    sudo apt-get install exfat-utils
    sudo mkfs.exfat /dev/sda1

     

     

    1. 펌웨어 업데이트.

    orin에 파워를 연결하면 자동으로 작동하기 때문에, 마우스와 usb 타입의 키보드를 미리 연결해두고 DP 케이블로 모니터에 연결해둔 상태에서 파워를 연결한다. NVIDIA logo boot splash screen이 떴을 때 esc를 연타해서 UEFI setup menu screen에 들어간다.

    세 번째 라인이 jetson UEFI firmware의 번호이다. ("Not specified"라는 문구 바로 밑에 있는 번호이다.)

    펌웨어가 36.0보다 작으면 JetPack 5.1.3을 먼저 설치하고나서 JetPack6.0을 설치할 수 있다.

    (

     

    1-1 Balena Etcher 설치

    mac이나 linux에서 sd카드에 flash image를 설치하기 위해서는 Balena Etcher 소프트웨어가 필요하다. 

    Balena Etcher 소프트웨어부터 설치하고자 https://github.com/balena-io/etcher/releases 에서 ubuntu에 설치 가능한 deb 파일을 다운 받았다.

     

    파일을 마우스 오른쪽 버튼으로 클릭한 후 open with other application선택하면 아래와 같이 application 선택창이 뜬다.

    software install를 선택 후 select 버튼을 누른다.

     

     

     

    1-2. flash 이미지를 balenaEtcher를 통해 sd 카드에 설치하기

    설치가 완료되고 실행시켜보자.

    terminal 에서 balena-etcher 명령어를 입력하면 실행된다.

    혹은 application 목록에도 추가되었으므로 icon을 더블클릭하여 실행시킬 수도 있다.

    JetPack 5.1.3 image 를 다운 받아서 압축을 풀면 이미지 파일을 받을 수 있다. (혹은 공식 홈페이지 링크에서 다운받자.)

     

    flash from file에서 sd-blob.img 파일을 선택하고,

    select target에서 SD 카드를 선택해준 후

    flash 버튼을 눌러서 진행한다.

     

    * Balena Etcher는 이미지 파일을 압축 해제하고, 저장 장치에 적절한 형식으로 데이터를 기록한다.

    더보기

    "Flash"의 의미

    • 플래시 메모리: 저장 장치가 플래시 메모리를 사용하는 경우, 이미지를 플래시 메모리에 기록하는 작업을 의미합니다.
    • 데이터 기록: "Flash"는 데이터를 저장 장치에 직접 기록하는 행위를 의미하며, 일반적으로 USB 드라이브, SD 카드와 같은 장치에 운영 체제나 시스템 이미지를 설치하는 데 사용됩니다.

    - ChatGPT -

     

    1-3. jetson orin nano에 jetpack5.1.3 설치하기

    sd카드를 orin에 삽입한 후 전원을 넣으면 아래 사진처럼 system configuration이 보이고, 쭉쭉 작성해주면된다.

     

    중간에 keyboard layout을 설정할 때는 한글, 101/104 로 설정해준다.

     

    모두 작성하고나서 터미널 창에 아래 명령어를 입력해보면 ubuntu 20.04가 설치된 것을 확인할 수 있다.

    lsb_release -a

     

    system configuration을 완료한 후 재부팅을 하면 아래와 같이 UEFI 펌웨어가 자동으로 업데이트된다.

    업데이트가 완료되고 터미널에서 아래 명령어로 UEFI 펌웨어를 다시 한 번 확인해보자

    sudo nvbootctrl dump-slots-info

    출력이 아래와 같다면 jetpack5.1.3이 제대로 설치된 것이다.

    Current version: 35.5.0
    Capsule update status: 0
    Current bootloader slot: A
    Active bootloader slot: A
    num_slots: 2
    slot: 0,             status: normal
    slot: 1,             status: normal

     

    마지막으로 nvidia-l4t-jetson-orin-nano-qspi-updater 을 설치하면 JetPack6.0을 설치할 준비가 완료된다.

    sudo apt-get install nvidia-l4t-jetson-orin-nano-qspi-updater

    이 부분이 중요하다. 위 패키지를 제대로 설치했다면 재부팅시 os에 진입하지 못하고 검은 화면이 보일 것이다. 

    updater를 설치하고 재부팅한 후 종료 및 전원을 뽑은 후 sd 카드를 제거해준다.

     

    1-4 JetPack 6.0을 sd 카드에 설치

    5.1.3을 설치했던 위의 과정과 똑같다. balenaEtcher는 sd 카드 위에 덮어 쓰기 때문에 sd 카드를 따로 초기화할 필요 없이 바로 JetPack 6.0을 설치해준다.

     

    https://developer.nvidia.com/embedded/jetpack-sdk-60 사이트에서 초록색으로 표시된 버튼을 클릭하면 파일을 다운받을 수 있다. zip파일 다운이 완료되고 압축을 풀어주면 이미지 파일을 얻을 수 있다.

     

    압축을 풀고나면 jp60-orin-nano-sd-card-image라는 폴더 안에 sd-blob.img 파일이 생긴다. 이를  balenaEtcher를 이용해서 SD카드에 똑같이 설치해준다. (설치가 완료되는데 40~50분 걸렸던 것 같다.)

     

    이후 과정도 똑같다. SD 카드를 jetson orin nano에 삽입하고 전원을 키면 알아서 설치된다.

     

    마찬가지로 제대로 설치되었는지 확인한다.

    # Description: ubuntu 22.04.4 LTS
    lsb_release -a 
    
    # Current version: 36.3.0
    sudo nvbootctrl dump-slots-info

     

    아래 글에서 jetson orin nano에 ros2 humble과 azure kinect dk SDK를 설 도커파일을 작성했다.

    2024.08.14 - [SLAM] - jetson orin nano에 azure kinect dk SDK + ROS2 humble 설치하기

     

    참고 

    https://www.jetson-ai-lab.com/initial_setup_jon.html#__tabbed_2_2

    https://dongle94.github.io/ubuntu/ubuntu-sdcard-format/

    https://m.blog.naver.com/myrikason/221353874580

     

     

     

     

     

    댓글

Designed by Tistory.