nV News Forums

 
 

nV News Forums (http://www.nvnews.net/vbulletin/index.php)
-   NVIDIA Linux (http://www.nvnews.net/vbulletin/forumdisplay.php?f=14)
-   -   ALSA and GTX 4XX Series (http://www.nvnews.net/vbulletin/showthread.php?t=154755)

nullack 09-03-10 02:18 AM

ALSA and GTX 4XX Series
 
Hi, I understand that the binary closed source drivers for Linux only do graphics, unlike the Wintel drivers which install the graphics and sound components.

I know that the current ALSA revision supports GTX 2xx, but what about Fermi with the 4XX generation?

Many thanks

cleanrock 09-03-10 04:53 AM

Re: ALSA and GTX 4XX Series
 
I have a ALSA, GT 240 and working sound over HDMI on Archlinux.

Lysius 09-03-10 05:08 AM

Re: ALSA and GTX 4XX Series
 
Yesterday I updated my kernel to 2.6.34.6 from 2.6.33.8 and afterwards I had to blacklist snd_hda_intel and snd_hda_codec so that my GTX460 does not become the default sound card. That means it works with Fermi cards.

Anyone knows if it is possible (on fedora 13) to assure that my real sound card becomes the default one and not my graphics card without disabling that altogether and without relying on the (not fixed) order the kernel modules are loaded?

Fackamato 09-03-10 06:13 AM

Re: ALSA and GTX 4XX Series
 
Quote:

Originally Posted by Lysius (Post 2312206)
Yesterday I updated my kernel to 2.6.34.6 from 2.6.33.8 and afterwards I had to blacklist snd_hda_intel and snd_hda_codec so that my GTX460 does not become the default sound card. That means it works with Fermi cards.

Anyone knows if it is possible (on fedora 13) to assure that my real sound card becomes the default one and not my graphics card without disabling that altogether and without relying on the (not fixed) order the kernel modules are loaded?

I think you can set the default soundcard (pcm) with asound.conf (or .asoundrc in ~/ )

Lysius 09-03-10 06:52 AM

Re: ALSA and GTX 4XX Series
 
Quote:

Originally Posted by Fackamato (Post 2312216)
I think you can set the default soundcard (pcm) with asound.conf (or .asoundrc in ~/ )

Is that possible without using the card numbers that can change any time (even between reboots without changing anything)?
Sometimes my TV card becomes card0 and after a reboot it is card1 again (like it should be). Fortunately that is very rare and I did not feel a strong urge to solve that.

Fackamato 09-03-10 06:53 AM

Re: ALSA and GTX 4XX Series
 
Quote:

Originally Posted by Lysius (Post 2312223)
Is that possible without using the card numbers that can change any time (even between reboots without changing anything)?
Sometimes my TV card becomes card0 and after a reboot it is card1 again (like it should be). Fortunately that is very rare and I did not feel a strong urge to solve that.

You can set permanent device numbers using files in /etc/modprobe.d/<file>.conf I think... (often used for NICs, why not for audio devices?)

Stephen Warren 09-03-10 10:57 AM

Re: ALSA and GTX 4XX Series
 
For future reference for anyone reading this thread:

The standard kernel ALSA drivers handle the audio portion of NVIDIA GPUs and chipset.

The NVIDIA binary driver is required to pass some of the monitor information to the audio driver.

X must be running for audio to work.

The latest ALSA drivers and library have a couple issues that prevent all this working in some cases. You'll need a few patches from ALSA git to solve this.

a) For all GPUs, and the MCP89 chipset: You need a fix for the PresenceDetect issue:

http://git.kernel.org/?p=linux/kerne...1cb5fbe7fc9c75

Status:
* In linux-next git
* In linux 2.6.36-rc1
* In linux 2.6.35
* In linux 2.6.34.2

b) For all FERMI GPUs: You need a fix so that the kernel driver knows it can handle the new codec IDs:

http://git.kernel.org/?p=linux/kerne...bf7cef5a942070

Status:
* In linux-next git
* In linux 2.6.36-rc1
* I hope to get this into 2.6.34/2.6.35 stable git soon.

c) The ALSA library and pulseaudio enumerate only a single "high-level" audio device ("PCM") per NVIDIA GPU. However, there are in fact four of them.

The fix for ALSA is at:

http://git.alsa-project.org/?p=alsa-...dd4916121a4f6a

There is no fix for pulseaudio yet, although there was a mailing list discussion where it was agreed that all 4 devices should be exposed.

An alternative is to use the "probe_mask" ALSA module parameter as described on this page:

http://wiki.xbmc.org/?title=HOW-TO_s...20%2C_or_GT240

