• [gentoo-user] Kernel 6.0 upgrade broke sound to TV over HDMI

    From Dale@21:1/5 to All on Sat Nov 26 05:50:01 2022
    Howdy,

    I found a new version of the nvidia-drivers.  I figured it might work
    with the new 6.0 kernel so I tested it.  Sure enough, it compiled and installed.  So, new kernel, new nvidia-driver.  Keep that in mind. When
    I booted into the new kernel using the new nvidia drivers, sound worked everywhere except on my TV which is connected by HDMI cable.  The TV
    works with old kernel and new drivers.  The new kernel seems to be what
    is breaking my TV sound.  I think the nvidia drivers can be ruled out at
    this point but one never knows. 

    My usual setup.  I use ALSA for my sound, built into the kernel.  I
    don't use pulse, pulseaudio or whatever for my sound.  I use Smplayer to
    play videos on my TV which I refer to as screen 2.  Some places refer to
    it as screen one, count starting from 0 instead of 1.  So, to avoid
    confusion, TV screen means HDMI port used for TV.  Main screen, 1 in
    most places, means monitor that I look at for everything other than
    watching TV.  It is connected with a DB15HD port.  I have Smplayer set
    to display on TV screen unless I manually drag it over to main screen to
    adjust something. 

    To get sound to go to the TV screen, I set this in Smplay preferences
    for audio where it says Output driver:  alsa:device=hw=1.7  Until now,
    that has always worked and that is several years and even a few kernel upgrades.  Sound for Smplayer goes to TV screen but all other sound goes
    to the main speakers through the little jack and a amp I have hooked to
    it. 

    This is some info, I'm getting same info for both kernels. 


    Kernel 5.14  ------------------------------------------------------------------------------------

    aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: SB [HDA ATI SB], device 0: VT2020 Analog [VT2020 Analog]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 0: SB [HDA ATI SB], device 1: VT2020 Digital [VT2020 Digital]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 0: SB [HDA ATI SB], device 2: VT2020 Alt Analog [VT2020 Alt Analog]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 7: HDMI 1 [LG TV        ]
      Subdevices: 0/1
      Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 10: HDMI 4 [HDMI 4]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 11: HDMI 5 [HDMI 5]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    root@fireball ~ # aplay -L
    null
        Discard all samples (playback) or generate zero samples (capture) default:CARD=SB
        HDA ATI SB, VT2020 Analog
        Default Audio Device
    sysdefault:CARD=SB
        HDA ATI SB, VT2020 Analog
        Default Audio Device
    front:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        Front output / input
    surround21:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        2.1 Surround output to Front and Subwoofer speakers surround40:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        4.0 Surround output to Front and Rear speakers
    surround41:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        5.0 Surround output to Front, Center and Rear speakers surround51:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Digital
        IEC958 (S/PDIF) Digital Audio Output
    hdmi:CARD=NVidia,DEV=0
        HDA NVidia, HDMI 0
        HDMI Audio Output
    hdmi:CARD=NVidia,DEV=1
        HDA NVidia, LG TV       
        HDMI Audio Output
    hdmi:CARD=NVidia,DEV=2
        HDA NVidia, HDMI 2
        HDMI Audio Output
    hdmi:CARD=NVidia,DEV=3
        HDA NVidia, HDMI 3
        HDMI Audio Output
    hdmi:CARD=NVidia,DEV=4
        HDA NVidia, HDMI 4
        HDMI Audio Output
    hdmi:CARD=NVidia,DEV=5
        HDA NVidia, HDMI 5
        HDMI Audio Output
    root@fireball ~ #



    Kernel 6.0  ------------------------------------------------------------------------------------

    root@fireball ~ # aplay -l
    **** List of PLAYBACK Hardware Devices ****
    card 0: SB [HDA ATI SB], device 0: VT2020 Analog [VT2020 Analog]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 0: SB [HDA ATI SB], device 1: VT2020 Digital [VT2020 Digital]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 0: SB [HDA ATI SB], device 2: VT2020 Alt Analog [VT2020 Alt Analog]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
      Subdevices: 0/1
      Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 10: HDMI 4 [HDMI 4]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    card 1: NVidia [HDA NVidia], device 11: HDMI 5 [HDMI 5]
      Subdevices: 1/1
      Subdevice #0: subdevice #0
    root@fireball ~ # aplay -L
    null
        Discard all samples (playback) or generate zero samples (capture) default:CARD=SB
        HDA ATI SB, VT2020 Analog
        Default Audio Device
    sysdefault:CARD=SB
        HDA ATI SB, VT2020 Analog
        Default Audio Device
    front:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        Front output / input
    surround21:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        2.1 Surround output to Front and Subwoofer speakers surround40:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        4.0 Surround output to Front and Rear speakers
    surround41:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        4.1 Surround output to Front, Rear and Subwoofer speakers surround50:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        5.0 Surround output to Front, Center and Rear speakers surround51:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        5.1 Surround output to Front, Center, Rear and Subwoofer speakers surround71:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Analog
        7.1 Surround output to Front, Center, Side, Rear and Woofer speakers iec958:CARD=SB,DEV=0
        HDA ATI SB, VT2020 Digital
        IEC958 (S/PDIF) Digital Audio Output
    hdmi:CARD=NVidia,DEV=0
        HDA NVidia, HDMI 0
        HDMI Audio Output
    hdmi:CARD=NVidia,DEV=1
        HDA NVidia, HDMI 1
        HDMI Audio Output
    hdmi:CARD=NVidia,DEV=2
        HDA NVidia, HDMI 2
        HDMI Audio Output
    hdmi:CARD=NVidia,DEV=3
        HDA NVidia, HDMI 3
        HDMI Audio Output
    hdmi:CARD=NVidia,DEV=4
        HDA NVidia, HDMI 4
        HDMI Audio Output
    hdmi:CARD=NVidia,DEV=5
        HDA NVidia, HDMI 5
        HDMI Audio Output
    root@fireball ~ #


    I noticed something different between the two.  In old kernel, it shows
    'card 1: NVidia [HDA NVidia], device 7: HDMI 1 *[LG TV ]*' which is my
    TV.  However, under the new kernel, it does not show that.  It still
    shows device 7 but it seems to not connect to my TV or list it.  Keep in
    mind, the picture is on the TV.  Just no sound.

    I went into make menuconfig and looked for some option that might affect
    this but if it is there, I couldn't find it.  Maybe it isn't obvious. 
    Maybe it is some hidden thing that only shows up when something
    unrelated is enabled.  Since the new drivers work with the old kernel,
    I'd think that rules the nvidia drivers out.  I'm thinking this is a
    kernel config problem but google isn't helping. 

    Should I bite the bullet and start using that pulse, pulseaudio or
    whatever thing?  Is the old ALSA way just getting to outdated?  When I googled, it was not a lot of hits regarding alsa.  The pulse thing did
    have hits but couldn't figure out how to apply its info to this. 

    Thoughts?  Options?  Need more info? 

    Dale

    :-)  :-)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Arve Barsnes@21:1/5 to Dale on Sat Nov 26 10:30:01 2022
    On Sat, 26 Nov 2022 at 05:40, Dale <rdalek1967@gmail.com> wrote:
    To get sound to go to the TV screen, I set this in Smplay preferences
    for audio where it says Output driver: alsa:device=hw=1.7 Until now,
    that has always worked and that is several years and even a few kernel upgrades. Sound for Smplayer goes to TV screen but all other sound goes
    to the main speakers through the little jack and a amp I have hooked to
    it.

    I won't be telling you what to one way or the other about pulseaudio,
    but I don't expect ALSA to stop working any time soon. Just for
    reference, to get sound to my TV when playing video with mpv
    (originally a fork of mplayer, so possibly accepts most of the same
    parameters that would work for you in smplay), I use this parameter:

    --audio-device=alsa/hdmi:CARD=NVidia,DEV=0

    Looking at your aplay output from the old kernel, putting this in
    Smplay might work:

    Output driver: alsa/hdmi:CARD=NVidia,DEV=1

    I wonder though if it means anything that in the new aplay -l output
    for your TV it says, Subdevices: 0/1.

    Cheers,
    Arve

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Rich Freeman@21:1/5 to rdalek1967@gmail.com on Sat Nov 26 11:20:01 2022
    On Fri, Nov 25, 2022 at 11:40 PM Dale <rdalek1967@gmail.com> wrote:

    I found a new version of the nvidia-drivers. I figured it might work
    with the new 6.0 kernel so I tested it. Sure enough, it compiled and installed.

    And this is why compiling isn't evidence that something works. :)

    What nvidia driver version are you using?

    Also, why are you using it at all? The proprietary drivers their pros
    and cons. The issues you're running into are one of the well-known
    cons - if you want to run stable kernels, they'll be occasionally
    breaking, and if you run mainline kernels they'll break all the time.

    If you're going to run out-of-tree kernels you should almost certainly
    stick to longterm kernels.

    Usually people use the proprietary drivers for gaming,
    high-performance 3D graphics in general, or CUDA (AI, video encoding,
    etc). If you aren't doing one of those then I suspect the
    linux-supplied drivers will just work and shouldn't ever break. You
    can run stable kernels all you want with those.

    --
    Rich

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)