You are not logged in.

#1 2010-07-11 04:13:36

Fox2k
Member
Registered: 2010-07-11
Posts: 10

[SOLVED] Help, can't get my X-Fi to work :(

Hi all.  I recently decided to try out Arch.  I'm currently running Gentoo on my boxes, but I set up arch on a new drive and I'm giving it a go.  However, the time I have saved by not having to compile anything or troubleshoot emerge issues has now been completely taken up by trying to get my sound working.  Works fine in Gentoo, so I have made sure to compare kernel configurations and they both seem the same in relevant areas.  ALSA is enabled, and OSS is disabled  The XFI driver is built-in, and no other drivers are enabled:

[root@server2k linux]# grep -i snd .config
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=y
# CONFIG_SND_SEQ_DUMMY is not set
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
# CONFIG_SND_SEQUENCER_OSS is not set
CONFIG_SND_HRTIMER=y
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
# CONFIG_SND_SUPPORT_OLD_API is not set
# CONFIG_SND_VERBOSE_PROCFS is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_RAWMIDI_SEQ=m
# CONFIG_SND_OPL3_LIB_SEQ is not set
# CONFIG_SND_OPL4_LIB_SEQ is not set
# CONFIG_SND_SBAWE_SEQ is not set
# CONFIG_SND_EMU10K1_SEQ is not set
CONFIG_SND_AC97_CODEC=y
CONFIG_SND_DRIVERS=y
# CONFIG_SND_PCSP is not set
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_MTS64 is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
# CONFIG_SND_PORTMAN2X4 is not set
# CONFIG_SND_AC97_POWER_SAVE is not set
CONFIG_SND_PCI=y
CONFIG_SND_AD1889=y
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AW2 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_OXYGEN is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS5530 is not set
# CONFIG_SND_CS5535AUDIO is not set
CONFIG_SND_CTXFI=y
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_INDIGOIOX is not set
# CONFIG_SND_INDIGODJX is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
# CONFIG_SND_HDA_INTEL is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_HIFIER is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
# CONFIG_SND_INTEL8X0 is not set
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_LX6464ES is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VIRTUOSO is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set
CONFIG_SND_SPI=y
CONFIG_SND_USB=y
# CONFIG_SND_USB_AUDIO is not set
# CONFIG_SND_USB_UA101 is not set
# CONFIG_SND_USB_USX2Y is not set
# CONFIG_SND_USB_CAIAQ is not set
# CONFIG_SND_USB_US122L is not set
# CONFIG_SND_PCMCIA is not set
# CONFIG_SND_SOC is not set
[root@server2k linux]#

I've been all over the net and I have seen people mention similar problems with the ctxfi driver. But no solutions that have worked for me.  The physical card is seen:

[root@server2k linux]# lspci | grep -i creative
00:0e.0 Multimedia audio controller: Creative Labs SB X-Fi

however alsa doesn't see it:

[root@server2k linux]# cat /proc/asound/cards
--- no soundcards ---

I tend to not use modules for stuff I know I need (e.g. sound card drivers...) , but the module is there..in the kernel.  I was trying with a separate module before, and I made that lsmod told me it was loaded.  However nothing seems to make a difference.  I'm pretty sure alsa is configured correctly because I was seeing my onboard sound before I disabled it. I also took out all of the alsa-related stuff I had put in rc.conf and modules.conf because nothing seemed to make a difference.  it was all related to getting the ctxfi crd to show up as card0 to override the onboard, but since it's not even being detected that seems sort of pointless right now.

If anyone has any ideas of what to try next I would really appreciate it. These are the versions I am running:
kernel  2.6.34.1
alsa-lib-1.0.23-1
alsa-utils-1.0.23-2

Oh, the otehr weird part is if I look in the dmesg output, the driver claims that "Something's wrong!!!"  Yeah...really useful. In the source for the driver there are like 16 places where that error message is printed, and I'm not about to go hacking some module code.  I did put some print statements in there to see where it was failing, and it looks like it's failing at this call:
err = atc_create_hw_devs(atc);

Don't know if that helps, is anyone familiar with the actual driver?

Last edited by Fox2k (2010-07-11 23:58:57)

Offline

#2 2010-07-11 06:48:42

brebs
Member
Registered: 2007-04-03
Posts: 3,742

Re: [SOLVED] Help, can't get my X-Fi to work :(

Fox2k wrote:

I tend to not use modules for stuff I know I need (e.g. sound card drivers...)

The problem with that strategy is, the kernel devs are quite capable of screwing things up so that the sound driver *only* works as a loadable module. Do the same as the major distros, because the chances are that it's been 100 times better tested in that configuration.

Fox2k wrote:

Works fine in Gentoo

So, *what* is different? Kernel version, Gentoo's patches?

Offline

#3 2010-07-11 14:18:23

Fox2k
Member
Registered: 2010-07-11
Posts: 10

Re: [SOLVED] Help, can't get my X-Fi to work :(

Hi brebs,

Well then maybe I should stick with the module approach while I try to get things working, and then I can switch the driver to internal at that point.  I will do that.

The kernel version is different - as I just installed arch, that kernel is a bit newer. But they aren't far off. Gentoo is running linux-2.6.33-gentoo-r1, and arch is on linux-2.6.34.1.  I could try the same kernel version, but I've been trying to avoid doing that because I don't really see any reason why a slightly newer version would break. hmm

Offline

#4 2010-07-11 14:32:58

