Today, the community website linux.com was (re-)launched by the Linux Foundation. I've already created an account there and I'm checking out now.
How to use a Creative Sound Blaster X-Fi Titanium under Linux
In 2008, Creative has released its X-Fi driver for Linux under the GPL. The driver is not complete, but it lets you use the basic features of your card. You can obtain it from Creative's support website. The driver is called "Creative Sound Blaster X-Fi and X-Fi Titanium Series Linux 32-bit / 64-bit Driver Source Release ", version 1.00, published on November 6 2008.
Sadly, it isn't compliant with newer boards like the PCI-E Titanium version. To use incompliant cards under linux, you have to edit the driver's source code.
First, you need to know the subsystem ID of your card. In this case it is 0x0042.
chorse@aquila:~$ lspci -v [...] 02:00.0 Audio device: Creative Labs [X-Fi Titanium series] EMU20k2 (rev 03) Subsystem: Creative Labs Device 0042 Flags: bus master, fast devsel, latency 0, IRQ 19 Memory at fcff0000 (64-bit, non-prefetchable) [size=64K] Memory at fcc00000 (64-bit, non-prefetchable) [size=2M] Memory at fb000000 (64-bit, non-prefetchable) [size=16M] Capabilities: <access denied> Kernel driver in use: CTALSA Kernel modules: ctxfi [...]
Now enter the directory where you have extracted the driver's source code into. Open
ctdrv.h with a text editor.
/** * Copyright (C) 2008, Creative Technology Ltd. All Rights Reserved. * * This source file is released under GPL v2 license (no other versions). * See the COPYING file included in the main directory of this source * distribution for the license terms and conditions. * * @file ctdrv.h * * @breaf * This file contains the definition of the programming interfaces that * provided by the driver module. * * @author Liu Chun * */ #ifndef CTDRV_H #define CTDRV_H #define PCI_VENDOR_CREATIVE 0x1102 #define PCI_DEVICE_CREATIVE_20K1 0x0005 #define PCI_DEVICE_CREATIVE_20K2 0x000B #define PCI_SUBVENDOR_CREATIVE 0x1102 #define PCI_SUBSYS_CREATIVE_SB0760 0x0024 #define PCI_SUBSYS_CREATIVE_SB0880 0x0041 #define PCI_SUBSYS_CREATIVE_HENDRIX 0x6000 #define CT_XFI_DMA_MASK 0xffffffffUL /* 32 bits */ #endif /* CTDRV_H */
Now change the definition of PCI_SUBSYS_CREATIVE_SB0880 to the value you have detected before
#define PCI_SUBSYS_CREATIVE_SB0880 0x0042
and build the driver as described in the README document.
Hello World!
This is my new weblog. I will blog about topics that matter for me.