Ubuntu Linux Creative Sound Blaster X-Fi Driver Installation How To

View Comments

Posted on 21st May 2009 by Craig Huffstetler in Guide | How To | Linux | Ubuntu

, , , , , , , ,

There is a way to get your Creative X-Fi Card working in Ubuntu Linux using the proprietary drivers provided by Creative as of 2008/2009. As of Ubuntu 8.10 (Intrepid Ibex) and 9.04 (Jaunty Jackalope) they work fine; however, they do take a little bit of know-how to install. Soon there will be no need for any of this as the ALSA team and kernel team are working hard on integrating them into the core Linux system. Watch out for this in Karmic Koala (see bottom of post)!

So, let’s get going.

Go to Creative’s web site and download the X-Fi driver for your card for “Linux.” It will come in a .tar.gz file.

After downloading the file from Creative’s web site you need to double click on the file. Click on “Extract” in the upper menu. You can choose the location. Your Desktop is perfectly fine as well as any other location, such as your ~/ (home) directory. Just remember where you place your downloaded file.

It will indeed take going to the terminal (Applications > Accessories > Terminal) as of now. Then going to the directory where you extracted the file to.

To do this type:

cd /directory/path

If it is your desktop that would be:

cd Desktop

or:

cd ~/Desktop

If it is just your home folder your are already there.

Then go to the Creative driver folder using “cd” as well.

cd XFiDrv_Linux_Public_US_1.00

or just type:

cd XFi<TAB>
<TAB> will auto-complete for you. Press Enter.

Once there:

Type:

make

Then type:

sudo make install
Enter in YOUR password (you will not be able to see it).

This will most likely will require a restart. HOWEVER, before you restart go to System > Administration > Hardware Driver. Ensure the X-Fi Restricted Driver (that you just installed) is enabled).

You can then go to:

System > Preferences > Sound

And look at your main mixer on the bottom. Make sure ALSA X-Fi is selected. Test the above channels to make sure everything is working properly.

Now everything should work fine.

This is the only way to get it to work and you must do this again with any NEW kernel installs or upgrades. This until the new ALSA release that will support this model sound card. This bug has been ongoing in the community of Ubuntu and you can read about it, and subscribe to it, here. It will pushed out in Karmic with ALSA along with the newer version of the kernel (we hope!).

