C-Media 8788 for Linux

Rob Williams

Editor-in-Chief
Staff member
Moderator
As per recommendation in our ASUS Xonar D2 review thread, I acquired a card to see how it worked under Linux. As it stands, the CMI8788 driver is 99.5% complete, according to the developer, with the USB-based soundcards being the weakest link right now, it seems.

I have an ASUS Xonar D2X card, which is PCI-E based, and installed it into a PCI-E 16x slot on the motherboard due to the card being long enough to hit my memory modules. The PCI-E 16x slot was the only solution I had, and luckily that didn't effect usage of the card so far.

For whatever reason, the PCI-E version of the Xonar requires a 4-Pin power connector (like fans use), and it will not function without it being plugged in. I spent a few hours figuring out why the sound wasn't working... when that was the issue all along. Don't fall prey to the same problem.

Installing the driver is somewhat easy, but it may depend on your distro of choice and how your kernel is compiled. The most-recent stable version of ALSA does not include support for CMI8788 (from what I can see), so the beta driver from the developers website is required:

http://alsa-project.org/main/index.php/User:ClemensLadisch

In order for this to work at all, the kernel needs to omit all traces of ALSA and OSS. The only thing that should be enabled is sound card support, which I compiled as a module. If you have ALSA compiled into the kernel, it's wise to recompile the kernel without it then boot into the fresh kernel before moving on.
#
# Sound
#
CONFIG_SOUND=m

#
# Advanced Linux Sound Architecture
#
# CONFIG_SND is not set

Once the beta driver is extracted, you can do a simple ./configure within the folder, while adding support for the cards you have. Since I have three sound cards installed, I had to configure it as such:
./configure --with-cards=virtuoso,ice1724,hda-intel
The ice1724 driver is for my Chaintech AV-710, the hda-intel is for the on-board audio with the ICH9 chipset and virtuoso is for the CMI8788. If you have a non-Xonar 8788-based card, you should replace virtuoso with oxygen.

Once compiled, I ran alsaconf and found ALSA detected the card just fine... it also activated it without issue. As you can see in the screenshots below though, not everything was set up correctly. Under the main panel, PCM was the only found volume control. In order for the fullest sound, I found this needed to be turned up all the way and then all applications that used sound had to be adjusted from within (games, Amarok, YouTube, etc).

Under Input, CD, Mic and AUX are all included. Switches contains Line, Mic Boost and IEC958 and also Stereo Upmixing. Selecting Front+Rear+Side, from what I can tell, enables the richest sound... far more "surround" as it should be.

I'm no audiophile, but I can easily hear the difference between this card and the Chaintech AV-710 that I've used for the past two-and-a-half years, even with subpar headphones. I plan on picking up a good pair of Ultrasone's sometime this month and can't wait to see how good the sound is then. It's good to know that Linux users no longer have to put up with lackluster sound... and it should only get better with time.

I'm not done with toying around with the driver yet. I've seen some other people have fuller volume control than what I've seen here, but it may really depend on the card model. I haven't seen anyone else with a PCI-E version of the Xonar test out this driver yet, and those who have had better volume control were using non-Xonar cards.

If anyone out there has tested 8788 under Linux, I'd love to know your experiences. Huge thanks to Clemens Ladisch for developing the driver and having it function so well. I cannot wait to see a completed driver, and even moreso... I look forward to it being included in an ALSA stable release.
 

Attachments

  • asus_xonar_d2x_linux.png
    asus_xonar_d2x_linux.png
    14.8 KB · Views: 1,533
  • asus_xonar_d3x_linux2.png
    asus_xonar_d3x_linux2.png
    16.4 KB · Views: 1,414
  • asus_xonar_d2x_linux1.png
    asus_xonar_d2x_linux1.png
    22.2 KB · Views: 1,468

transformer

Obliviot
Power cable

Great howto, many thanks! I've pulled my hair out though after building the latest stable alsa driver on Gentoo with x86-2.6.24-gentoo-r7 kernel. The card appeared in Gamix mixer, everything seemed to work, but no sound output at all! Very frustrating with this bright shiny gold plated D2X card in sight! So for everyone getting a bit to fuzzy after a 3d genkernel build at 3 o'clock in the night: don't forget to plugin the extra power supply cabel!..
 
Last edited:

Rob Williams

Editor-in-Chief
Staff member
Moderator
Haha... it's sad. The fact that it requires a power connector probably gets everyone. I was in your situation. Had it installed, I saw lights coming out the back, yet no sound. It was at that point that I figured it just wasn't going to work for me in Linux. I felt stupid when I cracked open the computer case and noticed that it required a power connector.

I still find it odd why it needs one, and the PCI doesn't, though. If a PCI-E slot can power a high-end GPU, I don't know why it couldn't handle a scrawny audio card.
 

cdoublejj

Obliviot
Google brought me here and I thought I'd make a few corrections.

It is not a 4 pin like fans use. it is a legacy 4 pin like floppy drives use. It is for the PCI to PCIe converter chip because the Xonar D1 and probably your D2 as well are/is actually a native legacy PCI card and in order to get it to work on modern mother boards it uses the PCI to PCIe converter.

The regular PCI versions have less glitch/issues than the PCIe version, if one has problems to begin with.(windows side people use unofficial drivers to fix this)
 
Top