티스토리 뷰

초보 우분투(리눅스)

.dtb 파일의 기능

바람사탕 2024. 5. 29. 23:31
반응형

'.dtb' 파일은 디바이스 트리 블롭(Device Tree Blob) 파일을 의미합니다. 디바이스 트리는 하드웨어 구성 요소와 그들 간의 연결을 기술한 데이터 구조입니다. 디바이스 트리 블롭 파일은 이 데이터를 바이너리 형식으로 저장한 파일입니다.

 

/boot/xxxxx.dtb


주요 기능

1. 하드웨어 구성 정보 제공:
   - '.dtb' 파일은 시스템에 존재하는 하드웨어 구성 요소들을 설명합니다. 여기에는 CPU, 메모리, 버스, 장치 등의 정보가 포함됩니다.
   - 각 장치의 속성, 메모리 주소, 인터럽트 번호, GPIO 핀 설정 등을 기술합니다.

2. 운영체제 초기화 지원:
   - 운영체제가 부팅할 때, '.dtb' 파일을 읽어서 하드웨어 구성 정보를 파악합니다. 이를 통해 커널은 하드웨어를 초기화하고, 적절한 드라이버를 로드할 수 있습니다.
   - 특히, 임베디드 시스템이나 특정 ARM 아키텍처를 사용하는 시스템에서 유용합니다.

3. 플랫폼 독립성 제공:
   - 디바이스 트리는 특정 하드웨어에 종속되지 않고, 운영체제가 다양한 하드웨어 플랫폼에서 동작할 수 있도록 합니다. 동일한 커널 이미지를 여러 하드웨어 플랫폼에서 사용할 수 있게 해줍니다.
   - 커널과 하드웨어 간의 결합을 줄여서, 새로운 하드웨어 지원을 추가할 때 커널 코드를 변경하지 않고도 지원할 수 있게 합니다.

디바이스 트리의 구성 요소

디바이스 트리는 보통 세 부분으로 나뉩니다:
- 루트 노드: 시스템의 최상위 노드로, 모든 하드웨어 구성 요소의 부모 노드입니다.
- 노드: 각 하드웨어 장치를 나타내며, 속성과 노드를 가질 수 있습니다.
- 속성: 각 노드의 속성을 나타내며, 키-값 쌍으로 구성됩니다.

'.dts' 파일과 '.dtb' 파일

- '.dts' 파일: 디바이스 트리 소스(Device Tree Source) 파일로, 사람이 읽을 수 있는 텍스트 형식으로 작성됩니다.
- '.dtb' 파일: 디바이스 트리 블롭(Device Tree Blob) 파일로, '.dts' 파일을 컴파일한 바이너리 형식입니다. 커널은 부팅 시 '.dtb' 파일을 사용합니다.

'.dts' 파일의 예시:
/ {
    model = "Raspberry Pi Model B";
    compatible = "raspberrypi,model-b", "brcm,bcm2708";

    cpus {
        cpu@0 {
            device_type = "cpu";
            compatible = "arm,cortex-a7";
        };
    };

    memory {
        device_type = "memory";
        reg = <0x0 0x10000000>;
    };

    soc {
        gpio@7e200000 {
            compatible = "brcm,bcm2835-gpio";
            reg = <0x7e200000 0x200000>;
        };
    };
};


이 '.dts' 파일은 'dtc'(Device Tree Compiler) 도구를 사용하여 '.dtb' 파일로 컴파일할 수 있습니다:

dtc -I dts -O dtb -o output.dtb input.dts


요약

'.dtb' 파일은 디바이스 트리 블롭 파일로, 하드웨어 구성 요소와 그들 간의 연결을 기술한 정보를 담고 있습니다. 이는 운영체제가 부팅 과정에서 하드웨어를 올바르게 초기화하고, 다양한 하드웨어 플랫폼에서 유연하게 동작할 수 있도록 돕습니다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함