기록
[GPT가 알려주는] FCM mismatch란? 본문
좋아, **FCM mismatch(Framework Compatibility Matrix mismatch)**를 아주 쉽게, 너가 지금 작업 중인 Telechips Android 빌드 맥락에 맞게 설명해줄게.
🔥 FCM mismatch란?
Android 시스템이 “framework 쪽 요구사항”과 “device/vendor 쪽 선언”이 서로 맞지 않는 상황을 말해.
즉,
- framework(시스템): 이런 HAL들이 있어야 한다고 요구함
- device/vendor manifest: 실제로 포함된 HAL 목록
- 둘의 목록이 서로 안 맞음 → mismatch 발생
그래서 빌드를 막아버리는 오류야.
📌 왜 이런 제도가 생겼냐?
Android는 Vendor(SoC 제조사) / Device 제조사 / Google(Android Framework)이 함께 돌아가는 구조라서
- Vendor가 HAL을 아무렇게나 넣거나 빼면 시스템이 망가질 수 있음
- Framework이 요구하는 HAL을 Vendor가 안 넣어도 부팅 불가
- Vendor가 새로운 HAL을 추가해도 Framework이 모르기 때문에 검증 필요
그래서 Google이 “VINTF(Vendor Interface)” 규칙이라는 안전장치를 만든 거야.
📌 FCM mismatch가 터지는 상황 예시 (지금 너 상황)
지금 DDS HAL을 넣으면서 이렇게 됨:
✔ device/vendor manifest:
ivi.system.ccs.dds.ipc@1.0::IDDS/default
→ vendor 가 HAL 하나 추가한 것
✖ framework matrix에 없음
framework matrix(FCM)는 시스템이 요구하는 HAL 목록을 정의하는 파일이야.
여기에는 기본적으로 Google HAL들만 있음:
예)
- android.hardware.power
- android.hardware.usb
- android.hardware.wifi
- …
하지만 너가 넣은 DDS HAL은 system/framework이 모르는 HAL이므로 FCM에서 찾아보면 없음 → mismatch!
🤯 그래서 빌드 오류가 이렇게 나는 것:
The following instances are in the device manifest but not specified in framework compatibility matrix:
ivi.system.ccs.dds.ipc@1.0::IDDS/default
Framework이 말하는 거:
“야, vendor 너는 DDS HAL 넣었다는데
나는 이 HAL 모른다???
framework compatibility matrix에 선언해줘!!”
📌 해결 방법
Vendor에서 HAL을 추가했으면
✔ framework compatibility matrix에 "이 HAL 있어요"라고 알려줘야 함
✔ 그게 바로 vendor용 FCM 파일 만들고
✔ device.mk 에 등록하는 이유야.
파일 내용은 이런 형태:
<compatibility-matrix version="1.0" type="framework">
<hal format="hidl">
<name>ivi.system.ccs.dds.ipc</name>
<version>1.0</version>
<interface>
<name>IDDS</name>
<instance>default</instance>
</interface>
</hal>
</compatibility-matrix>
🔥 한 줄 요약
FCM mismatch = vendor manifest(HAL 목록)와 framework matrix(HAL 요구사항)가 서로 불일치해서 나는 에러.
추가한 DDS HAL을 framework compatibility matrix에 등록하면 해결됨.
원하면
👉 FCM / DM / VINTF 전체 구조를 Telechips Android 기준으로 그림으로 정리해줄까?
'잡동사니 > GPT가 알려주는' 카테고리의 다른 글
| [GPT가 알려주는] 코루틴 글 이해 (0) | 2025.12.10 |
|---|---|
| [GPT가 알려주는] HAL 그리고 포팅 (0) | 2025.12.08 |
| [GPT가 알려주는] DDS 통신 (0) | 2025.12.08 |
| [GPT가 알려주는] AIDL 파일 (0) | 2025.12.08 |
| [GPT가 알려주는] JVM 언어란? (0) | 2025.12.05 |