Saturday, April 23, 2011

How to make the Creative SoundBlaster 5.1vx sound card work on Linux

If you have ever tried this card on Linux, you must have encountered the "white noise" problem, which is that you can only hear white noise if you try to play any sound. You must have spent endless hours like me trying to make it work, but probably you couldn't. That's why you're still searching. Well, search no more.

You'll want to kiss me after you read this - it's really that simple.

First of all, get the latest kernel version from kernel.org. I'm using 2.6.38.4, and the performance boost is awesome! It's my favorite version yet!

Now, this is important - alongside the ALSA modules, build the old OSS system as a module, and specifically build the old "100% sound blaster compatible" driver as a module too. Build the kernel and reboot, and viola! It works!

Logic: I __think__ the old "sb" oss driver installs some sort of firmware or something that the card needs. But it works fine with the native snd-ca0106 alsa module - the oss module just sits there. But this system makes it work flawlessly.

I'm gonna report it back to the alsa developers so that they can perhaps have a better look at it.

Enjoy!

5 comments:

  1. Update #1: Capture works, but only at 48KHz, although it does go upto 32-bit float. Also, if you encounter alsa xruns, you'll encounter "read error: skip cycle" and you'll have to reboot if you want to resume recording. Playback works fine.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. hi can u please tell me the steps with commands...
    i know to build kernel ,but what is alsa and old oss?
    thanks in advance

    ReplyDelete
  4. ALSA is the Advanced Linux Sound Architecture. It is the new set of drivers in the linux kernel that replaced the old Open Sound System (OSS) modules.

    When you configure your kernel ( by doing "make menuconfig" for a terminal based configuration program or "make xconfig" for a GUI (qt) based one ), make sure you select the snd-ca0106 module in Drivers -> Sound -> ALSA -> PCI and "100% compatible Sound Blaster" sb module in Drivers -> Sound -> OSS.

    ReplyDelete
  5. please help me to build the kernel.
    Im using scintific linux 6.0 I have run make xconfig and done the above said change but not able to build the kernel plase help me to build the kernel

    ReplyDelete