Tag Archives: modprobe.d

Disabling NVDIA HDMI sound module in (K)Ubuntu

If you have a pro soundcard like the M-Audio Delta66 (based on the ice1712 chipset, and requiring that Linux driver), you might have a problem forcing your PC to use it if your motherboard and/or graphics card also have their own audio hardware.

I disabled my Dell PC’s onboard sound support via the PC’s BIOS, but still found my machine (running Kubuntu 13.10 (Saucy Salamander)) prioritized my NVIDIA graphics card’s HDMI sound driver. I used the instructions here and here to fix this.

Check that the module for your soundcard is loaded

I did lspci -vv to check that my desired card was already being recognized by Linux and the correct module loaded. This command and option produced a great deal of output, including the following stanza:

0c:02.0 Multimedia audio controller: VIA Technologies Inc. ICE1712 [Envy24] PCI Multi-Channel I/O Controller (rev 02)
        Subsystem: VIA Technologies Inc. M-Audio Delta 66
        Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- SERR- <PERR- INTx-
        Latency: 64
        Interrupt: pin A routed to IRQ 18
        Region 0: I/O ports at bca0 [size=32]
        Region 1: I/O ports at bc80 [size=16]
        Region 2: I/O ports at bc90 [size=16]
        Region 3: I/O ports at bcc0 [size=64]
        Capabilities: <access denied>
        Kernel driver in use: snd_ice1712

Unfortunately, there was also a stanza for the NVIDIA sound support:

07:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)
        Subsystem: ASUSTeK Computer Inc. Device 83e8
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin B routed to IRQ 5
        Region 0: Memory at fbefc000 (32-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: HDA Intel

Force loading of module in alsa-base.conf

Just to be sure that my card’s module was loaded at start-up, I added the following to the top of the section labelled # Prevent abnormal drivers from grabbing index 0 in the file /etc/modprobe.d/alsa-base.conf. (You will have to edit this with superuser rights / as root.):

options snd-ice1712 model=delta66

Blacklist the HDMI driver

To force the machine not to load the HDMI driver, I added it to the file /etc/modprobe.d/blacklist.conf:

#block NVIDIA Intel sound
blacklist snd_hda_intel

Install Mudita24, the control panel for ice1712 cards use it to tweak settings

Mudita24 was formerly called envy24control as part of alsa-tools. You can install it like this:

sudo aptitude install mudita24

Here is a screenshot of the settings I used to get it working. Pay particular attention to the “Master Clock” option. Don’t choose S/PDIF.

mudita24 settings
mudita24 settings