GTX 1060 - No Audio over HDMI - Only HDA Intel detected - Azalia

This Post is 2 Years Old!

But for other’s sake I will cut and paste the solutions and info, that worked for me. Only because I don’t see my answer anywhere in the top 3 pages.

Read at your own peril … LOL

Hp Omen X Troubleshooting

ALSA, PulseAudio, HDMI, Kent, Sound File Location, Steam, HP Computers, Launchpad, Hibernate

• Commands
• $ pacmd list-cards
• $ sudo lspci -H1 (When Dirver IS installed properly)
‣ 01:00.0 VGA compatible controller: NVIDIA Corporation GP104M [GeForce GTX 1080 Mobile] (rev a1)
‣ 01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)
• Solved

• No NVHDA Solution - Install a Kernel module to toggle audio function.
∘ I can confirm that kernel module, posted by
∘ Maik Freudenberg (75985 – [NVC1] HDMI audio device only visible after rescan),
• Kernel module to toggle audio function
∘ is working fine on my system. Thank you for the fix. The HDMI audio device now works as it should (now detected).
∘ The steps I did to enable HDMI audio device:
∘ 1. Download and extract the file nvhda.tar.xz. (from above link)
∘ 2. Run these commands in Terminal, in the location of the extracted folder
• $ make
• $ sudo make install
• $ echo nvhda | sudo tee -a /etc/initramfs-tools/modules
• $ echo “options nvhda load_state=1” | sudo tee /etc/modprobe.d/nvhda.conf
‣ sudo update-initramfs -u
∘ 3. Reboot.
∘ Reason Possibly Explained
∘ PCI: Enable NVIDIA HDA controllers
‣ Many NVIDIA GPUs can be configured as either a single-function video device or a multi-function device with video at function 0 and an HDA audio controller at function 1. The HDA controller can be enabled or disabled by a bit in the function 0 config space.
‣ Some BIOSes leave the HDA disabled, which means the HDMI connector from the NVIDIA GPU may not work. Sometimes the BIOS enables the HDA if an HDMI cable is connected at boot time, but that doesn’t handle hotplug cases.
‣ Enable the HDA controller on device enumeration and resume and re-read the header type, which tells us whether the GPU is a multi-function device.
‣ This quirk is limited to NVIDIA PCI devices with the VGA Controller device class. This is expected to correspond to product configurations where the NVIDIA GPU has connectors attached. Other products where the device class is 3D Controller are expected to correspond to configurations where the NVIDIA GPU is dedicated (dGPU) and has no connectors. See original post (URL below) for more details.
‣ This commit takes inspiration from an earlier patch by Daniel Drake.

#############################################################################
Problems SOLVED! I
∘ Hibernate/Suspend - NVHDA Sound doesn’t repopulate
• However, if I manually disable the audio output output “sudo tee /proc/acpi/nvhda <<< OFF” I’m then able to get it to sleep. I then have to turn it on again on resume with "sudo tee /proc/acpi/nvhda <<< ON
• $ sudo tee /proc/acpi/nvhda <<< OFF (before Hibernation/Suspend or Sleep)
• $ sudo tee /proc/acpi/nvhda <<< ON (After Resume)
• SOLVED! I
#########################################################################################

• ACPI (Advance Configuration and Power Interface)
• ERROR “acpi int3400 unsupported event” ERRORS …
‣ Edit Grub
• sudo gedit /etc/default/grub
• add to "grub’s …
∘ GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash”, … acpi=strict to look like
∘ GRUB_CMDLINE_LINUX_DEFAULT=“quiet splash acpi=strict”

• and Change GRUB_TIMEOUT=10 see Grub to GRUB_TIMEOUT=2. This will make the Grub load time to 2 seconds.
• sudo gedit /etc/default/grub
• sudo update-grub2
• sudo update-initramfs -u (Always a good idea)
• Limit Time Sop Jobs from taking 1 minute 30 seconds to run hundreds of acpi:3400 errors
• sudo gedit /etc/systemd/system.conf
∘ DefaultTimeoutStartSec=3s
∘ DefaultTimeoutStopSec=3s
∘ sudo update-initramfs -u (Always a good idea)
• Hibernate

