Purpose of this Guide
This guide is specifically aimed at helping you to get any professional soundcard working with Ubuntu Edgy (6.10).
- If you would like to help me maintain this page, improve it, expand it, or simply provide feedback on what did/didn't work out for you, don't hesitate to comment the page at the bottom. [wiki:Ttoine ttoine]
ALSA for Ubuntu 6.10 with one or more soundcards
In this exemple, I will use a Echo Digital Audio Corporation 'Indigo I/O' pcmcia soundcard for input and output. Don't mind, it is the same job to configure a pci soundcard. Do not simply cut-and-paste the commands here, because you will have to change the alsa driver name of the soundcard chipset, and of course the driver version may be changed.. For my Echo Indigo I/O, it is "indigoio". You may find the diver name of the alsa chipset name of your card on this page: [http://www.alsa-project.org/alsa-doc/ http://www.alsa-project.org/alsa-doc/]
Alsa can manage more than one soundcard, so try to find the driver names of all your soundcards.
If you're having trouble understanding what's being done, you can try the Ubuntu IRC, the forums, the Wiki, the documentation on ALSA, etc...
What is compulsory :
- the linux-headers package of your kernel to compile the ALSA drivers. you may find the good version with a "uname -r" in a terminal
- the "build-essential" package in order than you can launch ./configure, make, etc... to compile source
- some dev "curses" librairies, packages are: "libncurses5-dev", "libncursesw5-dev" and "ncurses-term"
- the "alsa-tools-gui" package to get the specific gui to control and tweak some soundcards, like the gui Echo or RME you can have in Windows or Macos.
You can install these packages with synaptics, or by running this line in terminal:
sudo apt-get install linux-headers-$(uname -r) build-essential libncurses5-dev libncursesw5-dev ncurses-term alsa-tools-gui
You also need to download the ALSA source files from [http://www.alsa-project.org alsa-project.org], I recommend alsa-libs, alsa-driver, alsa-firmware, and alsa-utils, versions 1.0.13 or newer. Be care not to download rc releases, they are not to be considered as stable.
Extract the sources with the gnome archive manager (e.g in /home/yourname/alsa (create the directory)), or in command line, i.e:
gunzip alsa-*.gz tar xvf alsa-*.tar
Begin configuring and compiling the code:
With the terminal, go where are the extracted sources and run :
cd alsa-driver-1.0.13 make clean make mrproper ./configure --with-cards=indigoio --with-oss=yes --with-sequencer=yes make sudo make install
NOTE: where I did: ./configure --with-cards=indigoio --with-oss=yes --with-sequencer=yes You'd want to specify the card(s) that you will be using. Furthermore, if you have only just downloaded the source you do not need to do the steps: make clean; make mrproper... This is to be done if you previously compiled this sources, and these steps clean-up the old config and binaries for a fresh start.
NOTE: more than one soundcard: if you want to configure more than one card, you may type something like ./configure --with-cards=indigoio,hda-intel,hdsp --with-oss=yes --with-sequencer=yes. Use only "," between the drivers.
If you get errors at any stage, you may need to try the ubuntu IRC or forums -- please send me feedback so that I may make this page more useful! [https://wiki.ubuntu.com/CurtisBrown Contact Details] (or edit it yourself, if you like.) This request applies to the following steps as well:
If all went well, then lets move on to the libs, firmware, and utils:
cd ../alsa-lib-1.0.12rc1 make clean ./configure make sudo make install cd ../alsa-firmware-1.0.12rc1 make clean ./configure make sudo make install cd ../alsa-utils-1.0.12rc1 make clean ./configure make sudo make install
You will now need to link the content of usr/local/share/alsa/firmware/ with /usr/share/alsa so the firmware and drivers can find the files, e.g:
sudo ln -s /usr/local/share/alsa/firmware /usr/share/alsa
Almost finished! Now, reboot your system, then run the alsa mixer to unmute and set your levels:
alsamixer -c0 -Vall alsamixer -c1 -Vall
NOTE: -c# tells the alsamixer which device you want to configure, so in my case -c0 is the on-board sound, and -c1 is the Mia.
A final Caveat
When configuring more than one soundcard, it often appears that one card is the "first" device, other times it's an other. This has led to a lack of output because the System... Preferences... Sound control panel seems to only consider card "0" to be the default, even if you change it.
So, to make a long story short, you can ensure that one of your sound-devices is always "0" with this small modification:
Edit the following file with your favorite editor, e.g:
sudo gedit /etc/modprobe.d/alsa-base
and append this to the bottom of the file, making adjustments as required for your setup:
options snd_hda-intel index=0 options snd_indigoio index=1 options snd_hdsp index=2 #etc...
Here, don't hesitate to comment this page if you need it more complete or if you noticed a specific configurationtweak for a soundcard driver.
This document is well inspired from [https://help.ubuntu.com/community/EchoMia https://help.ubuntu.com/community/EchoMia], I want to thank CurtisBrown for that page. I did this page after a lot of trials with different hardware and computer (laptop, desktop,