Mailing List Archive

Kernel 6.0 upgrade broke sound to TV over HDMI
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

:-)  :-)
Re: Kernel 6.0 upgrade broke sound to TV over HDMI [ In reply to ]
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
Re: Kernel 6.0 upgrade broke sound to TV over HDMI [ In reply to ]
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