본문 바로가기
임베디드 개발/리눅스 디바이스 드라이버

Device tree compiler 사용법

by eteo 2025. 1. 27.

 

 

Device tree compiler는 Device tree 파일을 컴파일/디컴파일하기 위한 도구로 아키텍처에 종속되지 않는 독립적인 표준을 따른다.

 

 

1. 설치 방법

$ sudo apt update
$ sudo apt install device-tree-compiler

 

 

 

2. 사용법 (dts ↔ dtb/dtbo)

 

1. 기본 사용법

# dtc -I <Input: dtb or dts> -O <Output: dts or dtb> -o <outputFile> <inputFile>

 

 

 

2. DTB → DTS  변환 (디컴파일)

# dtb -> dts 디컴파일
$ dtc -I dtb -O dts -o extracted.dts source.dtb

 

 

 

3. DTS → DTB 변환 (컴파일)

# dts -> dtb 컴파일
$ dtc -I dts -O dtb -o compiled.dtb source.dts

 

 

 

4. -@ 옵션 (DTS → DTB 변환 시)

이 옵션을 사용하면 .dtb 파일을 생성할 때 심볼 섹션 (__symbols__)을 추가한다. 이렇게 하면 나중에 .dtb 파일을 다시 .dts로 디컴파일 했을 때 심볼 테이블 노드가 남아있어 경로 참조를 통해 의미를 파악 수 있다.

$ dtc -I dts -O dtb -o compiled.dtb -@ source.dts

 

예시.

DTS 원본

uart0: serial@10000000 {
    compatible = "ns16550a";
    reg = <0x10000000 0x1000>;
};

 

-@ 옵션으로 컴파일한 .dtb 파일을 다시 디컴파일 했을 때

serial@10000000 {
    compatible = "ns16550a";
    reg = <0x10000000 0x1000>;
};

__symbols__ {
    uart0 = "/serial@10000000";
};

 

 

 

 

5. 현재 시스템의 장치 트리(/proc/device-tree)를 dts로 추출

dtc -I fs -O dts -o output.dts /proc/device-tree/