However, please note that the actual values for probe_mask on that page don't make sense; the correct values you should try are 0x101, 0x102, 0x104, 0x108. You can determine which you need by plugging in your HDMI monitor, starting X, then viewing /proc/asound/card*/eld*. Whichever eld file has your monitor's information in it will tell you which probe_mask to use; eld#0.0 -> 0x101, eld#1.0 -> 0x102, eld#2.0 -> 0x104, eld#3.0 -> 0x108. If you use multiple HDMI monitors and want audio on both, logical/bitwise OR the probe_mask values together. Note that the required probe_mask will change if you move monitors to different connectors on your graphics board.

=====

For Ubuntu, I think both (a) and (b) should be part of the modules described here:
https://wiki.ubuntu.com/Audio/Instal...aDriverModules.

For other distros, the following bugs have been filed:
Ubuntu: https://bugs.launchpad.net/ubuntu/+s...ux/+bug/611810
Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=619873
RHEL 5: https://bugzilla.redhat.com/show_bug.cgi?id=622846
RHEL 6: https://bugzilla.redhat.com/show_bug.cgi?id=619877
Novell/SuSe: https://bugzilla.novell.com/show_bug.cgi?id=627212

=====

I do intend to add the above information to the driver README at some point. However, I'm hoping that the situation will simplify soon (i.e. various distros picking up the patches in their standard repositories, so it'll work automatically etc.)

nullack 09-03-10 09:33 PM

Re: ALSA and GTX 4XX Series
 
L E G E N D A R Y :)

Thanks Stephen. I am adding to the Ubuntu bug report and will try to put pressure on to have it fixed in Maverick 10.10.

Lysius 09-04-10 05:28 AM

Re: ALSA and GTX 4XX Series
 
Quote:

Originally Posted by Fackamato (Post 2312224)
You can set permanent device numbers using files in /etc/modprobe.d/<file>.conf I think... (often used for NICs, why not for audio devices?)

I found this great page. The method with the reserved slot for my sound card as a module option to "snd" works as expected.

seaweed 10-02-10 06:36 PM

Re: ALSA and GTX 4XX Series
 
1 Attachment(s)
Quote:

Originally Posted by Stephen Warren (Post 2312420)
For future reference for anyone reading this thread:

The standard kernel ALSA drivers handle the audio portion of NVIDIA GPUs and chipset.

The NVIDIA binary driver is required to pass some of the monitor information to the audio driver.

X must be running for audio to work.

The latest ALSA drivers and library have a couple issues that prevent all this working in some cases. You'll need a few patches from ALSA git to solve this.

a) For all GPUs, and the MCP89 chipset: You need a fix for the PresenceDetect issue:

Is there a fix for MCP79 and MCP79A chipsets? The latest driver version 260.19.06 broke the HDMI audio on the Ion (no mode /dev/audio). Attached is the log file.

Fackamato 10-02-10 06:45 PM

Re: ALSA and GTX 4XX Series
 
hm?

Code:

fackamato@ion:~$ dmesg|grep NVRM;uname -a;aplay -l
NVRM: loading NVIDIA UNIX x86 Kernel Module  260.19.06  Mon Sep 13 06:35:06 PDT 2010
Linux ion 2.6.35-ARCH #1 SMP PREEMPT Mon Sep 27 11:35:18 UTC 2010 i686 Intel(R) Atom(TM) CPU 330 @ 1.60GHz GenuineIntel GNU/Linux
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: VT1708S Analog [VT1708S Analog]
  Subdevices: 1/2
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
card 0: NVidia [HDA NVidia], device 1: VT1708S Digital [VT1708S Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Works fine here!

seaweed 10-03-10 03:51 PM

Re: ALSA and GTX 4XX Series
 
Quote:

Originally Posted by Fackamato (Post 2326979)
hm?

Code:

fackamato@ion:~$ dmesg|grep NVRM;uname -a;aplay -l
NVRM: loading NVIDIA UNIX x86 Kernel Module  260.19.06  Mon Sep 13 06:35:06 PDT 2010
Linux ion 2.6.35-ARCH #1 SMP PREEMPT Mon Sep 27 11:35:18 UTC 2010 i686 Intel(R) Atom(TM) CPU 330 @ 1.60GHz GenuineIntel GNU/Linux
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 0: VT1708S Analog [VT1708S Analog]
  Subdevices: 1/2
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
card 0: NVidia [HDA NVidia], device 1: VT1708S Digital [VT1708S Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 3: NVIDIA HDMI [NVIDIA HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Works fine here!

Hmm I am using 2.6.31 kernel - perhaps that ? I will try recompiling alsa. BTW what creates the /dev/audio - is it the alsa driver?


All times are GMT -5. The time now is 12:14 AM.

Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Copyright 1998 - 2014, nV News.