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.
大家好、我正尝试配置 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 网站提供的驱动程序。
尝试编译到内核而不是模块中
这些错误是否与器件树有关? 我尚未为 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 也被添加为模块?
配置文件
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的叠加示例?
谢谢。 我仍然无法验证编解码器驱动程序是否已作为内核的一部分安装。 有什么建议吗?
第19页的音频设备驱动程序 Guidelines.pdf (TI.com)编写了 如何检查声卡寄存器。