• 2018 GTX 1080 Problems
∘ NVidia’s display and Sound
‣ lspci
• 01:00.0 VGA compatible controller: NVIDIA Corporation GP104M [GeForce GTX 1080 Mobile] (rev a1)
• 01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)

• pci:0 &
• bus info: pci@0000:01:00.0
‣ In Windows: Nvidia High Definition Sound
∘ Driver Version 1.3.37.4
∘ Driver Date 6/24/2018
∘ Intel’s
• pci:0 (as well)
• bus info: pci@0000:00:01.0
∘ PCH-H High Definition Audio Controller
∘ lspci -v | grep -A7 -i “audio”
• 00:1f.3 Audio device: Intel Corporation CM238 HD Audio Controller (rev 31) (prog-if 80)
‣ (vendor: 8086 (“Intel Corporation”), device: a171 (“CM238 HD Audio Controller”))
‣ Subsystem: Hewlett-Packard Company CM238 HD Audio Controller
‣ Kernel modules: snd_hda_intel
• 01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)
‣ Subsystem: Hewlett-Packard Company GP104 High Definition Audio Controller
‣ Kernel driver in use: snd_hda_intel
‣ Kernel driver in use: snd_hda_intel
############################################################################

• The newest kernels have moved the video mode setting into the kernel. So all the programming of the hardware specific clock rates and registers on the video card happen in the kernel rather than in the X driver when the X server starts… This makes it possible to have high resolution nice looking splash (boot) screens and flicker free transitions from boot splash to login screen.
‣ Unfortunately, on some cards this doesnt work properly and you end up with a black screen.
‣ nomodeset - Adding the nomodeset parameter instructs the kernel to not load video drivers and use BIOS modes instead until X is loaded.
• Unfortunately, the kernel won’t see the audio function unless you remove the graphics function first, which temporarily breaks the console. Because of that, it works best if you write a Shell Scripts to do it so you don’t have to SSH into the system or try to type the commands into the console blind.
∘ Obviously, you have to stop the X server first so that you can unload the NVIDIA drivers.
∘ For example, on my system, the GPU is at 01:00.0 and its parent PCI bridge is 00:01.0. So the Shell Scripts I use is:
∘ mine!! NVidia’s display bus info: pci@0000:01:00.0 Sound Should and Will be 01:00.1
‣ I was able to automatically have this work upon boot by using the legacy rc.local file, which is run by systemd upon boot. This is the content of the file:
• sudo gedit /etc/rc.local
sudo gedit /etc/rc.local
paste the code:

• No Driver Installed??
∘ Install common Sound card drivers and needed packages in Ubuntu.
• sudo apt-get install build-essential linux-headers-uname -r alsa-base alsa-firmware-loaders alsa-oss alsa-source alsa-tools alsa-tools-gui alsa-utils alsamixergui
• sudo apt install kernel-package dh-make dwz libmail-box-perl uboot-mkimage
‣ 643MBs of Stuff hmmm? Optimism?

• Other stuff

• sudo gedit /etc/modprobe.d/blacklist.conf
∘ CODE: SELECT ALL
‣ # Disable the HDMI audio
‣ blacklist snd_hda_intel

• Restart sound 1
• Restart sound 2
• sudo service pulseaudio restart
• pulseaudio -k
• killall pulseaudio
∘ start pulseaudio again as a daemon :
• pulseaudio -D
∘ Check if any pulseaudio instance is running :
• pulseaudio --check

• Skype
∘ Playback
‣ headset - default device (default)
‣ HDMI 0 works
‣ White Speakers - USB AUDIO Device
‣ USB Sound Card - USB AUDIO, USB Audio Default Audio Device (default:CARD=AUDIO)
∘ Mic - USB Audio, USB Audio Default Audio Device (sysdefault:CARD=AUDIO)
• Phonon Settings
∘ Playback
‣ Sound Card - built-in
• USB AUDIO, USB Audio Default Audio Device (default:CARD=AUDIO)
‣ USB Sound Card - USB AUDIO (USB audio)
• MIC, - USB AUDIO (USB audio) (Default Audio Device)

