본문 바로가기

AI로봇/ROS2+SLAM

AI로봇랩 5강) Xubuntu 부팅에러 시 dtb 수정방법 at JetsonNano

JetsonNano에서 ROS2를 사용하기 위해선 Xbuntu20.04를 사용해야 한다. 하지만 이것을 사용 시 젯슨나노의 버전에 따른 dtb 수정이 필요하고 이 과정이 복잡하다. 아래 그림과 같이 JetsonNano는 두 가지 버전(A02, B01)이 있다. 최근 JetsonNano를 구매하면 B01 버전이 오고, 카메라 커넥터가 두개다.

 

 

 

참고

  • https://www.youtube.com/watch?v=6WZOlkS4D7c&t=63s

 

  • Xbuntu(주분투): 우분투를 기반으로 Xfce 데스크톱 환경이 적용된 리눅스 배포판
  • 젯슨나노는 일반적인 Ubuntu가 아닌, L4T(Linux for Tegra)가 들어가 있어야 한다.

 

  • JetsonNano의 버전에 따라 dtb(Device Tree Blob)을 달리 설치해야 한다.
  • dtb는 리눅스 부팅방법이다.
  • 통합 이미지를 굽고, 이미지와 젯슨 버전에 맞는 dtb를 설치하면 된다.
  • 통합이미지는 JetsonNano A02 용이다.

 

Omorobot 이미지를 사용할 때는 아래와 같은 방법으로 시도해 본다

  1. 오모로봇 제공 이미지를 sd카드에 굽고 부팅해본다
  2. 부팅이 되면 패스
  3. 부팅 에러가 나면 dtb를 수정

부팅 에러가 나는 경우, 아래 과정을 실시한다. 부팅이 되면 패스~!


dtb 수정!

 

  • 수정 방법: Windows10인 경우 아래 링크 프로그램을 설치 후 재부팅
  • https://drive.google.com/file/d/14q-ImvpBAQ1UNNARp6qvi-iOzdl-GxrU/view?usp=sharing
  • Product activation에서 'Start 10-day Trial'을 선택해서 10일간 무료로 사용하자

 

 

 

  • Linux File Systems for Windows by Paragon Software을 연다

 

 

  • 방법은 11번째 줄, APPEND 아래 FDT /boot/~.dtb를 입력 후 저장

 

 

  • 만약 부팅이 됐다면, >> cat /sys/firmware/devicetree/base/compatible 명령어를 이용하여 사용 중인 시스템에 적합한 dtb를 찾을 수 있다.
  • 그런데 이미 부팅됐으면...? 난 A02버전 젯슨을 사용하므로 아래 그림과 같이 'a02'가 뜬다.

 

 

  • B01 버전의 젯슨인 경우는 아래와 같이 뜬다

 

 

  • 만약 JetsonNano B01을 사용한다면 아래 두 개 중 한 개로 지정해야 한다
    • FDT /boot/tegra210-p3448-0000-p3449-0000-b00.dtb
    • FDT /boot/tegra210-p3448-0002-p3449-0000-b00.dtb
    • 방법은 11번째 줄, APPEND 아래 FDT /boot/~.dtb를 입력 후 저장

 

 

 

>> cd /boot

>> ls를 하면 dtb 선택정보들이 나온다

 

 

이들 중 해당하는 dtb를

>> suo vi /boot/extlinux/extlinux.conf 를 연 후 'APPEND' 오른쪽에 해당 dtb를 붙여 넣는다

 

 

 

JetsonNano에서 Xubuntu20.04 OS 부팅 성공하셨나요?? 성공하셨다면 다행입니다. 히유.