在kernel下的make menuconfig中禁用es8323

Android编译笔记一

在kernel中执行make  -j8  firefly-rk3288.img 报错显示如下

Android编译笔记一

看了Kconfig menuconfig .config Makefie 的关系后,依然毫无头绪,顺便贴一下网上看到的四者的关系

Makefile里面的条件编译是由.config中的宏决定的,而.config中的宏是否被注释又是有make menuconfig中选择决定的,而make menuconfig中的是否存在这个配置选项则是由Kconfig决定的,由此串联起来了四者的关系(就目前来说,Makefile和.config的关系没搞明白)

根据报错信息sound/built-in.o: In function `snd_stop_hdmi_in_audio_route_l.part.2':
last.c:(.text+0x42c98): undefined reference to `es8323_codec_set_reg'
sound/built-in.o: In function `snd_start_hdmi_in_audio_route_l.part.3':
last.c:(.text+0x42d14): undefined reference to `es8323_codec_set_reg'
make: *** [vmlinux] Error 1

搜了一下有在下图的两个文件里感觉无意义,先舍弃了

Android编译笔记一

在menuconfig的搜索了es8832中的结果,进入目录kernel/soun/soc/rockchip打开Kconfig文件,找到了config SND_RK_SOC_ES8323是打算注释掉这个选项先试试

Android编译笔记一

报错依旧

Android编译笔记一

根据menuconfig中的搜寻显示,接下来准备把目录/kernel/sound/soc/codecs下的Kconfig也改了

Android编译笔记一

Android编译笔记一

在kernel下编译make -j8  firefly-rk3288.img,报错依旧

Android编译笔记一

在Kconfig中禁掉而是es8323确实在menuconfig中找不到es8323这个选项,进行的第一个验证是在kernel/sound/soc/rockchip的Kconfig中禁掉了es8323(前文有图片)然后就发现menuconfig中没有es8323了,

想进一步验证,取消之前在kernel/sound/soc/rockchip/Kconfig中的禁用,禁掉kernel/sound/soc/codecs/Kconfig中的es8323(前文有图片),然后再menuconfig中发现无效的。所以是在上一个Kconfig中,反映了menuconfig的选项

接下来想着根据报错的信息搜寻'es8323_codec_set_reg'

Android编译笔记一

发现了hdmiin_audio.c这个文件,和报错的信息sound/built-in.o: In function `snd_stop_hdmi_in_audio_route_l.part.2'很像,打开这个文件看看。可能在这个文件中注销报错语句。打开文件后注释掉es8323相关语句,

Android编译笔记一

再kernel中执行编译通过!

相关文章:

  • 2021-12-23
  • 2021-10-05
  • 2021-11-23
  • 2021-05-29
  • 2022-12-23
  • 2021-11-19
  • 2022-12-23
猜你喜欢
  • 2021-04-06
  • 2022-03-04
  • 2022-12-23
  • 2021-12-01
  • 2021-10-18
  • 2022-02-16
  • 2021-11-09
相关资源
相似解决方案