[SOLVED] NVIDIA GT cards not detected by ALSA (running Slackware)
Linux - HardwareThis forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
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.
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:
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.
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.
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.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.