Play audio throuhg HDMI on BeagleBone Black

After work with a multitouch screen for the BeagleBone Black, now I just want to play audio/sounds through the HDMI connection as the multitouch screen has a speaker.

First of all, I just copied an audio sample, and try to reproduce it by ‘vlc’, but next message is shown:

Audio output failed. The audio device “default” could not be used. No such file or directory.”

Then, I have installed next tools:

‘alsa-base’, ‘alsa-utils’, ‘alsa-tools’, ‘alsamixergui’

But, when I tried to launch ‘alsamixergui’, the next message is shown:

alsamixer: function snd_ctl_open failed for default: No such file or directory

And at “/etc/modprobe.d/alsa-base.conf”, the content is:

# autoloader aliases

install sound-slot-0 /sbin/modprobe snd-card-0

install sound-slot-1 /sbin/modprobe snd-card-1

install sound-slot-2 /sbin/modprobe snd-card-2

install sound-slot-3 /sbin/modprobe snd-card-3

install sound-slot-4 /sbin/modprobe snd-card-4

install sound-slot-5 /sbin/modprobe snd-card-5

install sound-slot-6 /sbin/modprobe snd-card-6

install sound-slot-7 /sbin/modprobe snd-card-7

# Cause optional modules to be loaded above generic modules

install snd /sbin/modprobe --ignore-install snd && { /sbin/modprobe --quiet snd-ioctl32 ; /sbin/modprobe --quiet snd-seq ; : ; }

install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi && { /sbin/modprobe --quiet snd-seq-midi ; : ; }

install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 && { /sbin/modprobe --quiet snd-emu10k1-synth ; : ; }

# Keep snd-pcsp from beeing loaded as first soundcard

options snd-pcsp index=-2

# Keep snd-usb-audio from beeing loaded as first soundcard

options snd-usb-audio index=-2

# Prevent abnormal drivers from grabbing index 0

options bt87x index=-2

options cx88_alsa index=-2

options snd-atiixp-modem index=-2

options snd-intel8x0m index=-2

options snd-via82xx-modem index=-2

Moreover, I have try with next commands:

‘alsamixer -c 1 (2, 3… 7)’

Having next output:

invalid card index: 1

Is there any way to reproduce any sound (*.midi, *.wav, *.mp3…) through hdmi easily?

Adding new information about the issue:

HDMI audio is in patch hell on mainline, if you want to use "4.1.x"
with hdmi audio you need to use the ti branch:

cd /opt/scripts/tools/
git pull
sudo ./update_kernel.sh --ti-channel --lts-4_1

Regards,

Only specific video modes of the HDMI framer device support audio. See the wiki page.

I have checked that the current resolution from BeagleBone’s HDMI is: 1280x720@60e (/boot/uboot/uEnv.txt)

I’m working with “4.1.x” kernel modified to support all multitouch screens.

So, if I update the kernel from ti branch, I suspect I lose the kernel’s modifications to support the multitouch screens I’m working with. Is this right?

Is there any other way to support audio at this kernel? Maybe, if I replace the kernel for a newer one (ie. “4.5.x”)?

Moreover, if I follow next steps:

cd /opt/scripts/tools/
git pull
sudo ./update_kernel.sh --ti-channel --lts-4_1

I get this message:

Update your bbb's clock:

we use "Let's Encrypt Authority X1" certificate, which has a narrow
time window: "3/16/16" -> "6/14/16"..

Regards,

Thanks Robert!
I have an issue with ntp update at boot. I have solved it temporary.

Well, I have just tried to launch the ‘update_kernel’ script:

cd /opt/scripts/tools/
git pull
sudo ./update_kernel.sh --ti-channel --lts-4_1

But it fails due to there is not space left on device.

cp: failed to extend ‘/boot/uboot/initrd.img’: No space left on device

Checking device with ‘df -h’, output is:

/dev/mmcblk0p1 96M 96M 100% /boot/uboot

Is there any option to extend this partition? Or maybe, can I remove some file from “/boot/uboot” without blocking the system?
If ‘*_bak’ folders are removed the result is the same, no space left neither, and at reboot, BBB is bricked.

Kernel is updated to TI’s branch: “4.1.15-ti-r40”.

Now, VLC player does not show any error message and plays the sound sample, but no sound is reproduced.
I have checked the basics, volume, mute option and similar. These are not the failures.

Which could the missing part for making the sound audible? Maybe codecs?

Kernel is updated to TI’s branch: “4.1.15-ti-r40”.

Now, VLC player does not show any error message and plays the sound sample, but no sound is reproduced.
I have checked the basics, volume, mute option and similar. These are not the failures.

Which could the missing part for making the sound audible? Maybe codecs?

Testing the sound configuration, next instructions are launched:

ls /dev/snd

ls /proc/asound

cat /proc/asound/cards
cat /proc(asound/devices
aplay -l
cat /proc/asound/card0/pcm0p/sub0/hw_params

With output:

Black card0 cards devices oss pcm seq timers version

0 [Black ]: TI_BeagleBone_B - TI BeagleBone Black

TI BeagleBone Black

2: [ 0] : control

3: [ 0- 0]: digital audio playback

4: [ 0- 0]: digital audio capture

33: : timer

**** List of PLAYBACK Hardware Devices ****

card 0: Black [TI BeagleBone Black], device 0: HDMI hdmi-hifi-0 []

Subdevices: 0/1

Subdevice #0: subdevice #0

access: MMAP_INTERLEAVED

format: S32_LE

subformat: STD

channels: 2

rate: 32000 (32000/1)

period_size: 1024

buffer_size: 16384

But there is no sound.

Any hint/tip?

Going forward in my test:

Launching alsaplayer, wav and mp3 files can be played, but no sound is reproduced.

It seems as the BeagleBone’s drivers are not pointing to right audio interface.
How can I checked if the SoC’s audio codec and the HDMI’s interface are configured and working fine?

By the moment, I can’t find a solution for the issue. I would be glad if someone could help me with it.

Do you have a reference?

As far as I can tell, based on https://github.com/archlinuxarm/PKGBUILDs/blob/master/core/linux-am33x/PKGBUILD, the Arch Linux kernel I’m using should have all the necessary patches to make this work with 4.5.2. Unfortunately it’s not. aplay -l still shows no drivers.

@RobertCNelson do you see anything wrong with that patch set that might be a problem? I’d really prefer to use Arch since the package versions are new enough to support some of the features I’m trying to implement.

I do, of course, have the correct resolution and I confirmed the edid does have the audio block.

As far as I can tell, based on
https://github.com/archlinuxarm/PKGBUILDs/blob/master/core/linux-am33x/PKGBUILD,
the Arch Linux kernel I'm using *should* have all the necessary patches
to make this work with 4.5.2. Unfortunately it's not. aplay -l still shows
no drivers.

That patchset doesn't include hdmi audio for the beaglebone black..

@RobertCNelson do you see anything wrong with that patch set that might be
a problem? I'd really prefer to use Arch since the package versions are new
enough to support some of the features I'm trying to implement.

Please see my previous statement, "NOTHING" has changed since then, and you
can confirm that by looking at linux-next:

https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/log/arch/arm/boot/dts/am335x-boneblack.dts

Regards,

The last rfc was posted here:

https://www.spinics.net/lists/alsa-devel/msg48476.html

Regards,