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:禁用音频播放后关闭输出DAC电源。

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

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/681813/linux-tlv320aic3106-disable-outpu-dac-powering-off-after-audio-play

部件号:TLV320AIC3106

工具/软件:Linux

您好,
我想在BeagleBone Black上播放音频,所以我使用具有 TLV320AIC3106 编解码器的AUDIO Cape。我能够在BeagleBone Black上的8.7 Debian( 4.4 内核)上加载BB-bone-audi-02-00A0.dtbo,如下所示。 默认 情况下,此bB-bobe-audi-02-00A0.dtbo文件位于lib/firmware文件夹中。我不会对.dtbo文件进行任何修改。
8.7 debian iot (4.4 .54-ti-R93内核):
aplay -l -->未找到设备
更改uEnv.txt后(cap_enable=bon_capemgr.enable_PartNo=BB-bone-Audi-02)
根部@BeagleBone:~# aplay -l
****播放硬件设备列表****
卡0:B [AudioCape Rev B],设备0:DaVinci-Mcasp.0-tlv320aic3x-hifi tlv320aic3x-hifi-0[]
 子设备:1/1
 子设备#0:子设备#0
根部@BeagleBone:~# dmesg | grep Cape
[ 0.0万   ]内核命令行:console=ttyO11.52万n8 bon_capemgr.enable_PartNo=BB-bne-Audi-02 root=/dev/mmcblk0p1 ro rootfstype=ext4 rootwait
[ 3.64.0488万   ] bone_capemgr bone_capemgr:底板:'A335BNLT,00C0.4717BBBK0E43'
[ 3.64.7847万   ] bone_capemgr bone_capemgr:compatible-baseboard =ti,BeagleBone - black -#slots=4
[ 3.69.4039万   ] bone_capemgr bone_capemgr:插槽#0:未找到头角
[ 3.73.8032万   ] bone_capemgr bone_capemgr:插槽#1:未找到头角
[ 3.78.2031万   ] bone_capemgr bone_capemgr:插槽#2:未找到头角
[ 3.82.6031万   ] bone_capemgr bone_capemgr:插槽#3:未找到头角
[ 3.83.1847万   PARTNO ] BON_CAPEMgr BON_CAPEMgr BON_PARTNO 'BB-BON-AUDI -02' VER 'N/A ' PR '0'
[ 3.84.0606万   ] bone_capemgr bone_capemgr:插槽#4:覆盖
[   EEPROM] bon_capemgr bone_capemgr:在插槽4中使用覆盖3.84.5962万 数据
[ 3.85.2977万   ] bone_capemgr bone_capemgr:插槽#4:'Override Board Name,00A0, Override Manuf,BB-bone-Audi-02'
[ 3.86.2957万   ] bone_capemgr bone_capemgr:初始化正常。
[   dtbo] bon_capemgr bon_capemgr:插槽#4:3.87.058万 'bb-bone-audi-02-00A0.dtbo'已加载;覆盖ID #0
日志显示已加载BB-BONE Audi-02 Overlay,我也成功播放了音频。我连接了扬声器,因此音质也很好
但是当我尝试使用uboot-overlay方法在debian 9.3 (4.9 内核)上启用相同的音频Cape时,它在启动时挂起,没有完成启动。
9.3 debian iot (4.9 .........82内核):
uEnv.txt:(更改带下划线)
root@BeagleBone:/sys/devices/platform/occ# cat /boot/uEnv.txt
#Docs: http://elinux.org/Beagleboard:U-boot_partitioning_layout_2.0
uname_r=na.82-ti-r102 4.9
#uuid=
#DTB=

###U-Boot Overlays###
###文档: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian#U-Boot_Overlays
###主中继器启用
enable_uboot_overles=1
###
###使用EEPROM覆盖盖
uBoot_overlay_addr0=/lib/firmware/BB-UART1-00A0.dtbo
uBoot_overlay_addr1=/lib/firmware/bB-bot-edib-02-00A0.dtbo
#uboot_overlay_addr2=/lib/firmware/<file2>.dtbo
#uboot_overlay_addr3=/lib/firmware/<file3>.dtbo
###
###其他自定义功能
#uboot_overlay_Addr4=/lib/firmware/<file4>.dtbo
#uboot_overlay_Addr5=/lib/firmware/<file5>.dtbo
#uboot_overlay_Addr6=/lib/firmware/<file6>.dtbo
#uboot_overlay_Addr7=/lib/firmware/<file7>.dtbo
###
###自定义海角
#dtt_overlay=/lib/firmware/<file8>.dtbo
###
###禁用虚拟资本的自动加载(eMMC/VIDEO/wireless/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 .x-ti内核)
#uboot_overlay_PRU=/lib/firmware/AM335X-PRU-RPROC-4-4-TI-00A0.dtbo
###PRU_uio (4.4 .x-ti,4.14 .x-ti和主线/骨内核)
#uboot_overlay_PRU=/lib/firmware/AM335X-PRU-UIO-00A0.dtbo
###
###Cape Universal Enable (###Cape通用启用)
enable_uboot_cap_universal=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调整... (6万 = 384 KB)
#uboot_fDT_buffer=0x6万
###U-Boot Overlays###
#cmdline=concected_pool=1M net.ifnames=0 quiet
#如果EDID实际失败,请取消注释下一行:
#cmdline=concected_pool=1M net.ifnames=0 quiet video=HDMI-A-1:1024x768@60e
##启用通用eMMC闪光灯:
##确保已安装以下工具:dosfstools rsync
#cmdline=init=/opt/scripts/tools/eMMC/init-eMMC-flasher-v3.sh
根部@BeagleBone:~# aplay -l
aplay:device_list:270:找不到声卡...

