Beaglebone black usb-audio broken

Hello everybody.
I built am33x-v5.15 and am33x-rt-v5.15 kernels according to the topic below.
(Debian: Getting Started with the BeagleBone Black)
But usb-audio seems to be broken.
When I connect a usb-dac to Beaglebone black and play a wav file using aplay, the sound distorted significantly and slows.
Is there a kernel bug?

I also built am33x-v5.10 and am33x-rt-v5.10 kernels and they can play sound fine.

Are there other people having the same problem?
Also, if anyone knows how to fix it, please let me know how.

A similar type of problem was addressed here. You can see the answers: USB Audio problem with BeagleBone Black + SDK 07.00.00.00. - Processors forum - Processors - TI E2E support forums

Hi @matsumoto_yasuomi which usb chipset/device are you using? This smells like a regression, so it would be nice to get one and verify…

Regards,

Robert, thank you for your reply.
The DAC devices (USB chips) I have tested are:

ifi nano idsd (XMOS)
denon da300-usb (XMOS)

What do you know?

bidrohini
thank you for your reply.
I’ll try asking on the TI forums as well.

DMA on usb is disabled on am335x images. It’s never worked and has been broken forever…

Regards,

I am facing the same issue. BBB Industrial w/
AM335x 11.8 2023-10-07 4GB microSD IoT - Debian image for BeagleBone Black using external microSD Kernel: 5.10.168-ti-r72 U-Boot: v2022.04
OR
AM335x 12.2 2023-10-07 4GB microSD IoT - Debian image for BeagleBone Black using external microSD Kernel: 5.10.168-ti-r72 U-Boot: v2022.04

I have also tried the following “minimal” images on the same board:
am335x-debian-11.8-minimal-armhf-2023-10-07-2gb.img.xz
Kernel: 5.10.168-ti-r72
U-Boot: am335x v2022.04

Gives me garbled, choppy slow audio when used with certain external USB DAC. I have tried it with Teac NT-505 DAC connected over USB. However, when I tried with a Plantronics USB headphone this problem does not exist.

However when I flashed the same BBB Industrial board with
bone-eMMC-flasher-debian-10.13-console-armhf-2023-07-01-1gb.img.xz
Kernel: 4.19.94-ti-r74
The USB audio with Teac NT-505 is great.

Any insights / reason why “bullseye” and “bookworm” images have this issues, whereas the “buster” is good?

Looking at the price, sorry i can’t debug that, if you have the time to debug/build/test changes, I’ll gladly take a patch for it.

You can also just install v4.19.x-ti into later OS’s… [ARMHF] Debian 10.x/11.x/12.x Kernel Updates - FAQ - BeagleBoard

Regards,

I will try to debug and test for sure.
I will start with your suggestion on installing v4.19.x-ti into later OS version and revert back.

Just an update / FYI - I tried with Focusrite Scarlet 2i2 USB audio interface. Same results - distorted, choppy, slow audio playback with
am335x-debian-11.8-minimal-armhf-2023-10-07-2gb.img.xz
Kernel: 5.10.168-ti-r72
U-Boot: am335x v2022.04

I made some progress on trying to debug.

DACs used to experiment: Teac NT 505, Focusrite Scarlet 2i2 and Accuphase DAC60 card.

I can confirm the the following. All DACs work well with:
Debian 11 bullseye w/ 4.19.280-bone-rt-r76 - WORKS

Debian 11 bullseye w/ bbb.io-kernel-5.15-bone-rt → NOT WORKING
Debian 11 bullseye w/ bbb.io-kernel-6.1-bone-rt → NOT WORKING

In fact any 5.x or 6.1 kernels → NOT WORKING

NOT WORKING = noise / crackle during playback, garbled and slower (sounds like its player at .6 or .7 speed)

DACs enumerate fine. Alsamixer controls (if any avaiable) for DACs work fine

Some debug:
Load CPU with command
cat /dev/zero > /dev/null

Crackling noise subsides a lot (almost goes away), but still audio not clean.

I used usbmon to generate file for the usb root complex (0u) and the DAC device (1u). Not sure is sending this will help. These files were generated with Debian 11 /w bullseye w/ bbb.io-kernel-6.1-bone-rt

I am open to provide other logs if you can tell me how to generate them.

Thanks for testing, looking at above, that’s pretty reasonable to get to test. As I am not into high end audio, what’s the minimum on top of the 2i2 one would need to test/validate/etc? Do i need an external audio source/device?

Regards,

2i2 has a headphone jack (albeit a larger 1/4 inch connector). All you would need is headphone connected to it. A small volume knob at the top right of the Scarlet 2i2 adjusts the headphone volume. When connected to the BB board over USB, except for the USB symbol light (green) make sure no other light is lit on the Scarlet 2i2 (the unit is USB powered).

  • installed am335x-debian-11.8-minimal-armhf-2023-10-07-2gb.img.xz from the monthly snapshot link onto an 32 GB micro SD card using balena etcher
  • booted beaglebone black board with the micro SD card in the slot
  • logged in with default user name and password
  • sudo apt update
  • sudo apt upgrade
  • sudo apt install alsamixer
  • copied (via scp command) a small wav (16bit 44.1KHz) file that I had ripped from a audio CD
  • reboot
  • ssh into the box. (removed USB keyboard as i needed USB port for the Scarlet 2i2 connection)
  • plugged in the Scarlet 2i2 to USB port
  • aplay -l (will list Scarlet 2i2 as the second sound card in the system)
  • aplay -D plughw:1,0 ./<wav_filename.wav>

You will hear the problem right away.

Downgrade kernel to 4.x, reboot and repeat the aplay command. Audio playback is pristine on the same setup.

Hope that helps. Thanks.