Tag Archives: NVIDIA

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

How to get Plymouth working on Kubuntu 10.4 LTS with proprietary NVIDIA drivers

Plymouth is the new start-up display program in Ubuntu/Kubuntu. It can show a native-resolution animated start-up screen while that GNU/Linux distribution boots to X. Unfortunately, at the moment, it doesn’t work well with proprietary display drivers. Here is what fixed the problem for me. (I have a PNY GeForce 8400GS PCI-E card driving two 1280×1024 monitors with version 185 of the nvidia packages.)

Following the instructions here, I edited /etc/default/grub

sudo xemacs /etc/default/grub

[replace xemacs with your editor of choice] so that this line was uncommented and contained the appropriate vga option for my screen mode [table of modes and codes]:

GRUB_CMDLINE_LINUX="splash vga=0x31B"

(0x31B corresponds to 1280×1024 pixels in 24-bit colour) and, from here, I uncommented and edited this line with my screen resolution:


and edited /etc/grub.d/00_header so that the line beginning “gfxmode=” contained the right resolution:


and was followed by this:

set gfxpayload=keep

I then ran:

sudo update-grub2

Next, from here, I blacklisted vga16fb by adding the following line to /etc/modprobe.d/blacklist-framebuffer.conf:

blacklist vga16fb

and then commented out the line that previously blacklisted the VESA framebuffer, so:

# blacklist vesafb

Then, I added fbcon and vesafb to /etc/initramfs-tools/modules

# List of modules that you want to include in your initramfs.
# Syntax: module_name [args ...]
# You must run update-initramfs(8) to effect this change.
# Examples:

Finally, I ran update-initramfs:

sudo update-initramfs -u

and rebooted to my shiny new splash animation.