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/TLV320AIC3106:音频 Cape (TLV320AIC3106)不能在 Debian 9.3 (4.9内核)上的 BeagleBone Black 上工作、而是在 Debian 8.7上工作

Guru**** 2394305 points
Other Parts Discussed in Thread: TLV320AIC3106

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/681811/linux-tlv320aic3106-audio-cape-tlv320aic3106-not-working-on-beaglebone-black-on-debian-9-3-4-9-kernel-but-working-on-debian-8-7

器件型号:TLV320AIC3106

工具/软件:Linux

您好!
我想在 BeagleBone Black 上播放音频、因此我将音频 Cape 与 TLV320AIC3106编解码器配合使用。我能够在 BeagleBone Black 上的8.7 Debian (4.4内核)上加载 BB-Bone-Audi-02-00A0.dtbo、如下所示。  默认情况下、lib-bone-Audi-02-00A0.dtbo 文件位于 lib/firmware 文件夹中。 Dint 在.dtbo 文件中执行任何修改。
8.7 debian IoT (4.4.5.54-ti-R93内核):
aplay -l -->未找到设备
更改 uEnv.txt 后(cap_enable=bone_capemgr.enable_PartNo=BB-bone-Audi-02)
根目录@BeagleBone:~# aplay -l
****播放硬件设备列表****
卡0:B [AudioCape Rev B]、器件0:Davinci-McASP/0-tlv320aic3x-hifi tlv320aic3x-hife-0 []
 子设备:1/1
 子设备#0:子设备#0
root@BeagleBone:~# dmesg | grep cape
[0.000000]   内核命令行:console=ttyO0、115200n8 bone_capemgr.enable_PartNo=BB-bone-bone-Audi-02 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait
[3.640488]   bone_capemgr bon_capemgr:基板:'A335BNLT、00C0、4717BBBK0E43'
[3.647847]   bone_capemgr bone_capemgr:兼容基板=ti、Beaglebone-black -#slots=4
[3.694039]   bon_capemgr bon_capemgr:插槽#0:找不到 Cape
[3.738032]   bon_capemgr bon_capemgr:插槽#1:找不到 Cape
[3.782031]   bon_capemgr bon_capemgr:插槽#2:找不到 Cape
[3.826031]   bon_capemgr bon_capemgr:插槽#3:找不到 Cape
[3.831847]   bone_capemgr bon_capemgr:ENABLE_PartNo PARTNO 'BB-bone-Audi-02' VER 'N/A ' PR '0'
[3.840606]   bon_capemgr bon_capemgr:插槽#4:覆盖
[3.845962]   bon_capemgr bon_capemgr:使用插槽4中的覆盖 EEPROM 数据
[3.852977]   bon_capemgr bon_capemgr:插槽#4:"覆盖板名称、00A0、覆盖制造商、BB-bone-Audi-02"
[3.862957]   bon_capemgr bon_capemgr:初始化正常。
[3.870580]   bon_capemgr bon_capemgr:插槽#4:已加载 dtbo "BB-bone-Audi-02-00A0.dtbo";覆盖 ID #0
日志显示已加载 BB-Bone-Audi-02覆层、我也成功播放了音频。我连接了扬声器、因此优质音质也即将推出
但是当我尝试使用 ubian 9.3 (4.9内核)上的 ubian 9.3 (4.9内核)上的相同音频 Cape 时、它在引导时挂起、没有完成引导。
9.3 debian IoT (4.9.82内核):
uEnv.txt:(更改以下划线表示)
root@BeagleBone:/sys/devices/platform/ocp cat /boot/uEnv.txt
#Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0
uname_r=4.9.82-ti-r102
#uuid =
#dtb=

##U-Boot 覆盖图###
###文档: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
###主机启用
enable_uboot_overlays = 1
###
###使用 EEPROM 的过载电容
uBoot_overlay_addr0=/lib/firmware/BB-UART1-00A0.dtbo
uBoot_overlay_addr1=/lib/firmware/BB-BONE-AUDI-02-00A0.dtbo
#uboot_overlay_addr2=/lib/firmware .dtbo
#uboot_overlay_addr3=/lib/firmware .dtbo
###
###附加自定义 Cape
#uboot_overlay_Addr4=/lib/firmware .dtbo
#uboot_overlay_Addr5=/lib/firmware .dtbo
#uboot_overlay_Addr6=/lib/firmware .dtbo
#uboot_overlay_Addr7=/lib/firmware .dtbo
###
###定制 Cape
#dtb_overlay=/lib/firmware .dtbo
###
###禁用虚拟 Cape 的自动加载(eMMC/VIDEO/WIRELESD/ADC)
#disable_uboot_overlay_eMMC=1
#disable_uboot_overlay_video=1
disable_uboot_overlay_audio=1
#disable_uboot_overlay_wireless=1
#disable_uboot_overlay_adc=1
###
###PRUSS 选项
###PRU_rproc (4.4.4-x-ti 内核)
#uboot_overlay_PRU=/lib/firmware/AM335X-PRU-RPROC-4-4-TI-00A0.dtbo
###PRU_uio (4.4.4.x-ti、4.14.x-ti 和主线/骨内核)
#uboot_overlay_PRU=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo
###
### Cape 通用启用
ENABLE_UBOOT_CAP_UNIVALUE=1
###
###调试:禁用 Cape 的 uboot 自动载入
disable_uboot_overlay_addr0=1
disable_uboot_overlay_addr1=1
disable_uboot_overlay_addr2=1
disable_uboot_overlay_addr3=1
###
##U-Boot FDT 调整... (60000 = 384KB)
#uboot_FDT_buffer=0x60000
##U-Boot 覆盖图###
#cmdline=相干 池=1M net.ifnames=0安静
#如果发生 EDID 实际故障、取消注释下一行:
#cmdline=相干 池=1M net.ifnames=0安静视频=HDMI-A-1:1024x768@60e
##ENABLE 通用 eMMC Flasher:
###确保已安装这些工具:dosfstools rsync
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
根目录@BeagleBone:~# aplay -l
aplay:device_list:270:未找到声卡...

