Linux

Android核心編譯錯誤

  • November 2, 2018

編譯核心時,如果我選擇乙太網小工具(支持 CDC 乙太網)或網路控制模型 (NCM) 而不是 Android 複合設備,則會收到錯誤消息:

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

coresight-tmc.c似乎是指Coresight Trace Memory Controller,它似乎是ARM架構上的核心/硬體調試工具。

您可能在核心配置中發現了未聲明的依賴關係:Trace Memory Controller 似乎依賴於 Android 複合設備,但核心配置器不知道這一事實,因此允許您選擇包含 Trace Memory Controller 驅動程序的配置但不是 Android 複合設備。

您使用的核心版本的選項是:

  • 將 Android 複合設備保留在您的核心配置中以滿足 Coresight 的依賴性,或者
  • 禁用CORESIGHT_*核心配置中的配置項,因此放棄 Coresight 支持。

由於核心版本 3.4.0 不再處於積極開發中,因此報告該錯誤可能沒有意義,除非您可以使用更新的核心版本重現它:具有長期活躍上游支持的最舊核心版本是 3.16.60時間。

引用自:https://unix.stackexchange.com/questions/479465