This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TLV320AIC3111:无法在 Linux 中加载模块

Guru**** 1810440 points
Other Parts Discussed in Thread: TLV320AIC3111
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1211250/tlv320aic3111-unable-to-load-module-in-linux

器件型号:TLV320AIC3111

大家好、我正尝试配置 Linux 内核来启用 TLV320AIC3111的驱动程序、并已执行下一页中显示的步骤。

https://www.ti.com/tool/TLV320AIC31XXSW-LINUX#description

我尝试在 Linux 内核6.1.21-v7l+上启用该驱动程序、但尝试安装模块时出现以下错误:

[11.370164]  bcmgenet fd580000.ethernet eth0: link is up - 1Gbps/ full - flow control Rx/tx
[ 437.268196] snd_soc_tlv320aic31xx:未知符号 snd_soc_dapm_put_enum_double (err -2)
[ 437.268271] SND_SoC_tlv320aic31xx:未知符号 SND_SoC_JACK_REPORT (err -2)
[ 437.268306] snd_soc_tlv320aic31xx:未知符号 snd_soc_put_enum_double (err -2)
[ 437.268338] SND_SoC_tlv320aic31xx:未知符号 SND_SoC_PARAMS_TO_FRAME_SIZE (err -2)
[ 437.268351] SND_SoC_tlv320aic31xx:未知符号 SND_SoC_Component_WRITE (err -2)
[ 437.268372] snd_soc_tlv320aic31xx:未知符号 devm_snd_soc_register_component (err -2)
[ 437.268395] snd_soc_tlv320aic31xx:未知符号__devm_regmap_init_i2c (err -2)
[ 437.268416] snd_soc_tlv320aic31xx:未知符号 snd_soc_get_enum_double (err -2)
[ 437.26842] snd_soc_tlv320aic31xx:未知符号 snd_soc_info_volsw (err -2)
[ 437.268469] SND_SoC_tlv320aic31xx:未知符号 SND_SoC_dapm_put_volsw (err -2)
[ 437.268482] SND_SoC_tlv320aic31xx:未知符号 SND_SoC_add_component_controls (err -2)
[ 437.268500] snd_soc_tlv320aic31xx:未知符号 snd_soc_dapm_add_routes (err -2)
[ 437.26813] snd_soc_tlv320aic31xx:未知符号 snd_soc_info_enum_double (err -2)
[ 437.268535] snd_soc_tlv320aic31xx:未知符号 snd_soc_get_volsw (err -2)
[ 437.26853] snd_soc_tlv320aic31xx:未知符号 snd_soc_put_volsw (err -2)
[ 437.268565] snd_soc_tlv320aic31xx:未知符号 snd_soc_component_update_bits (err -2)
[ 437.26877] SND_SoC_tlv320aic31xx:未知符号 SND_SoC_dapm_new_controls (err -2)
[ 437.268605] snd_soc_tlv320aic31xx:未知符号 snd_soc_dapm_get_volsw (err -2)
[ 437.268622] SND_SoC_tlv320aic31xx:未知符号 SND_SoC_dapm_get_enum_double (err -2)
[ 437.268635] snd_soc_tlv320aic31xx:未知符号 snd_soc_dapm_del_routes (err -2)
[ 437.268651] SND_SoC_tlv320aic31xx:未知符号 SND_PCM_FORMAT_WIDTH (错误-2)

我们是否需要在配置文件中启用任何其他#define?

谢谢  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否编译了 CONFIG_SND_SOC?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、它设置为模块。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、已经厌烦了 Linux 附带的默认驱动程序以及 TI 网站提供的驱动程序。  

    https://www.ti.com/tool/TLV320AIC31XXSW-LINUX#description

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请尝试以下操作:

    加载 AIC3111驱动程序之前、请先加载 CONFIG_SND_SOC。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、在配置文件中、CONFIG_SND_SOC_TLV320AIC31XX 出现在 CONFIG_SND_SOC_SOC_之前  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尝试编译到内核而不是模块中

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这些错误是否与器件树有关? 我尚未为 Linux 处理器配置器件树。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您能否解释一下如何执行此操作?  

    在 menuconfig 中、遇到的是选择作为模块的选项。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不认为、问题是未知符号。  Unknown symbols 是 sd_sound 提供的接口。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    电源小知识 我正在回溯代码、以查看我在哪里收到错误、而且您更正了 snd_sound 为这些错误。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    devicetree 是必须的。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当然、一旦我在安装模块时没有遇到错误、我将查看设备树。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    直接编辑.config 文件。

    CONFIG_SND_SOC=y

    CONFIG_SND_SOC_TLV320AIC31XX=y

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请问 AIC3111将集成到哪种平台中?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    哦、好的、马上尝试一下。 我是否希望 KO 文件成为内核的一部分?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    按我的方式、snd_soc moduce 和 AIC31XX 模块没有 ko。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当然、我正在尝试使用 Bullseye Linux 在 RPi CM4上加载此文件

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有道理。 无论如何,为了验证它是否正确编译,请?

    我已经重建了模块 zImage 和 dtbs、但它没有重建 zImage   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我在 krnel 6.3上编译了 AIC31xx。 因此编译不是 isup=ssue.至于 如何重新编译 zImage,请咨询平台供应商。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我明白了。 但是,是否有任何验证可以建议验证这些模块是否已成为内核的一部分?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    模块到内核代码的转换是否起作用? 因为 ALSA 也被添加为模块?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    哪个模块代表 ALSA?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当我在 menuconfig 中查看时、编解码器驱动程序是 ALSA 的一部分、而编解码器驱动程序内部为 tlv320aic31xx

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在我看来、 CONFIG_SND_SOC 在内核端占有 alsa 的核心

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我确实使用 configs 直接更新了.config 文件、但在借助.config 构建内核之后、它们恢复到模块。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    告诉我您的编译命令

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    配置文件

    Device Driver (设备驱动程序)-> Sound Card support (声卡支持)-> Advanced Linux Sound Arch (高级 Linux 声卡)  

    这个 ALSA 是模块。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    采取的步骤:

    1.编辑.config 文件以将 CONFIG_SND_SOC 和 CONFIG_SND_SOC_TLV320AIC31XX 标记为 y

    2. sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage dtbs 模块  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是我在工作的存储库。  

    git clone --depth=1 github.com/.../linux
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、这可能是当天完成的。 但这里是我必须要做的。  

    1.在 menuconfig 中、能够构建 TLV320AIC31XX 作为内核的一部分、并且可以看到内核在改变后再次构建。

    2.启动配置设备树之前,想知道是否有测试来确保 TLV320AIC31XX 的驱动程序是内核的一部分。  

    但我也感谢大家在这方面的支持。  

    谢谢  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外、您是否具有器件树或作为 TLV320AIC31XX 的 RPi CM4的叠加示例?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    tlv320aic31xx.txt«sound«bindings«devicetree«Documentation - kernel/git/Torvalds/linux.git - Linux 内核源码树

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢。 我仍然无法验证编解码器驱动程序是否已作为内核的一部分安装。 有什么建议吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     第19页的音频设备驱动程序 Guidelines.pdf (TI.com)编写了 如何检查声卡寄存器。