Recalbox Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • recalbox.com
    • Gitlab repository
    • Documentation
    • Discord

    Yes, its another HDMI audio puzzle

    Recalbox general
    yes another hdmi audio puzzle
    1
    3
    2507
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • noolidge
      noolidge last edited by

      Greetings friends,

      Scenario:
      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.

      Background:
      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)

      audio.bgmusic=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

      #hdmi_safe=1

      disable_overscan=1

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

      #hdmi_group=1
      #hdmi_mode=1

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

      hdmi_drive=2<β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”β€”

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

      So manually enable audio

      dtparam=audio=on

      config_hdmi_boost=0

      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

      snd_bcm2835
      uinput
      usbhid

      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 πŸ˜•

      Peace.

      noolidge 1 Reply Last reply Reply Quote 0
      • noolidge
        noolidge @noolidge last edited by

        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:

        https://www.raspberrypi.org/forums/viewtopic.php?p=1360335

        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 [
        ALSA_IEC958_CARD
        ALSA_PCM_CARD
        ALSA_CARD
        ]
        default {
        @func refer
        name defaults.pcm.iec958.card <-------------------------
        }
        }

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

        plughw:CARD=ALSA,DEV=1
        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.

        Peace.

        1 Reply Last reply Reply Quote 0
        • noolidge
          noolidge last edited by

          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?

          Peace.

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Want to support us ?

          60
          Online

          98.9k
          Users

          28.1k
          Topics

          187.1k
          Posts

          Copyright Β© 2021 recalbox.com