Creative X-FI Titanium 5.1 Digital Surround on Ubuntu

The Creative X-FI Titanium card has, for a long time, not worked on Ubuntu … until now. I've gathered what information I could and found a solution to get it working 100% of the time. This doesn't mean it works to 100% of it's potential; some features are still missing such as the Crystalizer and fun features like that. Though it does record audio well, processes extremely well and with my help you'll have it blasting at full 5.1 digital goodness.

Let's get started! Note that these instructions are for Ubuntu 11.04 and not for 11.10. Why not 11.10 nor any other linux? Well, I think Ubuntu 11.10 is a joke and I'm lazy so I use Ubuntu. Though I'm pretty sure you could modify these instructions to your distro.

The problem with the X-FI Titanium card most likely ISN'T that Ubuntu cannot ‘see' the card, it's most likely that it simply does not have the capability to use it (yet). If you go into your audio preferences you won't see it there, but if you do a little bit of command line magic it should show up! Even on a fresh Ubuntu 11.04 install.

Type in this command on the command line:

lspci | grep Audio

For me it output:

~$ lspci | grep Audio
03:00.0 Audio device: Creative Labs X-Fi Titanium series [EMU20k2] (rev 03)
04:00.1 Audio device: ATI Technologies Inc Cypress HDMI Audio [Radeon HD 5800 Series]

So it does actually show! YEY!

If it does not show up there, then this is NOT the tutorial for you. If you see it listed, continue on my friend to salvation!

Step 1) Add the Audio Dev PPA

The audio dev PPA's are the repositories which hold newer compiled version of Alsa and a few other things. The real problem with getting the X-FI card to work is Alsa, not ‘Linux'. The newer drivers available through the Audio Dev have the ‘ctfxi' drivers PROPERLY built right in.

To add the repository for Ubuntu 11.04 type in this command in the terminal:

sudo apt-add-repository ppa:ubuntu-audio-dev/ppa; sudo apt-get update

This will add the repository and update your list. Now all that's left is to install the new alsa!

sudo apt-get install linux-alsa-driver-modules-`uname -r`

This will automatically install the latest version of Alsa from the repository specific for your kernel inside of Ubuntu. This might take a little bit of time depending on your computer speed and internet connection. After all is said and done: Reboot.  Though come back because there is more to do!

After your back into linux, it's time to do Step 2!

Step 2) Add the proper alsa configuration and compile the surround sound modules!

It might sound complicated, but it's rather simple. Just follow along and you'll be just fine. Don't miss any steps though.

First, we're going to configure Alsa and PulseAudio.

We need to open up a file named ‘asound.conf' and add some fun stuff into it. Most likely, you don't have it. No worries, we'll create it. From the command line:

gksudo gedit /etc/asound.conf

Type in your admin password when prompted. Now add this to the top of the file:

pcm.a52 {
  @args [CARD]
  @args.CARD {
    type string
  type rate
  slave {
    pcm {
      type a52
      bitrate 448
      channels 6
      card $CARD
  rate 48000 #required somehow, otherwise nothing happens in PulseAudio

Save and close the file.

Next we're going to build the required digital surround sound module: A52.

This process usually gets complicated by others, so I've simplified it for you. Copy and paste this into your command line / terminal and then press enter. Copy ALL OF IT. not line by line.

cd ~; sudo apt-get build-dep libasound2-plugins; sudo apt-get install libavcodec-dev libavformat-dev; mkdir ~/tmp; cd ~/tmp; apt-get source libasound2-plugins; cd alsa-plugins-*; ./configure; make; cd a52/.libs; sudo cp /usr/lib/alsa-lib/; sudo alsa reload; killall pulseaudio

That's a lot of work! WOO. No worries. Here's what it does:

  1. Goes into your home directory
  2. Gets the source code for the plugin and the extra development files
  3. Makes a temporary directory
  4. Gets more source stuff
  5. Configures the pre-install stuff, then compiles/builds the module
  6. Then installs it for you
  7. Resets Alsa and PulseAudio
All that's left is for you to go into the audio preferences and select your new awesome X-Fi Titanium card! Don't forget to set the output profile to be “Digital Surround 5.1 (IE958/AC3/ Output” (or one of the similar ones) to get pure digital audio goodness.
  • Thank you very much, this worked for the Sound Blaster X-fi surround 5.1 Pro external sound card aswell.
    Even though lspci | grep Audio didn’t show my card.

    And again thanks for an easy guide!

  • How do you get the rear headphone jack to work? The one on the card itself, next to the optical output. I have a PCI-E Auzentech Forte 7.1 (that’s X-FI Titanium series).

    • It all ‘mostly’ worked after compiling the new alsa and kernel header modules. To get the other ports to all work nicely, I’d recommend also making sure you did the A52 module step plus the .asoundrc file thing. Though, I’m not sure if your Auzentech card has any ‘extra’ or different specifications than the non-branded X-FI … not sure.

      I’m also using an external speaker system through the optical out port … so I never really tried the other ports. THOUGH, before I went optical, I did used the 6-channel passthrough through the front, back and sub-woofer/bass ports on the card and those worked well.

      My suggestion would be to try to see if the card works fine, and especially that rear port, in Windows. If it doesn’t, then the card is broken. If it works, then maybe the port is muted in Linux?

      Though with the new compiled modules + A52 + the .rc file it should all show in the control panel and ‘should’ work :-/

  • on Ubuntu 10.10 (Creative Labs X-Fi Titanium series [EMU20k2] (rev 04) )
    don’t works. No one method I could find. And this one don’t work also.

    • Hey Kage,

      Sorry to hear that this didn’t work out for you. Did you receive any error message? What went wrong in the process? Though on a side note, this article plus the other one I wrote were for Ubuntu 11.04 and Ubuntu 11.10. Contact me directly and I’ll try to help you out.

      — Peter

  • Hi, Piotr!
    Thanks for quick reply.
    How can I contact you directly?

    There is something in MAKE process – modules and are not generated..

    [email protected]:~/tmp/alsa-plugins-1.0.23/a52/.libs$ sudo cp /usr/lib/alsa-lib/
    cp: cannot stat `’: No such file or directory
    cp: cannot stat `’: No such file or directory

    [email protected]:~$ aptitude search avcodec
    i libavcodec-dev – development files for libavcodec
    i libavcodec-extra-52 – ffmpeg codec library
    p libavcodec-unstripped-52 – ffmpeg utility library – transitional package
    c libavcodec52 – ffmpeg codec library
    p xmms2-plugin-avcodec – XMMS2 – avcodec decoder

    [email protected]:~$ lspci | grep Audio
    02:00.1 Audio device: nVidia Corporation High Definition Audio Controller (rev a1)
    05:00.0 Audio device: Creative Labs X-Fi Titanium series [EMU20k2] (rev 04)

    [email protected]:~$ uname -a
    Linux 2.6.35-32-server #66-Ubuntu SMP Mon Feb 13 21:21:41 UTC 2012 x86_64 GNU/Linux

  • Thanks for this, it is great!

    However, I am finding that when it does work, I can only select 2 channel digital audio under “hardware” and often this crashes and I have to reset pulse audio.

    I have X-fi titanium

  • >