입력 문서와 만들어진 묶음을 구분합니다
| 이름 | 역할 |
|---|---|
| ITS | FIT를 설명하는 텍스트 입력입니다. DTS와 같은 문법 체계를 사용합니다. |
| ITB | mkimage로 만든 FIT 바이너리 묶음에 관례적으로 붙이는 확장자입니다. |
| DTB | Device Tree의 바이너리 표현입니다. FIT 안에 부팅용 DTB를 포함할 수도 있습니다. |
FIT가 FDT 형식을 쓴다고 그 전체가 Linux에 넘길 하드웨어 Device Tree인 것은 아닙니다. FIT 안의 images와 configurations가 커널·DTB·ramdisk 등의 선택 관계를 기술합니다.
묶음을 만들고 포함 항목을 확인합니다
mkimage -f image.its image.itb
mkimage -l image.itb첫 명령은 ITS가 참조하는 파일을 묶으며 둘째 명령은 결과의 항목을 확인합니다. 커널 데이터, 압축 형식, 아키텍처, load/entry 주소는 실제 부팅 흐름에 맞아야 합니다. 목록이 출력된다는 사실만으로 하드웨어에서 부팅이 성공한다고 볼 수 없습니다.
- images커널, DTB 등 실제 payload의 설명을 담습니다.
- configurations함께 사용할 이미지들을 이름으로 묶습니다.
- 부트로더의 구성 선택기본값 또는 지정한 구성을 사용합니다.
상자는 파일 안의 역할과 선택 과정을 나타냅니다. 각각이 별도 CPU 실행 단계라는 뜻은 아닙니다.
해시와 서명은 다른 것을 확인합니다
이미지와 함께 저장한 hash는 데이터가 바뀌었는지 확인하는 수단입니다. 데이터와 hash를 함께 바꿀 수 있는 상황에서 제작자를 인증하지는 못합니다. 서명 검증은 신뢰한 공개키와 부트로더의 강제 검증 정책까지 연결되어야 합니다.
FDT_ERR_BADMAGIC만 보고 다른 부트 단계를 전부 다시 쓰는 방식으로 해결하지 않습니다. 읽은 주소가 맞는지, 파일 형식이 맞는지, 전송 길이와 내용이 보존됐는지부터 확인합니다. BL2·펌웨어·U-Boot 사이의 호환 조건은 해당 보드의 공개된 부팅 설계에 따라 판단합니다.