Android内核编译错误

Android内核编译错误

编译内核时,如果我选择Ethernet Gadget(具有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

答案1

coresight-tmc.c似乎指的是Coresight Trace Memory Controller,它似乎是ARM架构上的内核/硬件调试工具。

您可能在内核配置中发现了未声明的依赖项:跟踪内存控制器似乎依赖于 Android 复合设备,但内核配置器不知道这一事实,因此允许您选择包含跟踪内存控制器驱动程序的配置但不是 Android 复合设备。

您所使用的内核版本的选项是:

  • 将 Android 复合设备保留在内核配置中以满足 Coresight 的依赖性,或者
  • 禁用CORESIGHT_*内核配置中的配置项,从而放弃 Coresight 支持。

由于内核版本 3.4.0 不再处于积极开发中,因此除非您可以使用较新的内核版本重现该错误,否则报告该错误可能没有意义:具有活跃长期上游支持的最旧内核版本是 3.16.60时间。

相关内容