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
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
#block NVIDIA Intel sound
Install Mudita24, the control panel for ice1712 cards use it to tweak settings
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.