Yes, its another HDMI audio puzzle

  • Greetings friends,

    Pi3 RecalBox up and running.
    Keyboard and mouse attached with multiport usb hub
    Connected to Yamaha 5.1 via HDMI
    Audio is working in Kodi. Audio not working in RecalBox.

    Have used the Pi with retrosmc, and retropie builds. No issue with HDMI (on other SD cards obvioulsy) Scoured forums for some ideas; haven't found any solution in 3 days. I am now here 🙂 lol

    Done so far:

    1. edited recalbox.conf - ensured the following is here:

    ------------ C - Audio ------------

    Set the audio device (auto, hdmi, jack)

    audio.device=hdmi <==================

    Set system volume (0..100)

    audio.volume=100 <=============

    Enable or disable system sounds in ES (0,1)


    1. edited /boot/config.txt, ensured the following is here:

    cat /boot/config.txt

    uncomment if you get no picture on HDMI for a default "safe" mode



    uncomment to force a specific HDMI mode (this will force VGA)


    Sound output. Set to 0 or comment for autodetect, 1 for DVI, 2 to force HDMI.


    Using /etc/modules is deprecated and no longer supported on 4.4 kernel

    So manually enable audio



    force hdmi while the tv can take time before sending the signal on the hdmi output

    hdmi_force_hotplug=1 <—————————

    1. cat /proc/asound/cards

    0 [ALSA ]: bcm2835 - bcm2835 ALSA
    bcm2835 ALSA

    1. fiddled with /etc/retroarch.cfg (dont know whether 'hw 0,3' is in fact correct here as cannot install 'aplay' to determine what is what...) - question: how can I determine this without aplay?

    really just guessing here:

    grep audio /etc/retroarch.cfg | grep -v "#"

    audio_enable = true
    audio_out_rate = 44100
    audio_driver = alsa
    audio_device = hw:0,3
    audio_sync = true

    • however have noticed that a custom .cfg is in use, so assume this is not being read anyway...
      i.e. /recalbox/share/system/configs/retroarch/retroarchcustom.cfg
    1. lsmod | grep snd

    snd_bcm2835 20511 2
    snd_pcm 75698 2 snd_bcm2835
    snd_timer 19156 1 snd_pcm
    snd 51908 6 snd_bcm2835,snd_pcm,snd_timer

    1. cat /etc/modules.conf


    1. amixer

    Simple mixer control 'PCM',0
    Capabilities: pvolume pvolume-joined pswitch pswitch-joined
    Playback channels: Mono
    Limits: Playback -10239 - 400
    Mono: Playback 400 [100%] [4.00dB] [on]

    dived into:
    dmeg, /var/log/messages and things of interest that the support_script presents, but cannot find any specific error related to why HDMI doesnt work with the build. was thinking of attempting to run the retroarch with --verbose and get some logging somewhere or is that too granular?

    hugely appreciate any help from some learned people out there - I think RecalBox is superb, but obviously not for me if I cant get audio working 😕


  • Thought another update was needed after finding a very interesting thread about passthrough multichannel stuff over hdmi. this poor guy was configuring mythtv, but the setup from pi -> receiver over hdmi is identical and it appears its down to the "apparently unrelated device bcm2835 IEC958/HDMI"; my scenario exactly:

    Having then gone back into osmc(retrosmc), I navigated here, which to me appears to be the reason why the pcm stuff is working ; as soon as I load emulation station and a rom, the receiver kicks in to PCM mode and I hear sound:

    root@osmc-gee:/usr/share/alsa/pcm# head -20 hdmi.conf

    Hardware output from HDMI

    pcm.!hdmi {
    @args [ CARD DEV AES0 AES1 AES2 AES3 ]
    @args.CARD {
    type string
    default {
    @func getenv
    vars [
    default {
    @func refer
    name defaults.pcm.iec958.card <-------------------------

    My setup in osmc uses 0,1 as below (aplay -L)

    bcm2835 ALSA, bcm2835 IEC958/HDMI
    Hardware device with all software conversions

    So, learned gurus out there ---- what can I do to emulate this puzzle on RecalBox? I'd gladly have a play if I was able to mount stuff in / but this appears not possible without potentially breaking something. Not a problem in itself, but I'm out of SD cards and I dont have a backup.


  • Tried various things with .conf files above after getting root (/) filesystem mounted as rw, but still unable to get things working.

    Used retroarch directly after stopping emulationstation manually, i.e.
    retroarch --menu --verbose ; customretroarch definitely being read-in including the following audio settings. have confirmed that audio_device is @ 0,1 and modified the audio_driver with alsa too.

    retroarch --features compiled with ALSA as expected, nothing else valid to use:

    audio_enable = "true"
    audio_driver = "alsa"
    audio_device = "hw:0,1"
    audio_sync = "true"

    simply getting an "failed to initialize audio" error from retroarch log:

    [ERROR] [ALSA]: Failed to initialize...

    [ERROR] Failed to initialize audio driver. Will continue without audio.


    decided to take a good look at osmc config with retro and what its using:
    audio_driver = "alsathread"
    audio_resampler = "sinc"
    audio_device = ""
    audio_sync = "true"

    I emulated this in recalbox, and the errors in retroarch stop with the following in the retroarch startup as in osmc

    [INFO] ALSA: Using signed 16-bit format.
    [INFO] ALSA: Period size: 384 frames
    [INFO] ALSA: Buffer size: 1536 frames

    so figured I was onto something, however still no sound.

    really just clueless now. remember, I launch emulation in osmc (from kodi) and I start up a game... audio just works.

    i suppose my next question is: is there something in kodi that launches stuff correctly or emulation station, or is this simply a recalbox 'startup driver problem' that doesnt recognize the audio correctly. can anyone shed light on this for me?


Want to support us ?