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/
'임베디드 개발 > 리눅스 디바이스 드라이버' 카테고리의 다른 글
Linux Kernel ] Container_of (0) | 2025.02.06 |
---|---|
Linux Kernel ] Error Handling (0) | 2025.02.03 |
LDD ] PCIe 디바이스 드라이버 작성하기 - (2) (0) | 2025.01.15 |
VSCode에서 리눅스 커널 모듈 개발시 Intellisense Error 없애기 (0) | 2024.12.29 |
LDD ] PCIe 디바이스 드라이버 작성하기 - (1) (0) | 2024.12.25 |