我尝试添加 BB-UART1以及使用 uboot-overlay、因此引导日志告知 uart1已正确加载。
uBoot_overlays:正在加载/lib/firmware/BB-UART1-00A0.dtbo ...
在222ms (3.9KiB/s)内读取1075字节

但是、当我使用音频 Cape 尝试相同操作时、引导会在这两者之间挂起、如以下引导日志中所示:

错误:未找到 cmdline 设备树
找不到有效的设备树
**无效分区2**
**无效分区3**
**无效分区4**
**无效分区5**
**无效分区6**
**分区7 **无效
切换到分区#0,确定
mmc1 (第0部分)是当前器件
正在扫描 MMC 1:1...
GPIO:引脚56 (GPIO 56)值为0
GPIO:引脚55 (GPIO 55)的值为0
GPIO:引脚54 (GPIO 54)的值为0
GPIO:引脚53 (GPIO 53)的值为1
切换到分区#0,确定
mmc1 (第0部分)是当前器件
uBoot_overlays:正在加载/lib/firmware/BB-UART1-00A0.dtbo ...
在222ms (3.9KiB/s)内读取1075字节
uBoot_overlays:正在加载/lib/firmware/BB-BONE-AUDI-02-00A0.dtbo ...
306ms (8.8KiB/s)内读取2859字节
在 FDT_overlay_apply ()上失败:FDT_ERR_NOTFOUND
uBoot_overlays:正在加载/lib/firmware/BB-BONE-eMMC1-01-00A0.dtbo ...
在373ms (2.9KiB/s)内读取1440字节
libfdt FDT_CHECK_HEADER ():FDT_ERR_BADMAGIC
在 FDT_overlay_apply ()上失败:FDT_ERR_BADMAGIC
基本 FDT 没有/_symbols__节点
确保您已使用-@编译
uBoot_overlays:Cape 通用被禁用、外部 Cape 被启用或被检测到...
正在加载/boot/initrd.img-4.1.15-ti-rt-r43 ...
4096241字节在274ms 内读取(14.3 MIB/s)
调试:[console=ttyO0、115200n8 bone_capemgr.uboot_capemgr_enable=1 root=uid=76ea7739-c46a-42c5-891-5dbb28d3a184 extro rootfstype=root4等待 cored_pool=1M quiet cap_univers=enable]...
调试:[bootz 0x82000000 0x88080000:3e80F1 88000000]...
错误:未找到 cmdline 设备树
找不到有效的设备树
调试:[console=ttyO0、115200n8 bone_capemgr.uboot_capemgr_enable=1 root=/dev/mmcblk1p1 ro rootfstype=ext4 rootwait 相干池=1M quiet cap_univers=enable]...
调试:[bootz 0x82000000 0x88080000:3e80F1 88000000]...
错误:未找到 cmdline 设备树
找不到有效的设备树
**无效分区2**
**无效分区3**
**无效分区4**
**无效分区5**
**无效分区6**
**分区7 **无效
正在启动 USB...
USB0:  端口不可用。
端口0、速度100、全双工上的链路
BOOTP 广播1
DHCP 客户端绑定到地址192.168.1.243 (4ms)
使用 cpsw 器件
来自服务器192.168.1.1的 TFTP;我们的 IP 地址为192.168.1.243
文件名"vmlinuz-4.1.15-ti-rt-R43"。
加载地址:0x82000000
负载:T T T T T T T T T T T T T T T T T T T T T T T T T T T T
已超过重试计数;正在重新开始
缺少环境变量:pxeuuid
正在检索文件:pxelinux.cfg/01-98-5d-ad-EC-34-C4
端口0、速度100、全双工上的链路
使用 cpsw 器件
来自服务器192.168.1.1的 TFTP;我们的 IP 地址为192.168.1.243
文件名'pxelinux.cfg/01-98-5d-ad-EC-34-C4'。
加载地址:0x80100000
负载:T T T T T T T T T T T T T T T T T T T T T T T T T T T T
我猜在8.7 debian 上、我使用 bon_capemgr/slots 方法加载了覆盖、但在新内核上、我们没有将覆盖添加到 slots 文件的选项、而是必须将其添加到 uboot-overlay 方法中。因此、要在 BB-bone-Audi-02-00A0.DTS 文件中执行任何所需的修改? 如果是,是否有人可以共享该 DTS 文件并帮助我进行修改?   我在这方面已经呆了一周、请帮助我解决问题。我找不到任何支持、无法在最新内核上加载音频 Cape。 等待您的回复。
谢谢、
Jithu。