Pulseaudio, Nvidia hdmi sound switches sink names

I boot XFCE Manjaro with a desktop monitor display only, with my TV and a DENON reciever disabled in nvidia-settings. I should say that dual boot Windows 11 and Manjaro

Using manjaro with my TV and DENON, pulse audio sometimes, seemingly random, have switched the names of the nvidia sinks. May be related if my TV is in a on or off state before booting.

I use:
pactl set-default-sink alsa_output.pci-0000_01_00.1.hdmi-surround
for setting the DENON sink when switching from using my computer from the monitor to my TV&Reciever
But often that sink is held by my TV so I have to switch to:
alsa_output.pci-0000_01_00.1.hdmi-surround-extra1

Is there a way to keep the names of the sinks stabile? And anyone know why this happens?

Is there a way to keep the names of the sinks stabile? And anyone know why this happens?

i had a similar problem with the nvidia-hdmi-audio enumeration and detection.
reason is that the powermanagement is disabeling nvidia-hdmi-audio as default and that caused that it wasn’t detected randomly.
check /etc/udev/rules.d/filename.rules

It should be something like this

# Remove NVIDIA USB xHCI Host Controller devices, if present
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{remove}="1"

# Remove NVIDIA USB Type-C UCSI devices, if present
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c8000", ATTR{remove}="1"

# Remove NVIDIA Audio devices, if present
#ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{remove}="1"

# Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"

# Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on"
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on"

ATTENTION : in your case the audio-section will be not excluded with # ! Put a # in front and save it. you have to edit with sudo-rights.
reboot

Thanks buddy, that pointed me to what the issue was. :grinning:
I had made a udev rule (forgot about that) for my CREATIVE BT-W3 audio device for connecting bluetooth devices like my headphones. I used it only in Windows and I didn’t want in it enabled in anyway in Linux because I had some issues that my headphones un-paired themself once in a while.

Seems like my rule screwed with the nvidia sinks so removing the rules fixed it.
The rules was likely badly writtten by me, not enough research I guess:

ACTION=="add", ATTR{idVendor}=="041e", ATTR{idProduct}=="3270", RUN="/bin/sh -c 'echo 0 >/sys/\$devpath/authorized'"

I still have a blacklist rule in /etc/modprobe.d/blacklist.conf that works well enough not to show my bt-w3 as an audio device but it still connects when turning on my headphones. I dont know if that still will trigger a un-pair issue, time will tell I guess.

1 Like

If no Bluetooth audio devices are in use, removing PulseAudio Bluetooth modules would ensure the blacklisted device could not cause a problem with other audio devices

  • Copy PulseAudio module configuration to home folder

      cp /etc/pulse/default.pa ~/.config/pulse/default.pa
    
  • Edit ~/.config/pulse/default.pa and delete section relating to Bluetooth modules
    (Line 60-67)

  • Reboot system or restart PulseAudio to load new configuration

    systemctl --user restart pulseaudio
    

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.