디바이스 트리는
하드웨어 종속적인 부분(GPIO/timer 등등)을 커널에서 분리시켜 별도의 파일로 관리하는 것으로
기존의 board_*.c 파일을 대체하는 기술이다.
ARM 커널 패치등이 워낙 오래걸려 메인 트리를 적용하는데 오래 걸리다 보니 이런식으로 분리하는데
2013년 정도 부터 적용되었고 그 이전에 2년 정도 코드를 정리하는데 시간이 소요된 것으로 보인다.
그래서 imx6 시리즈 와 같이 2013년 이후 SoC 들에 대한 권장사항으로 device tree를 사용하도록 한다.
[링크 : http://www.devicetree.org/Main_Page]
[링크 : http://en.wikipedia.org/wiki/Device_tree]
[링크 : http://www.elinux.org/images/a/ad/Arm-soc-checklist.pdf]
dtc는 device tree compiler로
텍스트 파일을 바이너리로 컴파일 해주며 일종의.. 구조체로 변환하는 느낌이다.
[링크 : https://git.kernel.org/cgit/utils/dtc/dtc.git]
[링크 : http://forum.falinux.com/zbxe/index.php?document_srl=613440&mid=lecture_tip]
$ dtc -@ -I dts -O dtb -o 1st-overlay.dtb 1st-overlay.dts $ fdtdump 1st-overlay.dtb /dts-v1/; // magic: 0xd00dfeed // totalsize: 0x106 (262) // off_dt_struct: 0x38 // off_dt_strings: 0xe8 // off_mem_rsvmap: 0x28 // version: 17 // last_comp_version: 16 // boot_cpuid_phys: 0x0 // size_dt_strings: 0x1e // size_dt_struct: 0xb0 / { compatible = "brcm,bcm2708"; fragment@0 { target = <0xdeadbeef>; __overlay__ { status = "okay"; }; }; __fixups__ { i2s = "/fragment@0:target:0"; }; }; [링크 : https://www.raspberrypi.org/documentation/configuration/device-tree.md] |
'Linux' 카테고리의 다른 글
IIO - Industrial I/O (2) | 2015.09.03 |
---|---|
insmod / modprobe 차이 (0) | 2015.08.25 |
커널 컴파일 옵션 neon 과 cpu feature (0) | 2015.04.28 |
쓰레드 / 프로세스 (0) | 2015.04.27 |
리눅스 1분만에 커널 빌드하기 (0) | 2015.04.06 |