Configuring ALSA/KDE for Creative X-Fi

After patching the X-Fi driver released a few days ago as proposed in the Creative Forums, the kernel modules loads fine and dmesg shows no problems with my PCI Express X-Fi Titanium Fatal1ty Champion.


diff -r XFiDrv_Linux_Public_US_1.00.orig/ctdrv.h XFiDrv_Linux_Public_US_1.00/ctdrv.h
26c26
< #define PCI_SUBSYS_CREATIVE_SB0880    0x0041
---
> #define PCI_SUBSYS_CREATIVE_SB0880    0x0043

Just for completeness, here is the output of running alsa-info:


upload=true&script=true&cardinfo=
!!################################
!!ALSA Information Script v 0.4.52
!!################################

!!Script ran on: Sat Nov  8 13:55:25 CET 2008


!!Linux Distribution
!!------------------

Welcome to openSUSE 11.0 (X86-64) - Kernel \r (\l). openSUSE 11.0 (X86-64)


!!Kernel Information
!!------------------

Kernel release:    2.6.25.18-0.2-default
Operating System:  GNU/Linux
Architecture:      x86_64
Processor:         x86_64
SMP Enabled:       Yes


!!ALSA Version
!!------------

Driver version:     1.0.16rc2
Library version:    1.0.16
Utilities version:  1.0.16


!!Loaded ALSA modules
!!-------------------

ctxfi


!!Soundcards recognised by ALSA
!!-----------------------------

 0 [XFi            ]: CTALSA - Creative X-Fi
                      Creative ALSA Driver X-Fi


!!PCI Soundcards installed in the system
!!--------------------------------------

04:00.0 Audio device: Creative Labs Device 000b (rev 03)


!!Advanced information - PCI Vendor/Device/Susbsystem ID's
!!--------------------------------------------------------

04:00.0 0403: 1102:000b (rev 03)
	Subsystem: 1102:0043


!!Loaded sound module options
!!--------------------------

!!Module: ctxfi


!!ALSA Device nodes
!!-----------------

crw-rw----+ 1 root audio 116, 5 Nov  8  2008 /dev/snd/controlC0
crw-rw----+ 1 root audio 116, 4 Nov  8  2008 /dev/snd/pcmC0D0c
crw-rw----+ 1 root audio 116, 3 Nov  8 13:53 /dev/snd/pcmC0D0p
crw-rw----+ 1 root audio 116, 2 Nov  8  2008 /dev/snd/timer


!!Aplay/Arecord output
!!------------

APLAY

**** List of PLAYBACK Hardware Devices ****
card 0: XFi [Creative X-Fi], device 0: X-Fi 20k2 [WaveOut/WaveIn]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7

ARECORD

**** List of CAPTURE Hardware Devices ****
card 0: XFi [Creative X-Fi], device 0: X-Fi 20k2 [WaveOut/WaveIn]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

!!Amixer output
!!-------------

!!-------Mixer controls for card 0 [XFi]

Card hw:0 'XFi'/'Creative ALSA Driver X-Fi'
  Mixer name	: '20K2'
  Components	: ''
  Controls      : 18
  Simple ctrls  : 7
Simple mixer control 'Master',0
  Capabilities: pvolume cvolume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: Playback 0 - 43690 Capture 0 - 43690
  Front Left: Playback 32751 [75%] Capture 32751 [75%]
  Front Right: Playback 32751 [75%] Capture 32751 [75%]
Simple mixer control 'PCM',0
  Capabilities: pvolume cvolume cswitch cswitch-joined
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: Playback 0 - 43690 Capture 0 - 43690
  Front Left: Playback 39301 [90%] Capture 39301 [90%] [on]
  Front Right: Playback 39301 [90%] Capture 39301 [90%] [on]
Simple mixer control 'Wave',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 43690
  Mono:
  Front Left: Playback 43690 [100%] [on]
  Front Right: Playback 43690 [100%] [on]
Simple mixer control 'Line-in',0
  Capabilities: pvolume cvolume cswitch cswitch-joined
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: Playback 0 - 43690 Capture 0 - 43690
  Front Left: Playback 32525 [74%] Capture 32525 [74%] [on]
  Front Right: Playback 32525 [74%] Capture 32525 [74%] [on]
Simple mixer control 'Mic',0
  Capabilities: pvolume cvolume cswitch cswitch-joined
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: Playback 0 - 43690 Capture 0 - 43690
  Front Left: Playback 0 [0%] Capture 0 [0%] [off]
  Front Right: Playback 0 [0%] Capture 0 [0%] [off]
Simple mixer control 'S/PDIF-in',0
  Capabilities: pvolume cvolume cswitch cswitch-joined
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: Playback 0 - 43690 Capture 0 - 43690
  Front Left: Playback 32525 [74%] Capture 32525 [74%] [on]
  Front Right: Playback 32525 [74%] Capture 32525 [74%] [on]
