Howto setup C-Media USB Audio Adapter and Linux




On this page you will a find a short guide on how to set up this audio adapter under Linux and make it work.
I wrote it because when I searched google I found nothing about this Hardware (and - by the way - it was a bargain on amazon).


All comments, suggestions etc. are welcome. Please contact me at wf-hp@gmx.net.




I needed an external audio adapter for skype because with the soundcard in my computer a microphone didn't work (now after changing to ALSA it does). So I had a look in the 'net and found this hardware really cheap so I thought I would give it a try, although the retailer could not tell me whether it was supported by linux.
Luckily I got it to work :-)


Setting up the USB Audio Adapter

I assume you have the USB-subsystem up and running.
If you are using hotplug, it probably will work out of the box, with usbmgr some customization will be necessary.


Step 1: Kernel-Config

It should work with a vanilla-kernel at least since kernel 2.6.14. The ALSA-USB-module should be part of the kernel, otherwise you would have to patch it.

In addition to the usual ALSA-support, compile (recommended: as a module) usbhid, snd_usb_audio.

The necessary Parameters in the kernel-.config-file are
CONFIG_SOUND=y
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=y
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_USB_AUDIO=m

CONFIG_USB_HID=m
CONFIG_USB_HIDINPUT=y


Step 2: Configure USB-Subsystem

If you are using usbmgr: add these lines to /etc/usbmgr/usbmgr.conf:

# C-Media USB Audio Adapter
vendor 0x0d8c product 0x000c module snd-usb-audio

Restart usbmgr.
Now the kernel-modules will be loaded automatically when plugging in the audio adapter.


After plugging the adapter in for the first time use alsamixer -c 1 (if you already have another soundcard configured as card 0) to adjust the volume levels (for playback and don't forget the microphone!) to your needs.


Step 3: Running skype

Update:
Recent versions of skype work with ALSA directly, so there is no reason to play around like described below. Just select in the skype-Options the correct ALSA sound-device for Audio In and Audio Out.

Kept for historical reasons:
I had to play around a lot until a found a solution. Skype 1.2.0.18 obviously
doesn't work with the emulated device /dev/dsp1 (altough play does).
After some research a found some lines that have to be added to ~/.asoundrc or /etc/asound.conf (for system-wide settings) in order to redirect the emulated device /dev/dsp0 to the second ALSA-adapter (which is the USB-adapter).
pcm.dsp0 {
    type plug
    slave.pcm "hw:1,0"
}

Restart ALSA, run aoss skype (with /dev/dsp0) and have fun.




Written 2005-11-25 - last update 2007-02-10