네... 어렵습니다. ㅠㅠ


기존에 디바이스 트리의 단점으로 지적되던 부분은 아래와 같은 것들이죠

1. 초보자가 배우기 어렵다.

2. 컴파일러에서의 syntax check 가 그다지 도움이 되지 못한다.

3. 잘못될 경우 부팅을 하지 못한다 ㅠㅠ

4. 가장 최신의 하드웨어를 모델로 드라이버가 구성되어 있다.


또한 FPGA 와 같이 하드웨어가 재구성 될수 있는 경우 역시 문제가 됩니다.

그래서 커널에서는 overlay 컨셉을 구상합니다. 


간단히 얘기하면  이미 구성된 디바이스 트리를 수정할 수 있도록 허용하는 것입니다.

자.. 더 쉽게... 기존의 장치가 하나 있고 해당 하는 장치의 드라이버를 위한 디바이스 트리가 구성되어 있습니다.

새로운 DT 구성하고자 한다면?


/sys 에서 danymic device tree 를 지원하게 됩니다.

이것은 특정 device tree 를 이용하는 장치에 대한 설정을 disable 시키는 것이 가능합니다.

또한 새로운 장치를 위한 device tree 를 attach 할수 있도록 해줍니다.

다른 말로 하면 device tree 를 수정할수 있다는 것이지요... runtime 에서요!!!


이러한 기능이 device tree overlay 라는 이름으로 3.16에서 부터 머지되기 시작하여

3.19 에서 full 기능이 들어왔네요.

2014년도에 논의 될 때는 powerPC 에서만 구현되었는데

현재 3.19 버전에서는 ARM 등도 지원하나 봅니다.


아래의 링크를 참조하세요

kernelnewbies.org

lwn.net