LinuxQuestions.org
Help answer threads with 0 replies.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices



Reply
 
Search this Thread
Old 01-09-2011, 10:28 AM   #1
lpallard
Member
 
Registered: Nov 2008
Location: Milky Way
Distribution: Slackware (various releases)
Posts: 970

Rep: Reputation: 44
Post NVIDIA GT cards not detected by ALSA (running Slackware)


Hey there, I'm back with new problem for that htpoc project.. slowly killing me... anyways!

I just replaced the ATI videocard by a NVIDIA GT430 videocard on my Slackware64 13.1 htpc and cant get the card to be detected by alsa so I have no sound through HDMI. Only the onboard devices are detected. Alsaconf does not see the card and the Kmix application does not see it either. Only lspci & cat /proc/asound/cards see it but seems not able to use it...

I am using the stock slack64 13.1 kernel 2.6.33.4 and I've recompiled alsa from sources to version 1.0.23.

What do I need to do to get this to work??

aplay -l

Code:
**** List of PLAYBACK Hardware Devices ****
card 0: pcsp [pcsp], device 0: pcspeaker [pcsp]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: SB [HDA ATI SB], device 0: VT1708S Analog [VT1708S Analog]
  Subdevices: 2/2
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
card 1: SB [HDA ATI SB], device 1: VT1708S Digital [VT1708S Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
cat proc/asound/cards
Code:
 0 [pcsp           ]: PC-Speaker - pcsp
                      Internal PC-Speaker at port 0x61
 1 [SB             ]: HDA-Intel - HDA ATI SB
                      HDA ATI SB at 0xfcef4000 irq 16
 2 [NVidia         ]: HDA-Intel - HDA NVidia
                      HDA NVidia at 0xfcf7c000 irq 19
cat /proc/asound/devices
Code:
  0: [ 0]   : control
  1:        : sequencer
 16: [ 0- 0]: digital audio playback
 32: [ 1]   : control
 33:        : timer
 36: [ 1- 0]: hardware dependent
 48: [ 1- 0]: digital audio playback
 49: [ 1- 1]: digital audio playback
 56: [ 1- 0]: digital audio capture
 64: [ 2]   : control
 68: [ 2- 0]: hardware dependent
 69: [ 2- 1]: hardware dependent
 70: [ 2- 2]: hardware dependent
 71: [ 2- 3]: hardware dependent
lspci -vv
Code:
01:00.1 Audio device: nVidia Corporation Device 0bea (rev a1)
        Subsystem: eVga.com. Corp. Device 1432
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin B routed to IRQ 19
        Region 0: Memory at fcf7c000 (32-bit, non-prefetchable) [size=16K]
        Capabilities: [60] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [78] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 <64us
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 5GT/s, Width x16, ASPM L0s L1, Latency L0 <256ns, L1 <4us
                        ClockPM+ Surprise- LLActRep- BwNot-
                LnkCtl: ASPM L0s L1 Enabled; RCB 128 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Not Supported, TimeoutDis+
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
                LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB
        Kernel driver in use: HDA Intel
        Kernel modules: snd-hda-intel
Thanks a bunch guys!
 
Old 01-09-2011, 04:04 PM   #2
bigrigdriver
LQ Addict
 
Registered: Jul 2002
Location: East Centra Illinois, USA
Distribution: Debian Squeeze
Posts: 5,805

Rep: Reputation: 324Reputation: 324Reputation: 324Reputation: 324
I suspect that you need to download and install a proprietary nvidia driver to get full functionality from that card. Driver version 260.19.29 includes your card. You can get it here.
 
Old 01-09-2011, 04:20 PM   #3
lpallard
Member
 
Registered: Nov 2008
Location: Milky Way
Distribution: Slackware (various releases)
Posts: 970

Original Poster
Rep: Reputation: 44
Thanks for replying! I need at the help I can get !!

Thats the driver I have installed at first.

If you are aware of a second solution, please let me know!

Just for the benefit of LQ, here's my understanding of the problem:

The ALSA kernel modules are not recognizing the sub-devices of the audio controller therefore not installing the correct files (or whatever it is) for alsaconf or aplay -l to recognize all devices..

This is why cat /proc.../cards would see the top levekl device, but not the sub devices, hence aplay does not see them either.

Ubuntu users at xbmc.org have provided this as a workaround (for ubuntu):

Quote:
I got my Zotac GT 430 Zone today and getting audio to work via HDMI on Ubuntu Lucid is actually pretty easy. What you need is the current nvidia driver (I'm using 260.19.12) and a patched snd_hda_intel ALSA driver.

Here are some short instructions of what I did:

First add the required package repositories and install the drivers:
Code:
sudo add-apt-repository ppa:ubuntu-audio-dev/ppa
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates

sudo apt-get update

sudo apt-get install nvidia-current linux-alsa-driver-modules-$(uname -r)
Now you have all the required drivers, but you still need to manually set the probe mask of snd_hda_intel driver. That is the "tricky part". Start your X-Server (audio only works when X is running) by i.e. starting XBMC and switch back to a Linux console or SSH session. Change to the directory /proc/asound and examine all "card?" directories for eld-files:

Example:
Code:
# cd /proc/asound

# find . -name 'eld*'
./card1/eld#0.0
./card1/eld#1.0
./card1/eld#2.0
./card1/eld#3.0
Now you have to check which eld-file corresponds to your monitor. Just display the content of each eld file and check if you can find any monitor information. I'm using a Samsung TV, so my eld-file looks like that:

Code:
# cat card1/eld#3.0

monitor_present 1
eld_valid 1
monitor_name SAMSUNG

connection_type HDMI
eld_version [0x2] CEA-861D or below
edid_version [0x3] CEA-861-B, C or D
manufacture_id 0x2d4c
product_id 0x669
port_id 0x40000
support_hdcp 0
support_ai 0
audio_sync_delay 0
speakers [0x1] FL/FR
sad_count 1
sad0_coding_type [0x1] LPCM
sad0_channels 2
sad0_rates [0xe0] 44100 48000 88200
sad0_bits [0xe0000] 16 20 24
When you found the eld file which contains your monitor information, you have to translate the number of the eld file into a probe mask for the snd_hda_intel module. The eld file which contained my monitor information was "eld#3.0" so my eld-number is "3.0". Now use the translation map below to find the correct probe-mask for your device:
0.0 => 0x101
1.0 => 0x102
2.0 => 0x104
3.0 => 0x108

As you can see, I have to use the probe-mask 0x108 as my eld-file-number is 3.0. Now you can reload the snd_hda_intel module with the correct module parameters. Of course you have to use your probe_mask for this:

Code:
# sudo rmmod snd_hda_intel
# sudo modprobe snd_hda_intel enable_msi=0 probe_mask=0x108
Restart XBMC and sound should be working now, but you may have to set the correct sound device in the XBMC audio hardware settings and you might also have to unmute the sound device using alsamixer. For me passthrough and normal mode are both working with this setup.

If sound works for you too, you have to add your module-settings to the system startup files, otherwise your settings won't survive a reboot.

Code:
echo "options snd-hda-intel enable_msi=0 probe_mask=0x108" | sudo tee /etc/modprobe.d/nvidia-hdmi.conf
Don't forget to adjust your probe_mask in the example above.
The official nvidia forum also discuss about the issue:
http://www.nvnews.net/vbulletin/showthread.php?t=154755

So basically, I think I need to either patch the driver or install the latest alsa kernel modules. I also need to patch libasound because I want to use my other sound devices as well (the ATI onboard sound controller). If I dont do that I wont be able to use the other controllers, only hdmi.

The xbmc users also specified :

Quote:
Still the best solution might be to search for a slackware package which contains the latest ALSA kernel modules. The problem is not that uncommon, as modern mainboards often have sound devices which are not yet supported by the current distribution kernel. Therefore I'm pretty sure you can get updated ALSA kernel modules for slackware as well. The latest ALSA kernel modules (at least those in SVN) do contain the patch already.
I barely know where to start from... any hints??

Last edited by lpallard; 01-09-2011 at 04:23 PM.
 
Old 01-12-2011, 06:06 PM   #4
lpallard
Member
 
Registered: Nov 2008
Location: Milky Way
Distribution: Slackware (various releases)
Posts: 970

Original Poster
Rep: Reputation: 44
I got the answer from Nvidia:

They replied to my thread and basically here their answer:

Quote:
I've confirmed both that:
a) The symptoms in your bug report file match the ALSA driver not supporting the FERMI codec IDs.
b) The 2.6.33.3 (and indeed 2.6.33.6) kernel doesn't contain the support for FERMI codec IDs.

Unfortunately, you'll either need to apply the patch and rebuild your own kernel, or move to a newer kernel or distro/version.
I guess upgrading my kernel is the easiest way.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
USB sound card not detected by ALSA but is by lsusb, using alsa 1.0.15 mjkelly93 Linux - Hardware 1 10-20-2007 11:23 AM
No sound cards were detected pattarsatish Linux - Hardware 3 09-26-2007 08:17 AM
Multiple Matrox Millennium p650 PCIe cards on Slackware - only one detected dieyouspammer Linux - Hardware 1 05-15-2007 09:36 PM
No pcmcia cards detected in Slackware 11 Cpoc Slackware 8 10-11-2006 02:50 PM
pcmcia cards not detected brandonweinberg Linux - Hardware 0 02-20-2004 04:34 AM


All times are GMT -5. The time now is 11:37 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration