No Sound using new Receiver with lntel NUC's wake from suspend

  • I have a ... kind of ... similar issue that I have had to work around - but with video as well as audio.

    My setup is an Odroid H2 (Gemini Lake J4105 micro x86 system-on-a-board thing) connected to a Yamaha RX-V485 receiver connected to a Samsung RU7400 TV.

    When I use my Logitech Harmony remote to power on all three devices at once the TV doesn't register any input from the Odroid.

    The Odroid *is* up and running - I can SSH into it and see all the relevant Kodi processes and the kodi.log shows errors relating to no display device connected.

    If I manually turn on TV/receiver *first* then the Odroid initialises video and audio fine.

    The problem seems to be that the Intel HDMI signal only tries to negotiate an EDID handshake *once*, early, during it's boot or resume process and if the receiver and/or TV isn't yet ready it doesn't retry and stalls video/audio over HDMI until sleep/resumed or rebooted once more.

    So ... as Da Flex says - it seems to be a timing issue.

    The quick and dirty workaround I have set up is to either

    • add a 1 second delay to the Odroid's startup trigger in the Harmony remote software, to give the receiver time to bring up it's passthrough signalling and the TV to enable it's HDMI inputs fully.
    • or start a different video source device group first (e.g. FireTV Stick or MS Remote Display Adapter which are also plugged into receiver HDMIs) then use the Harmony remote to switch to the Kodi/Odroid "activity" - i.e. Harmony knows that the receiver/TV are already on, so just switches receiver inputs and starts the Odroid.

    I don't know enough about the low level video output process chain to say whether its an integral problem with the Intel chipset hardware, or if its something that could be addressed in software via the Linux Intel video drivers or LibreELEC tools/processes. :(

  • I will try turning on the TV and Receiver and then the NUC last. If that fixes the issue, I will try adding a 1 to 3 second delay to the NUC resuming from suspend using my Harmony 650 remote. Thanks for the suggestion. I will update this thread.

    By the way, I tried both my Intel NUC's and they both have this same exact issue with my new Yamaha Receiver.

  • I actually had a similar issue with my NUC and my Yamaha receiver. I have the NUC connected through HDMI to the receiver which is then connected by HDMI to to TV. I always keep my NUC turned on, even when the receiver and the TV are off. What would happen after a few hours of having the receiver and tv off, is that libreelec would forget that i was connected to the receiver, so all HD codecs would not play. It turned out to be an EDID issue, and i fixed it with a custom EDID following the instructions in the link below.

    Custom EDID [LibreELEC.wiki]

    Basically, just SSH into the NUC and run "getedid create". It is important to turn the receiver and tv first, and only then turn on the NUC. SSH into it, and run the getedid create script. Reboot, and it might fix your issue.

  • I had a similar problem with a PI4b and the Yamaha RX-475 receiver.

    I solved it by changing some options in the config.txt (boot folder)

    "hdmi_force_hotplug=1" did it for me.

    You can also try :

    boot_delay=x
    Wait for x seconds in start.elf before loading kernel.
    Default 1.

    boot_delay_ms=x
    Wait for x milliseconds in start.elf before loading kernel.
    Default 0.

    Do those options work on the x86 image ?

    Try this :

    Force output to specific monitor at boot

  • After a week dealing with this issue, I'm pretty sure my problem is with the NUC's resume from suspend and not a timing issue at all. I tried reaching out to Intel Tech Support but they shut me down saying my NUC is now obsolete and there is no further support. I wonder if the HDMI handshake waking from suspend is the same as a power on or reboot. I cannot power my NUC on from a full power down unless I press the NUC's power button. There is no remote control support for power on from this old NUC.

    I'm now shopping for NUC8i3BEK (2018 model) to replace my much older 2013 i5 NUC. I'll gain 4K support and the no sound issue should be fixed.

    Edited 2 times, last by blueribb (December 8, 2019 at 6:56 PM).

  • I found out that if I change the refresh rate in : Settings / Display / Refresh Rate from 60 to 59.94, the screen blinks and the sound is back - but once I enter suspend and back on again, there's no sound.

  • Then a work around may be to find the matching xrandr parameters. A most likely on your device not working sample is:

    Code
    /usr/bin/xrandr -display :0 --output HDMI-0 --mode 1920x1080 --rate 50
    /usr/bin/xrandr -display :0 --output HDMI-0 --mode 1920x1080 --rate 60

    and add them to the "post" section of a /storage/.config/sleep.d/*.power script.

  • Thanks but that's just a little over my head. It looks like toggling to 50 and back to 60 in a script but that's about all I get out of your post. I would need basic instructions to attempt something like that. One thing that comes to mind is the pop-up message I got when changing the refresh rate manually the other night - it asked if I wanted to save the changes. If this script works, then what would happen to the pop-up question ?

  • Yes, that was more brainstorming ...

    It look like that toggling the refresh rate does initialize the audio driver again, Let's try to automate this.

    If this script works, then what would happen to the pop-up question ?

    The script is returning to the original refresh rate, there is no need to save anything new.

    Please post the output of xrandr after a clean boot.

  • Here's a debug log I uploaded earlier today. I started Kodi by waking my Intel NUC from Suspend and then enabled debug logging. There was NO audio. If I were to reboot the NUC, the audio would return. I did not reboot for the log below.

    Debug Log

    Here's the output of xrandr (no sound, wake from suspend):

    LibreELEC (official): 9.2.0 (Generic.x86_64)

    LibreELEC:~ # xrandr

    Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767

    DP1 disconnected primary (normal left inverted right x axis y axis)

    DP2 disconnected (normal left inverted right x axis y axis)

    DP3 disconnected (normal left inverted right x axis y axis)

    HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1600mm x 900mm

    1920x1080 60.00*+ 59.94 24.00 23.98

    1920x1080i 60.00 59.94

    1400x1050 59.95

    1280x1024 60.02

    1280x720 60.00 59.94

    1024x768 60.00

    800x600 60.32

    720x480 60.00 59.94

    720x480i 60.00 59.94

    640x480 60.00 59.94

    HDMI2 disconnected (normal left inverted right x axis y axis)

    HDMI3 disconnected (normal left inverted right x axis y axis)

    VGA1 disconnected (normal left inverted right x axis y axis)

    VIRTUAL1 disconnected (normal left inverted right x axis y axis)

    LibreELEC:~ #

    Here's the output of xrandr after a clean reboot (sound working):

    LibreELEC (official): 9.2.0 (Generic.x86_64)

    LibreELEC:~ # xrandr

    Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767

    DP1 disconnected primary (normal left inverted right x axis y axis)

    DP2 disconnected (normal left inverted right x axis y axis)

    DP3 disconnected (normal left inverted right x axis y axis)

    HDMI1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1600mm x 900mm

    1920x1080 60.00*+ 59.94 24.00 23.98

    1920x1080i 60.00 59.94

    1400x1050 59.95

    1280x1024 60.02

    1280x720 60.00 59.94

    1024x768 60.00

    800x600 60.32

    720x480 60.00 59.94

    720x480i 60.00 59.94

    640x480 60.00 59.94

    HDMI2 disconnected (normal left inverted right x axis y axis)

    HDMI3 disconnected (normal left inverted right x axis y axis)

    VGA1 disconnected (normal left inverted right x axis y axis)

    VIRTUAL1 disconnected (normal left inverted right x axis y axis)

    LibreELEC:~ #

    Edited once, last by blueribb (December 10, 2019 at 2:59 AM).

  • Please suspend/resume, ssh into your device, try

    Code
    xrandr -display :0 --output HDMI1 --mode 1920x1080 --rate 59.94
    xrandr -display :0 --output HDMI1 --mode 1920x1080 --rate 60

    and check if there is sound again.

    If (and only if) this work try to automate it:

    Code
    mkdir -p /storage/.config/sleep.d
    cat >/storage/.config/sleep.d/99-toggle_rate.power <<'EOF'
    #!/bin/sh
    case "$1" in
       post)
         xrandr -display :0 --output HDMI1 --mode 1920x1080 --rate 59.94
         xrandr -display :0 --output HDMI1 --mode 1920x1080 --rate 60
         ;;
    esac
    EOF

    Edited once, last by mglae: Create sleep.d (December 10, 2019 at 6:52 PM).

  • The audio did return after running the first code but the second code gave this result:

    LibreELEC (official): 9.2.0 (Generic.x86_64)

    LibreELEC:~ # cat >/storage/.config/sleep.d/99-toggle_rate.power <<'EOF'

    > #!/bin/sh

    > case "$1" in

    > post)

    > xrandr -display :0 --output HDMI1 --mode 1920x1080 --rate 59.94

    > xrandr -display :0 --output HDMI1 --mode 1920x1080 --rate 60

    > ;;

    > esac

    > EOF

    -sh: can't create /storage/.config/sleep.d/99-toggle_rate.power: nonexistent dir ectory

    LibreELEC:~ #