Simple mixer control 'S/PDIF-out',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 43690
  Mono:
  Front Left: Playback 32525 [74%] [on]
  Front Right: Playback 32525 [74%] [on]


!!Alsactl output
!!-------------

--startcollapse--
state.XFi {
	control.1 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 43690 (step 128)'
		iface MIXER
		device 1
		name 'Master Playback Volume'
		value.0 32751
		value.1 32751
	}
	control.2 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 43690 (step 128)'
		iface MIXER
		device 1
		name 'PCM Playback Volume'
		value.0 39301
		value.1 39301
	}
	control.3 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 43690 (step 128)'
		iface MIXER
		device 1
		name 'Line-in Playback Volume'
		value.0 32525
		value.1 32525
	}
	control.4 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 43690 (step 128)'
		iface MIXER
		device 1
		name 'Mic Playback Volume'
		value.0 0
		value.1 0
	}
	control.5 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 43690 (step 128)'
		iface MIXER
		device 1
		name 'S/PDIF-in Playback Volume'
		value.0 32525
		value.1 32525
	}
	control.6 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 43690 (step 128)'
		iface MIXER
		device 1
		name 'S/PDIF-out Playback Volume'
		value.0 32525
		value.1 32525
	}
	control.7 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 43690 (step 128)'
		iface MIXER
		device 1
		name 'Wave Playback Volume'
		value.0 43690
		value.1 43690
	}
	control.8 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 43690 (step 128)'
		iface MIXER
		device 1
		name 'Master Capture Volume'
		value.0 32751
		value.1 32751
	}
	control.9 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 43690 (step 128)'
		iface MIXER
		device 1
		name 'PCM Capture Volume'
		value.0 39301
		value.1 39301
	}
	control.10 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 43690 (step 128)'
		iface MIXER
		device 1
		name 'Line-in Capture Volume'
		value.0 32525
		value.1 32525
	}
	control.11 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 43690 (step 128)'
		iface MIXER
		device 1
		name 'Mic Capture Volume'
		value.0 0
		value.1 0
	}
	control.12 {
		comment.access 'read write'
		comment.type INTEGER
		comment.count 2
		comment.range '0 - 43690 (step 128)'
		iface MIXER
		device 1
		name 'S/PDIF-in Capture Volume'
		value.0 32525
		value.1 32525
	}
	control.13 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		device 1
		name 'PCM Capture Switch'
		value true
	}
	control.14 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		device 1
		name 'Line-in Capture Switch'
		value true
	}
	control.15 {
		comment.access 'read write'
		comment.type BOOLEAN
		comment.count 1
		iface MIXER
		device 1
		name 'Mic Capture Switch'
		value false
	}
... removed a few sections due to length restriction in forum]
}
--endcollapse--


!!All Loaded Modules
!!------------------

Module
ip6t_LOG
xt_tcpudp
xt_pkttype
ipt_LOG
xt_limit
binfmt_misc
uinput
af_packet
ip6t_REJECT
nf_conntrack_ipv6
ipt_REJECT
xt_state
iptable_mangle
iptable_nat
nf_nat
iptable_filter
ip6table_mangle
nf_conntrack_netbios_ns
nf_conntrack_ipv4
nf_conntrack
ip_tables
ip6table_filter
ip6_tables
x_tables
cpufreq_conservative
ipv6
cpufreq_userspace
cpufreq_powersave
acpi_cpufreq
microcode
firmware_class
nls_iso8859_1
nls_cp437
vfat
fat
fuse
loop
dm_mod
joydev
arc4
ecb
crypto_blkcipher
rtl8187
mac80211
usbhid
i2c_i801
nvidia
sr_mod
cfg80211
hid
i2c_core
ff_memless
iTCO_wdt
rtc_cmos
button
eeprom_93cx6
cdrom
ctxfi
snd_pcm
iTCO_vendor_support
rtc_core
sky2
intel_agp
rtc_lib
snd_timer
snd
soundcore
snd_page_alloc
sg
floppy
sd_mod
ehci_hcd
uhci_hcd
usbcore
edd
ext3
mbcache
jbd
fan
ata_piix
ahci
pata_jmicron
libata
scsi_mod
dock
thermal
processor

Playing sounds with aplay works, speaker-test shows that only front left/right work on my 5.1 system, and alsamixer seems to lack a few controls (rear etc.). In a nutshell: The basic driver features seem to work. I still have 2 problems:

  • How can I configure 5.1 sound? Is it supported with the latest X-Fi drivers?
  • How can I configure KDE to use the card? It doesn’t show up in Yast’s card list and it is unknown to alsaconf, too.

Hi all,

I’m pretty much at the same stage: drivers load, but the card does not show up in KDE/Yast settings.

Any hints are very appreciated ! :slight_smile:

Cheers,
Chris