我也尝试使用uboot-overlay添加BB-UART1,因此引导日志显示uart1已正确加载。
uBoot_overlays:正在加载/lib/firmware/bB-UART1-00A0.dtbo ...
1075字节以222毫秒(3.9 KiB/s)为单位读取

但当我尝试使用AUDIO 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 ...
1075字节以222毫秒(3.9 KiB/s)为单位读取
uBoot_overlays:正在加载/lib/firmware/bB-beb-audi-02-00A0.dtbo ...
2859字节以306毫秒(8.8 KiB/s)为单位读取
FDT_overlay_apply()失败:FDT_ERR_NOTFOUUND
uBoot_overlays:正在加载/lib/firmware/bB-bebne-eMMC1-01-00A0.dtbo ...
1440字节以373毫秒的速度读取(2.9 KiB/s)
libfdt fdt_check_header():fdt_ERR_BADMAGIC
FDT_overlay_apply()失败:FDT_ERR_BADMAGIC
基本FDT没有/__symbols__节点
请确保您已使用-@进行了编译
uBoot_overlays:Cape Universal disabled, external Cape enabled or detected...(uBoot_overlays:Cape通用
正在加载/boot/initrd.img-R43... 4.1 .15-ti-RT-R43...
409.6241万字节读取时间274毫秒(14.3 MIB/s)
调试:[console=ttyO11.52万n8 bon_capemgr.uboot_capemgr_enabled=1 root=UUUID=76ea7739-c46a-42c5-891-5dbb28d3a184 ro rootfstype=ext4 rootwait Coheric_pool=1M quiet Cape通用=enable]...
调试:[bootz 0x8200万 0x8808万:3e80F1 88000000]...188000000]...
错误:未找到平铺的cmdline设备树
找不到有效的设备树
调试:[console=ttyO11.52万n8 bon_capemgr.uboot_capemgr_enabled=1 root=/dev/mmcblk1p1 ro rootfstype=ext4 rootwait civersal_pool=1M quiet Cape通用=enable]...
调试:[bootz 0x8200万 0x8808万:3e80F1 88000000]...188000000]...
错误:未找到平铺的cmdline设备树
找不到有效的设备树
**分区2**无效
**分区3**无效
**分区4**无效
**分区5**无效
**分区6**无效
**分区7**无效
正在启动USB...
USB0:  端口不可用。
端口0上的链路正常,速度为100,全双工
BOOTP广播1
DHCP客户机绑定到192.168 .1.243 地址(4毫秒)
正在使用cpsw设备
TFTP来自服务器192.168 .1.1 ;我们的IP地址是192.168 .1.243
文件名'vmlinuz-R43'. 4.1
加载地址:0x8200万
加载: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 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设备
TFTP来自服务器192.168 .1.1 ;我们的IP地址是192.168 .1.243
文件名'pxelinux.cfg/01-98-5d-ad-ec-34-c4'。
加载地址:0x8010万
加载: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 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。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Jithu,

    这种带TLV320AIC3106的Beagle骨角是从哪里来的? 这听起来像是驱动程序问题。 我假设您可以访问该驱动程序?

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

    您好,Steve Wilson,  

    感谢您的回复。 我正在使用的音频DAC基于GitHub页面  

    github.com/.../hw-bbb-audiocape

    我正在使用的驱动程序照片来自  github.com/.../BB-BONE-AUDI-02-00A0.dts

    我使用dc编译器编译了这个.dts文件,并得到了一个.dtbo文件,它被移到了/lib/firmware文件夹中。  

    实际上,适用于BeagleBone black的Debian预构建图像附带了名为BB-bone Audi-02-00A0.dtbo的驱动程序,该驱动程序也基于TLV320AIC3106编解码器。

    有趣的部分是,我已经在BeagleBone Black上使用相同的驱动程序文件在Debian 8.7 上使用相同的硬件音频Cape进行了相同的设置,并且4.4 它的运行非常好,使用扬声器可以非常清晰地播放音频文件。 但是当我在Debian 9.3 上使用内核4.9 尝试相同的设置时,出现了问题。当我在/boot/uEnv.txt文件中添加音频DAC的覆盖文件后,当我尝试启动BBB时,它只在启动过程之间挂起。 我在上一篇文章中包含的所有这些日志。 由于它在旧Debian映像上工作正常,我只是怀疑驱动程序文件需要在新Debian映像上进行一些修改,因为我不是Linux专家, 所以我不知道这一点,或者它可能取决于我们添加覆盖文件的方式 较新的图像。  

    提前感谢!

    Jithu。

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

    这肯定是一个驱动程序问题,我对这个"BB-Bone奥迪_02_00A0.dtbo"驱动程序或者它如何与不同版本的Debian交互没有任何了解。

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

    您好,Steve,

    没关系。 但感谢您的回复。 您是否能够与熟悉BeagleBone Black Linux驱动程序的人联系,您认为他们可以帮助我解决这个问题,因为这对我的项目非常重要,而且我已经在这么多天里一直坚持这样做。

    谢谢,此致,

    Jithu

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

    很抱歉回复太晚。 我们在这个论坛上不支持Debian,只有处理器SDK (www.ti.com/.../PROCESSOR-SDK-AM335X)
    您是否可以在Beagle Bone论坛上发布: beagleboard.org/discuss (向下滚动到Audio)-那里已经有一些音频Cape帖子,但没有最近的帖子。
    这可能就像更改方法或在4.9 内核中加载.DTB一样简单。 我不知道。

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

    好的,谢谢。

    此致,

    Jithu。