msm8937声卡挂载问题

今天遇到一个问题,声卡一直挂载不上。

1.在msm8952_asoc_machine_probe和aw87339_probe里加了log,发现根本就没走。

2.看log发现两个问题:adsp-loader soc:qcom,msm-adsp-loader: adsp_load_fw: Q6 image loading failed,adsp加载失败了。machine_dlkm: Unknown symbol aw87339_audio_kspk,aw87339模块没加载进去。

3.到对应的out目录发现aw87339.o已经生成了。那么很有可能没有link进去。

4.于是走了一遍整个编译流程

hardware/qcom/audio/configs/msm8937/msm8937.mk里定义了AUDIO_FEATURE_ENABLED_DLKM := true

于是hardware/qcom/audio/hal/Android.mk

ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
LOCAL_HEADER_LIBRARIES += audio_kernel_headers
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
LOCAL_ADDITIONAL_DEPENDENCIES += $(BOARD_VENDOR_KERNEL_MODULES)
endif

 

就会来这里android\device\qcom\msm8937_32go\BoardConfig.mk找到并加载名为BOARD_VENDOR_KERNEL_MODULES的依赖文件。发现$(KERNEL_MODULES_OUT)/audio_aw87339_audio.ko没有添加进去(主要原因)。

android/device/qcom/msm8937_64/msm8937_64.mk里定义了KERNEL_MODULES_OUT := out/target/product/$(PRODUCT_NAME)/$(KERNEL_MODULES_INSTALL)/lib/modules其中KERNEL_MODULES_INSTALL := dlkm,PRODUCT_NAME := msm8937_32go,文件生成目录。

那么audio_aw87339_audio.ko是怎么生成的呢?android/vendor/qcom/opensource/audio-kernel/asoc/Android.mk文件里定义AUDIO_SELECT += CONFIG_SND_SOC_AW87339=m 

ifdef CONFIG_SND_SOC_AW87339 
       AW87339_AUDIO_OBJS += aw87339_audio.o
......
obj-$(CONFIG_SND_SOC_AW87339) += aw87339_audio_dlkm.o
aw87339_audio_dlkm-y := $(AW87339_AUDIO_OBJS)

 

ifeq ($(call is-board-platform-in-list,msm8953 msm8937),true)
include $(CLEAR_VARS)
LOCAL_MODULE              := $(AUDIO_CHIPSET)_aw87339_audio.ko
LOCAL_MODULE_KBUILD_NAME  := aw87339_audio_dlkm.ko
LOCAL_MODULE_TAGS         := optional
LOCAL_MODULE_DEBUG_ENABLE := true
LOCAL_MODULE_PATH         := $(KERNEL_MODULES_OUT)
include $(DLKM_DIR)/AndroidKernelModule.mk
endif

自此编译出了.o和.ko文件。

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值