Sound card not correctly identified, 5.1 not working, v 11.2

Hi all! First of all, a big thank you for all volunteers who worked on this amazing distro. I just got KSOD from Windows 7 and decided to give OpenSuse a shot even though: 1) I’m your mainstream user, 2) I suck at command lines, 3) I trust more when things are done automatically than when I do it myself (loving Yast by the way) and 4) I knew that the product was not quite “ready for the masses” (as all other distros out there), specially thanks to the lack of Linux support from the hardware devs out there (e.g. Creative Labs >:)).

Getting to the point, I have one onboard sound on my laptop, and one Express Card offboard:

aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: STAC92xx Analog [STAC92xx Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 0: CA0110 Analog [CA0110 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

My 5.1 surround sound system is plugged in my Express Card, and I don’t use digital, nor coaxial. I have a direct 5.1 analog connection. Problem is, the only sound I hear is coming from the laptop. I even tried BIOS options to disable onboard sound for my Dell M1730 laptop but strangely that didn’t keep the card, neither the speakers, from working.

Using Yast console advanced settings, and testing both sound cards constantly, there’s no sound for the card at the index value = 1. Weird thing is whatever card is on index value = 0 the laptop’s speakers play the sound. I’ve checked the file (/etc/modprobe.d/50-sound.conf) just to make sure if Yast changes were being aplied, and they were. Possible system bug, because aplay -l and alsa always reports the onboard card on index = 0 even when I switch index = 0 to offboard card using Yast or the sound.conf file and restart the computer. I may be wrong, but I think the main problem is with my offboard driver (snd-hda-intel). Tried manually changing models, but there are not options for the CA0110 chipset. Tried every single step listed here SDB:Intel-HDA sound problems - openSUSE and here SDB:Intel-HDA sound problems - openSUSE, but no help.
Here is the information generated with the Alsa Script: http://www.alsa-project.org/db/?f=618896af5d95a9b15ef34a66585e7a17f512b616

The core issue I think is that the chipset identified by the system is wrong. My product is this one: Creative Sound Blaster X-Fi Xtreme Audio Notebook Sound Card - Xtreme Fidelity for your laptop, with the docking module for the 5.1 surround sound, but wikipedia (and other sources) says the chipset for X-Fi Xtreme Audio Notebook should be CA0106 (the same as Audigy SE): Sound Blaster X-Fi - Wikipedia, the free encyclopedia. The confusion, I think, comes from Creative Labs PCI-e version, with chipset CA0110, but the same name and features: OEM - Chips - CA0110. Also, system says my card model is: SB1040. But my card model is actually: SB0710 (it is written on the card itself).

Even so, I tried to manually change the sound.conf file to use snd-ca0106 as a driver for the offboard card, but with no success at all (Yast wouldn’t configure it). I really need help here, I know I can get sound because in systems where the X-Fi card was correctly recognized with the CA0106 chip, users managed to get it working with no effort: X-Fi Xtreme Audio (ca0106, audigy) no sound - Ubuntu Forums.

I also need help making sure Opensuse is gonna use my 5.1 surround system instead of my laptop speakers, and, of course, making sure I get surround sound. Any help would be appreciated. Sorry for my bad english. I use Opensuse x64 v11.2 version.

Have a look at this until user @oldcpu see this post

SDB:AudioTroubleshooting - openSUSE

This could be tricky to setup. There was no support for the X-Fi in Linux until alsa version1.0.21. Alsa 1.0.21 was included in the 2.6.31 kernel.

openSUSE-11.2 came with the 2.6.31 kernel (which has alsa-1.0.21 built in) and openSUSE-11.2 also came with various 11.2 alsa application rpms.

However, YaST has not been updated to handle the X-Fi (ie YaST is out of date for 1.0.21 of alsa). In fact, if you let YaST create an /etc/modprobe.d/50-sound.conf file, then X-Fi will typically not work.

The Ubuntu thread you refer to is very out of date and should not be followed. It refers to a different alsa version.

Note that X-Fi will only work on openSUSE-11.2 with no /etc/modprobe.d/50-sound.conf. But as you point out, your X-Fi may not be recognized since it is the second card, and sound is being piped thru to your first card.

Can you disable you onboard sound in BIOS, and then reboot? Does that work ?

If the BIOS method does not work, then you likely need just a manually created 50-sound.conf file , telling it to use the second sound device. I do not have 2 sound devices, so I do not have experience in what commands one would use.

You could try creating an /etc/modprobe.d/50-sound.conf with only this and then reboot:

install sound-slot-0 modprobe snd-card-1
install sound-slot-1 modprobe snd-card-0

that may make things worse, in which case, remove that.
Possibly it sound be someting like:

       alias sound-slot-0 snd-card-1
       alias sound-slot-1 snd-card-0

but it may be necessary to first label “alias snd-card-0 as-your-first-card” and “alias snd-card-1 as-your-second-card” and I do not know enough how to do this as I do not have 2 sound cards and have never experimented enough to learn.

Another solution may be to create a custom /home/username/.asoundrc file to swap cards. I do not know enough about alsa commands to reliably give you the edits needed to have it switch cards.

It may be you need only a .asoundrc file (without the above /etc/modprobe.d/sound stuff). You could remove any 50-sound.conf file, and then try to create a simple /home/yourusername/.asoundrc file that looks like:

defaults.pcm.card 1
defaults.ctl.card 1
defaults.pcm.device 1
defaults.pcm.subdevice -1

save it, and reboot.

As you can see, I’m just throwing up wild guesses.

Your best bet may be to write a bug report on openSUSE-11.2 component “sound” which will get the attention of a Novell/SuSE-GmbH packager for sound, who is also a developer of the alsa sound driver for all Linux distributions. He will likely be able to come up with a precise /etc/modprobe./50-sound.conf file (or a precise .asoundrc file) for you to use to get this functioning with both audio cards. Guidance for raising bug reports is here: Submitting Bug Reports - openSUSE Please run the /usr/sbin/alsa-info.sh script with the ‘no-upload’ option and attach that file to the bug report. You can run that file by typing:
/usr/sbin/alsa-info.sh --no-upload
and the file will be called “alsa-info.txt” and located in /tmp

You could look at this faq and try some of its suggestions for swapping cards:
FAQ026 - ALSA wiki

I recommend you stick with the .asoundrc file edits and do not edit asound.conf file. Get it working with .asoundrc file first.

Thanks for the fast reply! I’ll try reporting the bugs, and see if anything happens. In case I manage to get it working I’ll post the config for future reference.