Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

All of these models actually use the same exact PCIe card. I happen to have the 1212m model. It worked great in Windows, but unfortunately, Creative Labs E-MU only offers Windows drivers for this particular card. I have switched to using Ubuntu as my main desktop for a while now. How can I make it work in Ubuntu?

Furthermore, my chipset comes with integrated Intel HD Audio as well, and I'd like to be able to switch back and fourth between the E-MU sound card and the Intel one.

share|improve this question

2 Answers 2

up vote 2 down vote accepted

Update Jul 3, 2014

As of Ubuntu 14.04, the ALSA driver is natively supported in the kernel, so the download-compile-install process for the driver should be skipped. The remaining of the instructions remains the same.

Instructions

In order to get this card to work, you need to set up ALSA (Advanced Linux Sound Architecture). Download the latest stable releases of alsa-driver, alsa-lib, alsa-utils, and alsa-firmware from their wiki page here and extract them.

0. Pre-reqs

To make sure you have all the pre-requisites for compiling code, run the following command:

sudo apt-get install build-essential linux-headers-$(uname -r)

1. Configure ALSA driver (skip this step if you are in Ubuntu 13.10+)

Now you need to configure which sound devices should be used with ALSA. I'll explain the instruction for having two sound devices, Intel HD Audio, and the E-MU 1212m. If you need ALSA to include another, you need to find the name of the ALSA driver that supports this device. In order to do that, check ALSA's sound card matrix here. If your sound card is supported, you should find a driver for it in the list of drivers. For Intel HD Audio, the driver is hda-intel, and for E-MU 1212m, the driver is emu10k1.

To configure the driver, go to the folder where you extracted alsa-driver in a terminal, and run the following command.

./configure --with-cards=hda-intel,emu10k1 --with-sequencer=yes --with-isapnp=no  --with-oss=no --with-kernel=/lib/modules/$(uname -r)/build

--with-cards specifies a comma-separated list of the drivers that you need. As for the other options, I have the driver include a sequencer, specified the that the device is not plug and play, specified that OSS is not used, and specified the kernel. Although you shouldn't need to, but you can add additional configuration options for the ALSA driver as necessary. You can learn more about configuring ALSA driver by running the command ./configure --help.

Note: If you are not sure which card you have, try running lshw -c sound in the terminal. It will list all the sound hardware. If it is a PCI, it should also show up when you run lspci | grep audio.

2. Patch the emu10k1 driver (skip this step if you are in Ubuntu 13.10+)

Next we need to apply a small patch to one of the files.

In the same folder, open the file ./alsa-kernel/pci/emu10k1/emu10k1_main.c with a text editor of your choice. Find the line with

static struct snd_emu_chip_details emu_chip_details[] = {

Right below it, insert the following:

{.vendor = 0x1102, .device = 0x0008, .subsystem = 0x40071102,
  .driver = "Audigy2", .name = "E-mu 1010 PCIe",
  .id = "EMU1010",
  .emu10k2_chip = 1,
  .ca0108_chip = 1,
  .spk71 = 1,
  .emu_model = EMU_MODEL_EMU1010B},

Save this file, and close.

3. Compile and install

Go to each of the folders where you extracted driver* (skip if version of Ubuntu is 13.10+), firmware, lib, and utils, and for each of them run this command

./configure && make && sudo make install

Do the same for lib and utils.

4. Copy the firmware files to emu folder

Go to the folder where you extracted alsa-firmware in the terminal. Browse to the folder /emu/ there, and run the following command:

sudo cp *fw /lib/firmware/emu

Note:/lib/firmware/emu should exist, but if doesn't create it.

5. Configure the Linux sound base to use ALSA

Run this command:

sudo dpkg-reconfigure linux-sound-base

and choose ALSA.

6. Reboot!

This should be all. Once the system boots up, you should see SB0400 Audigy2 Value Analog Stereo in the sound settings of Ubuntu.


After you are done

This is enough for you to get started and get a sound output from your card. For more advanced ways to tweak the input/outputs of the cards see the following links:

emutrix : matrix-style mixer for this card. This will need to be compiled with Qt. It's relatively straightforward to build with qt4 and slightly more tricky with qt5 (some quick Google searches of compile errors should solve it). The compilation command is simply qmake && make. enter image description here

alsamixer: this is the main mixer that I often use to mute/adjust io levels. All you have to do to start it is to run in the terminal alsamixer.

gnome-alsa-mixer : or the gui version of it if you prefer (sudo apt-get install gnome-alsa-mixer)

qjackctl This is installed with sudo apt-get install jack qjackctl. Read more about jack on wiki. Some applications in Ubuntu may use this to have low latency and high resolution sound.

share|improve this answer
    
Hope this helps someone out there with a similar situation. It took me several months of sparse efforts to finally put all the pieces together and get this card to work. –  darksky Mar 7 '13 at 1:08
    
I just noticed that there is no alsa-driver download link on their homepage. The last release seems to be from 2009 –  Floby Apr 15 '13 at 22:03
    
You're right. They updated their main page, and somehow managed to remove the link for alsa-driver and replace it with kernel.org link. Nonetheless it is available to download at their download page. I updated my post. –  darksky Apr 18 '13 at 19:44
    
My sound card was an EMU-0404, which uses the same (more or less) driver. I just had to patch the driver slightly differently. However I still can't record anything from the card. Playback is working though. –  Floby Apr 25 '13 at 9:05

I found that

sudo apt-get install libncursesw5-dev gettext xmlto

is necessary before building the alsa-utils.

share|improve this answer
    
...to get the driver installed was the easy part. The real challenge is to route the audio signals thru the 1010 so that they reach the 0202 DAC's. If someone could devise how to set up alsamixer to actually get some sound out would be great! –  Bengt Nilsson Mar 24 '13 at 23:08
    
Use emutrix, alsamixer, and qjackctl to adjust settings, route signals, etc. –  darksky Mar 25 '13 at 15:34
    
Ok, it seems I got a brand new EMU1010 PCIe card with a new firmware version which is not working out-of-the-box. Alsamixer did not do the trick, and jack cannot connect. I will file a report somewhere... –  Bengt Nilsson Mar 29 '13 at 8:02

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.