The Sound Blaster X-Fi sound card driver for Linux from Creative Labs was awful. That's simply the nicest way to put it. The driver was home to many bugs, initially only supported 64-bit Linux, and it was arriving extremely late. The open-source drivers supporting the Creative X-Fi drivers have also been at a stand still. However, Creative Labs today has finally turned this situation around and they have open-sourced the code to this notorious driver. The source-code for the Creative X-Fi driver is now licensed under the GNU GPLv2.
Back in June of 2006, Creative Labs has shared they were working on X-Fi Linux support and expected to release the driver for it in the second quarter of 2007. While it was almost a year out at that time, Creative promised full ALSA support and OpenAL 1.1 support with EAX (Environmental Audio Extensions). In May of 2007, Creative Labs then admitted they duped Linux for Microsoft Vista. Rewriting their Windows drivers to support the Microsoft Vista operating system had taken more time and resources than expected, so they had postponed their Linux work as a result.
In September of 2007, which was two years after the Sound Blaster X-Fi family was originally introduced, Creative Labs finally delivered a Linux driver. This driver was binary-only and it only supported 64-bit Linux. Some manufacturers will just push out 32-bit drivers, but with this first Creative had instead just published a 64-bit driver. This driver also required an older version of GCC and hadn't worked nicely with Ubuntu and other Linux distributions of the time.
This February though Creative Labs had provided 4Front Technologies with X-Fi source headers and other documentation to help them in writing an open-source driver for the Open Sound System. This OSS driver wasn't perfect though and had its own share of problems. The Advanced Linux Sound Architecture (ALSA) was without any Creative X-Fi support.
Creative's latest attempt at delivering a reliable binary driver was in April when they tried again by releasing a new beta driver. A year after they released their first binary Linux driver, the state of Creative X-Fi on Linux was a horrific mess. Following that, a Novell developer then began porting the Open Sound System X-Fi driver to ALSA, but it wasn't in the best shape possible and the developer didn't even have any X-Fi hardware.
Creative's X-Fi on Linux has been far from a pleasant experience, but today that may begin to change. As a move that could be interpreted as either Creative Labs throwing in the towel or them simply acknowledging they want to play with the Linux and open-source communities nicely, they have announced the release of the source-code to their binary driver. This driver is a little less than 13,000 lines and all of it has been put under the GNU GPLv2 license.
The Creative XFiDrv 1.00 driver supports the Sound Blaster X-Fi XtremeMusic, XtremeGamer, Fatal1ty, Platinum, Elite Pro, and Titanium series. The driver is capable of ALSA PCM playback, ALSA recording, and ALSA mixing. The current limitations for this driver are external I/O modules not being supported. The announcement was made on the Creative Forums and the full source-code is available for download from their support area (it is named XFiDrv_Linux_Public_US_1.00.tar.gz).
It appears that this source-code driver is improved beyond their latest binary driver release. Many of the files making up this driver have comments reflecting dates after the last binary driver release in April. We are in the process of testing out this new driver and we will report back if there is any more information to share. Already this driver is known to cause a kernel oops on Fedora 9.
Now time to get this driver into ALSA...