If you have any questions there is always #ubuntu on freenode IRC and Launchpad Answers. And, of course, you can always fire away in comments.

  • Scott Mckown
    I don't know if I'm too late to post here or should be redirected to another thread, but I'm having issues trying to get all components in my Creative Sound Blaster X-Fi card (SB0460) and interface working and would much appreciate help.
    -------------------------------
    This is what happens when I follow the steps in your how-to:

    scott@Snuffleupagus:~$ cd Desktop
    scott@Snuffleupagus:~/Desktop$ cd XFiDrv_Linux_Public_US_1.00
    scott@Snuffleupagus:~/Desktop/XFiDrv_Linux_Public_US_1.00$ make
    make -C /lib/modules/2.6.31-22-generic/build M=/home/scott/Desktop/XFiDrv_Linux_Public_US_1.00
    make[1]: Entering directory `/usr/src/linux-headers-2.6.31-22-generic'
    CC [M] /home/scott/Desktop/XFiDrv_Linux_Public_US_1.00/xfi.o
    /home/scott/Desktop/XFiDrv_Linux_Public_US_1.00/xfi.c:14:26: error: sound/driver.h: No such file or directory
    /home/scott/Desktop/XFiDrv_Linux_Public_US_1.00/xfi.c: In function ‘ct_card_probe’:
    /home/scott/Desktop/XFiDrv_Linux_Public_US_1.00/xfi.c:55: error: implicit declaration of function ‘snd_card_new’
    /home/scott/Desktop/XFiDrv_Linux_Public_US_1.00/xfi.c:55: warning: assignment makes pointer from integer without a cast
    make[2]: *** [/home/scott/Desktop/XFiDrv_Linux_Public_US_1.00/xfi.o] Error 1
    make[1]: *** [_module_/home/scott/Desktop/XFiDrv_Linux_Public_US_1.00] Error 2
    make[1]: Leaving directory `/usr/src/linux-headers-2.6.31-22-generic'
    make: *** [all] Error 2
    scott@Snuffleupagus:~/Desktop/XFiDrv_Linux_Public_US_1.00$

    ------------------

    This also might help:

    scott@Snuffleupagus:~$ wget -O alsa-info.sh http://alsa-project.org/alsa-info.sh && bash ./alsa-info.sh
    --2010-08-16 02:07:08-- http://alsa-project.org/alsa-info.sh
    Resolving alsa-project.org... 212.20.107.51
    Connecting to alsa-project.org|212.20.107.51|:80... connected.
    HTTP request sent, awaiting response... 302 Found
    Location: http://git.alsa-project.org/?p=alsa-driver.git;a=blob_plain;f=utils/alsa-info.sh [following]
    --2010-08-16 02:07:09-- http://git.alsa-project.org/?p=alsa-driver.git;a=blob_plain;f=utils/alsa-info.sh
    Resolving git.alsa-project.org... 212.20.107.51
    Reusing existing connection to alsa-project.org:80.
    HTTP request sent, awaiting response... 200 OK
    Length: unspecified [text/plain]
    Saving to: `alsa-info.sh'

    [ <=> ] 27,026 42.4K/s in 0.6s

    2010-08-16 02:07:09 (42.4 KB/s) - `alsa-info.sh' saved [27026]

    ALSA Information Script v 0.4.59
    --------------------------------

    This script visits the following commands/files to collect diagnostic
    information about your ALSA installation and sound related hardware.

    dmesg
    lspci
    lsmod
    aplay
    amixer
    alsactl
    /proc/asound/
    /sys/class/sound/
    ~/.asoundrc (etc.)

    See './alsa-info.sh --help' for command line options.

    Automatically upload ALSA information to www.alsa-project.org? [y/N] : y
    Uploading information to www.alsa-project.org ... Done!

    Your ALSA information is located at http://www.alsa-project.org/db/?f=8083ddd6e1fbf4b4ea746b1f5709f7bfbab70e62

    Please inform the person helping you

    ------------------------------

    This might also help. These are the only two audio-related entries that show up under the command [ lspci -v | less ]
    ...
    00:07.0 Multimedia audio controller: Creative Labs SB X-Fi
    Subsystem: Creative Labs Device 0021
    Flags: bus master, medium devsel, latency 32, IRQ 18
    I/O ports at d400 [size=32]
    Memory at ee000000 (64-bit, non-prefetchable) [size=2M]
    Memory at e8000000 (64-bit, non-prefetchable) [size=64M]
    Capabilities: <access denied="">
    Kernel driver in use: SB-XFi
    Kernel modules: snd-ctxfi
    ...
    00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 50)
    Subsystem: Micro-Star International Co., Ltd. Device 7340
    Flags: medium devsel, IRQ 22
    I/O ports at e800 [size=256]
    Capabilities: <access denied="">
    Kernel driver in use: VIA 82xx Audio
    Kernel modules: snd-via82xx
    ...

    Any and all help appreciated. Thank you.</access></access>
  • Scott Mckown
    Forgot to mention something really important: I'm running Ubuntu 9.10
  • Raixx
    hello! i have this sound card, and i tried to install drivers as zou told here.
    everything worked well untill i went to step vere ih had to type make install. it says this..
    rajko@rajko:~$ cd /home/rajko/desktop/
    bash: cd: /home/rajko/desktop/: No such file or directory
    rajko@rajko:~$ cd /home/rajko/Desktop
    rajko@rajko:~/Desktop$ cd XFiDrv_Linux_Public_US_1.00
    rajko@rajko:~/Desktop/XFiDrv_Linux_Public_US_1.00$ sudo make
    [sudo] password for rajko:
    make -C /lib/modules/2.6.28-15-generic/build M=/home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00
    make[1]: Entering directory `/usr/src/linux-headers-2.6.28-15-generic'
    LD /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/built-in.o
    CC [M] /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/xfi.o
    In file included from /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/xfi.c:14:
    include/sound/driver.h:1:2: warning: #warning "This file is deprecated"
    In file included from /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctatc.h:25,
    from /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/xfi.c:17:
    include/sound/driver.h:1:2: warning: #warning "This file is deprecated"
    CC [M] /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctatc.o
    In file included from /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctatc.h:25,
    from /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctatc.c:18:
    include/sound/driver.h:1:2: warning: #warning "This file is deprecated"
    CC [M] /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctvmem.o
    CC [M] /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctpcm.o
    In file included from /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctatc.h:25,
    from /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctpcm.h:21,
    from /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctpcm.c:18:
    include/sound/driver.h:1:2: warning: #warning "This file is deprecated"
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctpcm.c: In function ‘ct_alsa_pcm_create’:
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctpcm.c:462: warning: passing argument 2 of ‘snd_pcm_new’ discards qualifiers from pointer target type
    CC [M] /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctmixer.o
    In file included from /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctatc.h:25,
    from /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctmixer.h:21,
    from /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctmixer.c:19:
    include/sound/driver.h:1:2: warning: #warning "This file is deprecated"
    CC [M] /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctresource.o
    CC [M] /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.o
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c: In function ‘put_src_rsc’:
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c:569: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c:576: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c: In function ‘put_srcimp_rsc’:
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c:883: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c:887: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c: In function ‘srcimp_imap_add’:
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c:916: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c:922: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c: In function ‘srcimp_imap_delete’:
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c:936: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c:942: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c: In function ‘srcimp_mgr_destroy’:
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c:1004: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctsrc.c:1006: warning: comparison of distinct pointer types lacks a cast
    CC [M] /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctamixer.o
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctamixer.c: In function ‘put_amixer_rsc’:
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctamixer.c:329: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctamixer.c:333: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctamixer.c: In function ‘put_sum_rsc’:
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctamixer.c:494: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctamixer.c:498: warning: comparison of distinct pointer types lacks a cast
    CC [M] /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctdaio.o
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctdaio.c: In function ‘put_daio_rsc’:
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctdaio.c:537: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctdaio.c:539: warning: comparison of distinct pointer types lacks a cast
    /home/rajko/Desktop/XFiDrv_Linux_Public_US_1.00/ctdaio.c: In function ‘daio_imap

    What should I do?
  • craighuff
    Make sure you have the latest ALSA drivers installed (from Synaptic). Also:

    It's:
    make
    sudo make install

    If you continue to have problems please e-mail me using the contact form or better yet:
    https://answers.launchpad.net/ubuntu

    They will be able to assist you further. It helps to know what version of Linux you are running, what distro., what you've done thus far etc. So far not much is known.

    Thanks!
  • Luke
    I believe he meant to do:
    $ make
    $ sudo make install

    He may have gotten it backwards. make should require no root privileges unless root unpacked the original file. make install however requires root privs to copy the new binaries into their rightful places.
  • Ahmer
    when i enter the command make install it says

    Copy module files...
    mkdir: cannot create directory `/lib/modules/2.6.28-15-generic/kernel/drivers/ssound': Permission denied
    make: *** [install] Error 1

    plzz help
  • craighuff
    Luke is correct. That will fix the issue you are having.

    I fixed the above guide/post.
  • just
    yeah, thank you. This has saved a lot of time for me. I have smoked some weed and wanted to listen for some music, you know.

    Ačiū
  • craighuff
    No problem...

    Anyway, the drivers and all of your soundcards (X-Fi) will work out of the box in the next release (Karmic) of Ubuntu. So, that is good news. Mine is already working as of Alpha 3. And it's working great as of Alpha 4 & 5.
  • Sean
    Hi Craig, I've stepped through your instructions and this hasn't worked for me. I'm on a Dell XPS m1530 (laptop), using an X-Fi "notebook". After make-installing, the driver/hardware doesn't appear anywhere in the admin screens you mention. Any tips?
  • ajay
    hi_
  • caca
    new alsa has a xfi driver in git.. Still looking a howto.
  • craighuff
    Yep, I've tested it while it was in the early stages of beta. I'll check it out. I know they have one still that is in beta (later stages), but I'll check it out and see if it was more stable than I tested. If it is I'll post another how-to. While they are in beta they do require compiling (like the above). It's a manual process.

    This is mainly why Ubuntu waits until it is "stable" when they deploy it into their repositories and make it available to their users, among other reasons (such as stability). You don't want to be crashing all the time :)
  • Wells
    Thanks a whole heck of a lot. This was just the kind of step-by-step instructions I was looking
    for, one which leaves nothing to the imagination. God Bless You
blog comments powered by Disqus