skunktrader
Member
From: Brisbane, Australia
Registered: 2010-02-14
Posts: 1,677

Re: [SOLVED] Help, can't get my X-Fi to work :(

For what its worth, I have the same card working just fine on current kernel

[skunk@skunk-develop ~]$ lspci | grep -i creative
07:06.0 Multimedia audio controller: Creative Labs SB X-Fi
[skunk@skunk-develop ~]$ cat /proc/asound/cards
 0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xdfffc000 irq 78
 1 [XFi            ]: SB-XFi - Creative X-Fi
                      Creative X-Fi 20K1 SB073x

From the wiki, all I did to make the X-Fi the default was add the following to /etc/asound.conf

pcm.!default {
    type hw
    card XFi
}
ctl.!default {
    type hw           
    card XFi
}

The only sound related suff in my rc.conf is

... !snd_pcsp !pcspkr ...

Offline

#5 2010-07-11 14:35:21

Fox2k
Member
Registered: 2010-07-11
Posts: 10

Re: [SOLVED] Help, can't get my X-Fi to work :(

hey skunktrader,

Thanks, that's good to hear.  Would you mind posting your kernel config and which alsa-related packages you have installed?

Last edited by Fox2k (2010-07-11 14:35:32)

Offline

#6 2010-07-11 14:54:35

skunktrader
Member
From: Brisbane, Australia
Registered: 2010-02-14
Posts: 1,677

Re: [SOLVED] Help, can't get my X-Fi to work :(

I'm running the standard 64 bit kernel from the repos

[skunk@skunk-develop ~]$ uname -rvm
2.6.34-ARCH #1 SMP PREEMPT Mon Jul 5 22:12:11 CEST 2010 x86_64
[skunk@skunk-develop ~]$ pacman -Qs alsa
local/alsa-lib 1.0.23-1
    An alternative implementation of Linux sound support
local/alsa-utils 1.0.23-2
    An alternative implementation of Linux sound support
local/lib32-alsa-lib 1.0.23-2 (lib32)
    An alternative implementation of Linux sound support (32 bit)

Offline

#7 2010-07-11 17:34:23

KruesephiikZ
Member
Registered: 2010-07-01
Posts: 17

Re: [SOLVED] Help, can't get my X-Fi to work :(

I also have the same soundcard installed on my Arch64 ( actually, not sure if revision information makes anything different. It's a Soundblaster X-Fi XtremeGamer Fatal1ty. ) And it works just fine, surround sound and all. I however am on a newer kernel, and it works even better than it did before ( less popping, and general irritation with the driver ).

 
[0][kruesephiikz@kaos ~]$ uname -ars
Linux kaos 2.6.35-rc4-rc #1 SMP PREEMPT Thu Jul 8 19:08:15 EDT 2010 x86_64 Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz GenuineIntel GNU/Linux
[0][kruesephiikz@kaos ~]$ pacman -Qs alsa
local/alsa-lib 1.0.23-1
    An alternative implementation of Linux sound support
local/alsa-utils 1.0.23-2
    An alternative implementation of Linux sound support
local/lib32-alsa-lib 1.0.23-2 (lib32)
    An alternative implementation of Linux sound support (32 bit)

Using just the alsa driver for sound, no stinking pulseaudio here! Hopefully this helps. smile

Offline

#8 2010-07-11 22:32:18

Fox2k
Member
Registered: 2010-07-11
Posts: 10

Re: [SOLVED] Help, can't get my X-Fi to work :(

Thanks, all.  No luck, I ended up scouring the gentoo forums some more and found somebody who ran in to the exact same problem last year which I am having now.  Here's the solution.  It worked for me.  Not ideal, but all else failed:

Today I tried again to get my soundcard working, this time with:
linux kernel 2.6.31 and the alsa ctxfi driver in it
linux kernel 2.6.31 and alsa-driver-9999 from portage
both led to the same results as before (see my postings above)
So I finally hacked the official creative xfi-driver to compile against 2.6.31. And now sound is working again for me...
If anyone else runs into the same trouble as I did, here are the changes i made:
Code:
$ diff XFiDrv_Linux_Public_US_1.00 XFiDrv_Linux_Public_US_1.00-new
diff XFiDrv_Linux_Public_US_1.00/ctatc.h XFiDrv_Linux_Public_US_1.00-new/ctatc.h
25d24
< #include <sound/driver.h>
diff XFiDrv_Linux_Public_US_1.00/cthw20k1.c XFiDrv_Linux_Public_US_1.00-new/cthw20k1.c
23a24
> #include <linux/delay.h>
diff XFiDrv_Linux_Public_US_1.00/cthw20k2.c XFiDrv_Linux_Public_US_1.00-new/cthw20k2.c
23a24
> #include <linux/delay.h>
diff XFiDrv_Linux_Public_US_1.00/xfi.c XFiDrv_Linux_Public_US_1.00-new/xfi.c
14d13
< #include <sound/driver.h>
55,59c54,57
<    card = snd_card_new(index[dev], id[dev], THIS_MODULE, 0);
<    if (card == NULL) {
<       return -ENOMEM;
<    }
<
---
>    err = snd_card_create(index[dev], id[dev], THIS_MODULE, 0, &card);
>    if (err < 0)
>       return err;
>


(reference: http://forums.gentoo.org/viewtopic-p-63 … l#6348361)

Last edited by Fox2k (2010-07-11 22:32:40)

Offline

Board footer

Powered by FluxBB