U-Boot / Linux 6.18 · Device Tree

Device Tree overlay: 부팅 전 적용과 실행 중 적용

같은 .dtbo라도 적용 주체와 시점에 따라 확인할 상태가 달라집니다.

부팅 전: 커널에 넘길 DTB를 변경합니다

U-Boot의 수동 overlay 적용은 메모리에 올린 기본 DTB와 overlay를 결합합니다. FIT 설정으로 선택하는 경로도 있습니다. 이때 변경하는 working FDT와 U-Boot 자체의 장치 관리에 쓰는 control FDT를 혼동하지 않습니다.

Toradex의 2021년 BSP 5 문서는 부팅 파티션의 overlays.txt와 재부팅을 사용하는 예시입니다. 실행 중 Linux의 장치 트리를 즉시 바꾸는 범용 인터페이스가 아니며, 파일명과 복구 절차도 모든 보드에 공통인 규칙은 아닙니다.

실행 중: 커널의 live tree와 장치 수명이 바뀝니다

Linux 6.18의 overlay 문서는 실행 중인 커널의 live tree 변경을 설명합니다. of_overlay_fdt_apply로 변경을 적용하면 활성화된 노드에 대응하는 장치가 만들어질 수 있고, 제거하면 영향을 받은 장치가 해제될 수 있습니다. 이는 커널 내부 API 설명이지 모든 배포판에 같은 셸 명령이 있다는 뜻은 아닙니다.

다른 overlay가 위에 쌓인 overlay는 바로 제거할 수 없습니다. overlay notifier가 저장한 노드·데이터 포인터는 OF_OVERLAY_POST_REMOVE 이후까지 보관하면 안 됩니다. 뒤에서 사용하던 드라이버나 다른 코드의 참조도 수명 검토 대상입니다.

파일 선택, 적용 결과, 장치 동작을 따로 확인합니다

검토 기록에는 기본 DTB와 .dtbo의 정확한 버전, 적용 주체, 적용 시점, 반환 결과를 함께 남깁니다. 부팅 전 경로는 커널에 전달한 트리를, 실행 중 경로는 변경된 live tree와 장치 상태를 확인해야 같은 현상을 서로 다른 단계에서 찾는 일을 줄일 수 있습니다.

U-Boot 문서는 수동 적용 오류 때 기본 트리와 overlay가 모두 무효화될 수 있다고 경고합니다. 복구 가능한 원본을 보존해야 합니다. 어느 경로든 적용에 성공했다고 해서 핀 연결, 드라이버 probe, 클럭·전원 조건이나 실제 주변장치 동작이 검증된 것은 아닙니다.

같은 파일 형식, 서로 다른 상태 전환
  1. 입력 식별

    기본 DTB와 .dtbo 버전

  2. 적용 시점

    부팅 전 working FDT / 실행 중 live tree

  3. 결과 확인

    트리 변경과 장치 동작을 구분

출처와 연결

Linux overlay 원문과 번역

U-Boot의 control FDT와 장치 탐색