• Crackling Mic
∘ Skype Microphone not working - SOLVED
‣ $ echo “autospawn = no” > ~/.pulse/client.conf
‣ $ killall plastering
‣ restart skype
• select 1st usb audio device in skype mic options (now many options before just pulseaudio
∘ Hallelujah

• if using HDMI output
∘ set in Frontend of Myth to ALSA:plughw1,3
‣ or pulseaudio:
• PulseAudio
∘ Pulseaudio Not Loading On Startup
‣ In case anybody else has experienced this problem, I was able to resolve it by entering autospawn = yes in ~/.pulse/client.conf
∘ kill or restart pulseaudio as user (not root)
‣ pulseaudio --kill && pulseaudio --start
∘ pulseaudio -k, killall pulseaudio
∘ sudo alsa force-reload
• Sound Glitches Kubuntu
∘ PulseAudio Volume Control
∘ pulse should not be installed with KDE ??
∘ remove the $HOME/.kde/share/config/phonondevicesrc file and restart KDE
∘ Here’s what I did to get PulseAudio managing all the sound for me in Intrepid KDE4.
‣ Setting Up Pulse
• First you need to get pulseaudio installed and set up properly if it is not already. You can get all the pulseaudio packages with your package manager. You also need to get a few other items and set up alsa, xine, gstreamer, phonon and pulseaudio for maximum usability.
‣ Open System Settings/Advanced/Autostart. Select Add program, type pulseaudio -D in the box and select Run in Terminal and Do not close when command exits click OK. In permissions check Is executable. In Application/Name type Pulseaudio and check that the Command is pulseadio -D so it starts with the defaults from default.pa. click OK. To set up the padevchooser launcher it is basically the same just change pulseaudio to padevchooser.

• aplay -l
• alsamixer

Quite a post, but I don’t see how it addresses what I’m asking, since we didn’t have render offloading 2 years ago.

Just Trying to help,

At least … the very least …,:

1/ there are a lot of Audio and Visual “Commands” for troubleshooting for Linux newbies, and
2/ there are a lot of “Commands” to help with Ubuntu’s Hibernation
3/ there are a lot of suggestions to keep you bust troubleshooting until you find a solution

At Least I hope, Mark

I appreciate the thought. Note that it’s a duplicate of another post in this same thread, which was useful to me for discovering the nvhda kernel module.

Thing is that I’m now not sure this was ever a problem to begin with. My laptop is so new that the first time I ever tried using the external HDMI was after 435.17 was already out, and I had both it and all the power saving stuff all setup. Knowing now that these udev rules were what was preventing proper use, I’m now removing them and the nvhda module in the hopes this was never an issue in the first place.

I will report back once I’ve done more testing.

Yet we can drive output from a powered down Nvidia card to a laptop display by defining some environment variables when running a command and using driver 425.21 + patched Xorg. So I can presume that any action that requires the Nvidia chip to come on, such as an HDMI plugin event, will simply be equivalent to what already happens for driving the local display via the Intel chip, i.e. it turns on the relevant hardware.

So what’s the limiting factor for making the Nvidia chip able to receive input from Intel? In prime offloading mode, the card exists in xrandr. Presumably it can be an output provider for the Intel chip to send its output, even when powered down (as is the case when running commands with special env vars).

Thoughts?

It turns out nvhda was not necessary for this laptop. It was the udev rules for powering down the chip that caused it to not be present.

Now that I look more closely at these udev rules, is there any reason why the audio hardware isn’t set to come on with the GPU when “activity” is detected? Could this “activity” not also be the HDMI plug in event? Recall, this event happens regardless of the power state of the GPU.

It seems logical to me that if a user has plugged something into their laptop’s HDMI port, that the presumption is they want to use it, and maybe they want to use it only for audio.

Regardless of the use case, can’t a udev rule be made to detect the HDMI plugin event and enable the audio controller when it occurs? I imagine this would be fairly simple.

By the same logic, could the GPU not also be powered on from this same event, and be made available as second display? Again, the presumption being that when one plugs something into the HDMI port, one intends to use the device being plugged in.

To be clear, my goal is to remain in “prime offloading mode” at all times, but retain the ability to plug in an external display at any time and be able to use it without restarting X into “prime output mode”.

Can we get some clarification about some of this? Should this be possible with the current driver?

Thanks

[I accidentally made a new post below instead of editing. I wanted to delete one of the posts but I’m unable to]

[s]I have upgraded to Ubuntu 19.10 and I noticed that I could no longer suspend my laptop. I always get a “Freezing of tasks failed after 20.xx seconds (3 tasks refusing to freeze, wq_busy=0)” error while awaiting for the laptop to suspend. It then just gets back to my login screen where I can enter my password.

I’m almost 100% sure that this is caused by my GPU since in the past I had to use these scripts (https://github.com/hhfeuer/nvhda/tree/master/scripts) to disable the HDMI audio output on suspend and reenable it on resume when I first installed the nvhda module to get HDMI audio output working.

However, it seems that the nvhda module no longer works with Ubuntu 19.10 which uses a Linux 5.3 kernel and the NVIDIA 435.21 drivers. Therefore, I removed nvhda and the problem still persists. I have HDMI audio just like I did when I had nvhda installed, but I still can’t put my laptop to sleep. I always get the message I mentioned above.

I should also mention that my laptop works on an NVIDIA “exclusive mode”. There’s no offloading from the Intel GPU to the NVIDIA GPU. For all intents and purposes I only have the an NVIDIA GTX 1060 6GB GPU on my system.

Has anyone faced a similar issue and solved it?
If not, is there anyway I can shutdown my GPU’s HDMI audio output? If there is, maybe I can automate the process using systemd.[/s]
EDIT:
I have pinpointed the issue and it has nothing to do with the NVIDIA drivers. It’s cause by the Baloo File Indexer: Baloo - KDE Community Wiki Sorry for the misunderstanding.

I can only add that with Nvidia 435.21 and Ubuntu 18.04.3(4) Suspend is working quite well, but finicky as always (proprietary shizzit).

Just anecdotally, Ubuntu historically has Great Hibernation … but … BUT …

There are always ZILLIONS of complaints that it stops working after either:

  1. (most often) … after a new distro release like yours, and less often but still far too often, or
  2. (less often, but still TOO often) after a new kernel.

I can only suggest the standard … uninstall, purge, and reinstall NVIDIA*

Sorry can’t be more help than that

Always trying to help, Mark

BUT one may think that is counterintuitive as I am mentioning Ubuntu distro Upgrades and Kernel Upgrades, but I am suggesting purging Nvidia …

they are definitely sadly a poor combination, but getting better, since Nvidia-430.xx.

Thanks for the tips guys. It turns out that I jumped to conclusions too fast. Since I previously had lots of suspend/resume problems due to the NVIDIA drivers I though that the issues had returned. However, after further inspection the process that is keeping me from suspending is baloo, the KDE file indexer. I was able to suspend the indexing manually and then I’m able to suspend and resume properly. It’s still an annoying issue and I’ll try to find a workaround it, but it seems that it is in no way related to the NVIDIA drivers.

Thank Goodness

Nvidia and Ubuntu have been playing VERY nice together for the past month or two, as Nvidia seems to be letting them work with the proprietary drivers,

I know this is in no way an answer to the “Ballo” Problem, just FTI Stuff.

“the process that is keeping me from suspending is Baloo, the KDE file indexer.”

Baloo the KDE File Indexer … Interesting indeed … never heard of it before (using gnome for a couple of years, though used KDE a few years back, it is kinda awesome and w.r.t. Files, and …

Not the indexer specifically … DOLPHIN … is the most AWESOME File Browser on the planet. And possible partially because of this, just guessing “Baloo” File Indexer.

But back in GnomeDE. I had problems with the awesome “Dolphin”, as it required too many KDE environment stuff.

And for others that LOVE (FOR GOOD REASON, the split-screen, with excellent form and function) DOLPHIN!

In GNome I have found a good second best (in my opinion) … Mint Mate’s … File Browser NEMO.

And w.r.t. indexing files … more likely just a result of Ext4’s Filejournalling System, as opposed to Windows relatively Pathetic NTFS, it indexes all files and folders in a split second amazingly, as you probably already know.

just some food for thought!

I also have the same issues

Hello there,
I registered to provide some info about the problem on my machine. I’m not very experienced with driver issues, so bear with me. My laptop:

MSI GE75 Raider 85F
OpenSuse Tumbleweed, currently kernel 5.6.11

$ uname -a
Linux linux-fh0q 5.6.11-1-default #1 SMP Wed May 6 10:42:09 UTC 2020 (91c024a) x86_64 x86_64 x86_64 GNU/Linux


$ sudo lspci -H1 | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation TU106M [GeForce RTX 2070 Mobile] (rev a1)
01:00.1 Audio device: NVIDIA Corporation TU106 High Definition Audio Controller (rev a1)
01:00.2 USB controller: NVIDIA Corporation TU106 USB 3.1 Host Controller (rev a1)
01:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU106 USB Type-C UCSI Controller (rev a1)

$ cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xa5410000 irq 152

So, no NVidia sound card detected, exactly as described in the thread.

Thing is, audio over HDMI used to work at some point, but that eventually changed some time ago eventually triggered by some update. Those occur quite frequently for my rolling distribution so I hoped it would be fixed with the time. But that didn’t happen yet, alas. Even with the kernel >= 5.4 I currently have.

I tried installing the nvhda kernel module from github which compiled and could be installed just fine, but I couldn’t solve the problem with it. Like that:

$ modprobe nvhda
$ cat /proc/acpi/nvhda
0000:01:00.0 OFF
$ sudo tee /proc/acpi/nvhda <<<ON
ON
$ cat /proc/acpi/nvhda
0000:01:00.0 OFF
$ cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xa5410000 irq 152

The GitHub page of the module said something about the dmesg log being useful for debugging eventually, so I can give you a small except. On my system it seems to be spammed by some general PCI bus errors all the time, at least it looks like that. I often see these messages at boot time. Maybe that has something to do with the module not working, maybe not. In any case it doesn’t look that useful, but I’ll include it anyway just in case:

[ 3254.384749] pcieport 0000:00:1d.6: AER: Multiple Corrected error received: 0000:03:00.0
[ 3258.295755] pcieport 0000:00:1d.6: AER: Corrected error received: 0000:03:00.0
[ 3258.295833] alx 0000:03:00.0: AER: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 3258.295837] alx 0000:03:00.0: AER:   device [1969:e0b1] error status/mask=00000040/00002000
[ 3258.295841] alx 0000:03:00.0: AER:    [ 6] BadTLP                
[ 3258.296465] pcieport 0000:00:1d.6: AER: Corrected error received: 0000:03:00.0
[ 3258.296568] alx 0000:03:00.0: AER: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 3258.296572] alx 0000:03:00.0: AER:   device [1969:e0b1] error status/mask=00000080/00002000
[ 3258.296576] alx 0000:03:00.0: AER:    [ 7] BadDLLP               
[ 3258.297526] pcieport 0000:00:1d.6: AER: Multiple Corrected error received: 0000:03:00.0
[ 3258.297737] alx 0000:03:00.0: AER: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Receiver ID)
[ 3258.297742] alx 0000:03:00.0: AER:   device [1969:e0b1] error status/mask=00000080/00002000
[ 3258.297746] alx 0000:03:00.0: AER:    [ 7] BadDLLP               

Hope this is useful to some degree. As I said I’m not experienced at all with graphics card drivers but I can do some further diagnostics if given exact enough instructions. My laptop is kinda exotic so it might be interesting how things work or not work there.