2 Replies Latest reply on Apr 7, 2016 10:52 AM by alvjorge

    Play audio through HDMI on BeagleBone Black

    alvjorge

      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?

       

      ______________ EDIT ______________

       

      'lsmod':

          snd     56846   6   snd_soc_core, snd_timer, snd_pcm, snd_seq, snd_seq_device, snd_comp

       

      'modinfo snd':

          filename:     /lib/modules/4.1.16-bone18/kernel/sound/core/snd.kp

          alias:           char-major-116-*

          license:       GPL

          description: Advanced Linux Sound Architecture driver for soundcards.

          author:        Jaroslav Kysela <perex@perex.cz>

          license:       GPL

          description: Jack detection support for ALSA

          author:        Mark Brown <broonie@opensource.wolfsonmicro.com>

          depends:     soundcore

          intree:          Y

          vermagic:     4.1.16-bone18 mod_unload modversions ARMv7 thumb2 p2v8

          parm:           slots:Module names assigned to the slots. (array of charp)

          parm:           major:Major # for sound driver. (int)

          parm:           cards_limit:Count of auto-loadable soundcards. (int)

       

      ______________ EDIT2 ______________

       

      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

       

      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?

      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.
        • Re: Play audio through HDMI on BeagleBone Black
          clem57

          Did the touchscreen use the HDMI port? Does it support sound? Maybe a USB audio speaker could be used?

          Clem

            • Re: Play audio through HDMI on BeagleBone Black
              alvjorge

              Multitouch screen should support audio. It has an internal speaker. But, meanwhile I test another options, I have launched the question to screen's manufacturer.

               

              Another test I have done is:

              - Current kernel: 4.1.18-ti-r56

               

              - aplay -L:

                   null

                        Discard all samples (playback) or generate zero samples (capture)

                   default:CARD=Black

                        TI BeagleBone Black,

                        Default Audio Device

                   sysdefault:CARD=Black

                        TI BeagleBone Black,

                        Default Audio Device

               

              - speaker-test -D CARD=Black -t song.wav -c 2 -s 1

                   speaker-test1.0.25

               

                   Playback device is CARD=Black

                   Stream parameters are 48000Hz, S16_LE, 2 channels

                   ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM CARD=Black

                   Playback open error: -2,No such file or directory

               

              __________________ EDIT __________________

               

              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.