Android 커널 컴파일 오류

Android 커널 컴파일 오류

커널을 컴파일할 때 Android Composite Device 대신 이더넷 가젯(CDC 이더넷 지원 포함) 또는 네트워크 제어 모델(NCM)을 선택하면 다음 오류가 발생합니다.

drivers/built-in.o:coresight-tmc.c:function tmc_etr_store_out_mode: error: undefined reference to 'usb_qdss_close'
drivers/built-in.o:coresight-tmc.c:function tmc_etr_store_out_mode: error: undefined reference to 'usb_qdss_open'
drivers/built-in.o:coresight-tmc.c:function tmc_disable: error: undefined reference to 'usb_qdss_close'
drivers/built-in.o:coresight-tmc.c:function tmc_enable: error: undefined reference to 'usb_qdss_open'
drivers/built-in.o:coresight-tmc.c:function tmc_enable: error: undefined reference to 'usb_qdss_close'
Makefile:878: recipe for target '.tmp_vmlinux1' failed
make: *** [.tmp_vmlinux1] Error 1

커널 버전: 3.4.0

툴체인: google arm-linux-androideabi-4.6

답변1

coresight-tmc.cARM 아키텍처의 커널/하드웨어 디버깅 도구로 보이는 Coresight Trace Memory Controller를 참조하는 것 같습니다.

커널 구성에서 선언되지 않은 종속성을 발견했을 수 있습니다. 추적 메모리 컨트롤러는 Android 복합 장치에 의존하는 것처럼 보이지만 커널 구성자는 이 사실을 인식하지 못하므로 추적 메모리 컨트롤러 드라이버가 포함된 구성을 선택할 수 있지만 Android 복합 기기가 아닙니다.

사용 중인 커널 버전에 대한 옵션은 다음과 같습니다.

  • Coresight 종속성을 충족하려면 커널 구성에 Android 복합 장치를 그대로 두십시오. 또는
  • CORESIGHT_*커널 구성에서 구성 항목을 비활성화하면 Coresight 지원이 중단됩니다.

커널 버전 3.4.0은 더 이상 활발하게 개발되지 않으므로 최신 커널 버전을 사용하여 재현할 수 없다면 버그를 보고할 의미가 없습니다. 활성 장기 업스트림 지원이 포함된 가장 오래된 커널 버전은 3.16.60입니다.

관련 정보