Can my Nvidia card use external hdmi audio with Nouveau?

Good day everyone.

My laptop has a RTX 4080 Nvidia dGPU with HDMI and DisplayPort directly connected to it. Video works perfectly, but I have no audio. I wonder if it’s fixable or just not supported with the open drivers.

Please open a terminal and launch alsamixer.
Hit F6 (Select sound card), if something reading HDMI shows up you should be able to get sound from it.
Be aware that HDMI audio channels may appear only when you have an active HDMI connection.

Thanks!

I find two different cards:

  • HDA Nvidia as Default:0
  • sof-hda-dsp as Default:1

Unfortunately none of them makes the audio work. I can also see in KDE’s settings that I do have my laptop’s audio (which works) and DisplayPort/HDMI audio (AD104, that doesn’t). When I start a music file or any video, I see from the systray that something is playing as the volume slider shows a visual cue every time something is actually playing, but nothing can be heard.

But when you select that, does a volume slider appear or nothing at all?

I see a “spdif” volume and it can’t go upper than zero :thinking:

I checked, and that seems normal: HDMI volume is adjusted with the “Master” volume on Alsa.
So when “DisplayPort/HDMI audio” is selected and a display/TV is actively connected to the HDMI port check that the “Master Volume” can be adjusted in alsamixer.
There should be an equivalent slider in Plasma but I cannot check (Gnome on this HDMI box).
I don’t think that all this has anything to do with Nouveau (since Video output works) but I cannot tell for sure.

I can adjust the master volume, but I can’t hear anything. Guess I’ll just use the proprietary drivers in case there’s no way out =)

edit: seems that changing the sound card in alsamixer doesn’t produce anything. I can only do it with KDE’s settings (but same goes with Ubuntu Gnome). This is strange.

If I select the sound card via DE’s GUI, it works, otherwise it doesn’t.

I also see that my system sees the audio as “AD104”, while it should be “AD103” instead, but I’m not sure if it means anything: CodeNames · freedesktop.org

From the feature matrix, seems that audio for my card should be supported FeatureMatrix · freedesktop.org

Of course… (but I’m not sure about what “otherwise” means…).
If you refer to alsamixer, F6 selects which card’s information to show, not which card is actually used in the system’s audio pipeline. You can adjust volume in alsamixer, but if that “card” is out of the audio path used at that time you don’t hear the difference.
That said, can we assume that you found a way to setup your system as you need it?
Problem solved?

See the output from:

sudo lspci -nnk |grep -E "3D|VGA"

that is what your system uses.

~> sudo lspci -nnk |grep -E "3D|VGA"
[sudo] password di root: 
0000:00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-S UHD Graphics [8086:a788] (rev 04)
0000:01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD104M [GeForce RTX 4080 Max-Q / Mobile] [10de:27a0] (rev a1)

I guess it’s correct, perhaps 4080 for laptops is AD104 as for 4070 desktop :thinking: But I’m only assuming, nothing more.

If you refer to alsamixer, F6 selects which card’s information to show, not which card is actually used in the system’s audio pipeline. You can adjust volume in alsamixer, but if that “card” is out of the audio path used at that time you don’t hear the difference.
That said, can we assume that you found a way to setup your system as you need it?
Problem solved?

Oh, I thought that F6 would let me select the card. In this case, it’s fine.

I’ll try to check if I can get more help from the Nouveau project directly, otherwise I’ll just give up and either use the laptop’s audio or use the proprietary drivers.

edit: nah, seems that there’s no way to ask for help to the project.

I see from Wikipedia:

RTX 4000 Mobile Ada Generation[376][380] 	AD104 

If audio seems to play but doesn’t reach the HDMI output, you may install helvum

zypper in helvum

and see if the HDMI output is shown as active by pipewire; if so, you may be able to “connect” it to the sound source with your mouse…

Guess it’s the nouveau wiki or just my eyes.

I’ve tried speaker-test too, but it works just like alsamixer: if I select the output source in the KDE’s settings, audio only works with the laptop. I can even select HDMI and then manually select laptop with speaker-test and no audio would be heard.

This is helvum, but I’m struggling a bit: Schermata-20241016-152135 hosted at ImgBB — ImgBB

Play some audio and see if anything connects to the “AD104 HDA Controller” inputs.
If not so, you may be able to connect the Output_FL of the player to the Playback_FL of the AD104, same for FR (just drag the Output to the Playback with your mouse).

Hi, AFAIK, unless your dGPU is set to be used rather than the iGPU, it will show the audio devices present but not available for use.

It works as usual. Appears connected, but can’t hear anything Schermata-20241016-153804 hosted at ImgBB — ImgBB

Quick video: Watch PXL_20241016_134100964 | Streamable

I think that if I can see the video on my external monitor, then my dGPU is being used, right? :thinking:

I know for sure that HDMI and DisplayPort are directly connected to the dGPU since on Windows that’s what happens.

Well, at least part of your GPU is being used. You have a dual VGA setup, so you should be able to disable the Intel and work only with the Nvidia? (At least temporarily for testing?).
I have no HW like yours ATM so cannot reproduce the issue, Malcolm has more options AFAIK.

@shishimaru then it should show up in the desktop audio settings dropdown. I use GNOME here…

Just like it’s happening in the video above? Or a different voice?