Pulseaudio murdered my last Audigy 2 soundcard, it did this because it kept turning the PCM to maximum volume on the sound card, and it kept changing the audio levels automatically every time i switched audio application - e.g. from a Firefox youtube video to Audacious. It was an old card anyway and the caps were getting dry but resetting the volume to high was the final nail in the coffin and eventually it started to sound like Eric Cartman flatulating into a trombone. Then the audio on one side of some of the line outs died and the sound quality started going on all the other outputs. I've got rid of pulseaudio so that this doesn't repeat and I'm not going to use pulseaudio again.
I've recently bought a Asus Strix Soar 7.1 sound card. It's detected by ALSA if and only if the Realtek onboard sound card is enabled. If the onboard sound is disabled in the system UEFI, then no sound cards are detected. Asus Strix Soar is a USB based soundcard that sits on a PCIe PCB. I've tested it, it works fine, and sounds reasonable when i tell Audacious to use the PCM from that card. But many applications are going to want to use the default soundcard which is inevitably going to be the 1st sound device.
If I blacklist all the kernel modules for the onboard sound, then Alsa stops detecting my Strix Soar and it reports "no mixer device" and will not open any sound controls. The same happens when I disable it in the BIOS; it's not detected by ALSA.
I also have an NVidia graphics card, and this wants to output sound through HDMI and this tries to be the default sound card.
I've stopped the HDMI output from being the default with the following config:
options snd_hda_intel index=3 model=auto
In /etc/modprobe.d/alsa-base.conf
and this moves the hdmi output to card 3, so that it's at the back of the list and never becomes the default soundcard. Hurray!
But now the realtek sound card is listed as the first device. I don't know what the kernel module is for the realtek sound card is, so i can't move it.
When I do an lspci -k | grep -A2 Audio i get the following:
09:00.1 Audio device: NVIDIA Corporation GK208 HDMI/DP Audio Controller (rev a1)
Subsystem: ASUSTeK Computer Inc. GK208 HDMI/DP Audio Controller
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
--
0b:00.3 Audio device: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) HD Audio Controller
Subsystem: ASUSTeK Computer Inc. Family 17h (Models 00h-0fh) HD Audio Controller
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
When I do an lsmod | grep snd, I get:
snd_hda_codec_hdmi 61440 1
snd_hda_codec_generic 86016 1
snd_usb_audio 262144 1
snd_hda_intel 49152 1
snd_usbmidi_lib 36864 1 snd_usb_audio
snd_hda_codec 151552 3 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel
snd_rawmidi 40960 1 snd_usbmidi_lib
snd_seq_device 16384 1 snd_rawmidi
snd_hda_core 94208 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_hwdep 16384 2 snd_usb_audio,snd_hda_codec
snd_pcm 114688 5 snd_hda_codec_hdmi,snd_hda_intel,snd_usb_audio,snd_hda_codec,snd_hda_core
snd_timer 36864 1 snd_pcm
snd 94208 15 snd_hda_codec_generic,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_usb_audio,snd_usbmidi_lib,snd_hda_codec,snd_timer,snd_pcm,snd_rawmidi
soundcore 16384 1 snd
usbcore 294912 5 xhci_hcd,snd_usb_audio,usbhid,snd_usbmidi_lib,xhci_pci
The aplay -l output is:
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 0: Generic Analog [Generic Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 1: Generic Digital [Generic Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: CARD [STRIX SOUND CARD], device 0: USB Audio [USB Audio]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: CARD [STRIX SOUND CARD], device 1: USB Audio [USB Audio #1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: CARD [STRIX SOUND CARD], device 2: USB Audio [USB Audio #2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 3: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
In summary:
- The onboard audio is currently detected as the first sound card.
- I can't disable the onboard sound without disabling my Strix Soar as well.
- I can't blacklist the onboard sound kernel modules without disabling my Strix Soar.
- I can't work out which kernel modules i need in alsa-base.conf to move the realtek soundcard away from default.
What I want to do:
What I am trying to do, is either disable the onboard audio or banish it from being the default sound device, so that my Strix Soar is the default sound card. But I don't know the kernel module for this.
Is there some way to find out what the kernel module is so that I can move it? Or some way to disable the onboard audio without disabling the Strix Soar?
I can't be the only person with this problem.
Edit thanks for Nik's accepted answer which put me on the right path, the solution was to change /etc/modprobe.d/alsa-base.conf
to read:
options snd_usb_audio index=0 model=auto
options snd_hda_intel index=3 model=auto
options snd_hda_intel index=4 model=auto
And this fixed everything. Strix is now first.