ABIT IC7 audio for Linux


Introduction


To begin with, it seems the native RedHat/Linux driver for the Intel 8x0 audio devices does not recognize the on-board audio chip on ABIT's motherboard. I did some research, and my web searches and documentation reading didn't give any positive results (although, others have reported that similar systems worked out of the box with the RH9 drivers). I'm guessing it's something to do with how the ABIT card is registering the audio device, like
00:1f.5 Multimedia audio controller: Intel Corp. 82801EB AC'97 Audio (rev 02)
       Subsystem: ABIT Computer Corp.: Unknown device 1022
       Flags: bus master, medium devsel, latency 0, IRQ 17
       I/O ports at d400 [size=256]
       I/O ports at d800 [size=64]
       Memory at fc002000 (32-bit, non-prefetchable) [size=512]
       Memory at fc003000 (32-bit, non-prefetchable) [size=256]
       Capabilities: [50] Power Management version 2

It's quite possible you can get the 8x0 OSS driver to work on your system, but I wasn't in the mood to mess with that, so I gave up.

ALSA to the rescue!


After ditching the "native" 8x0 driver provided by RedHat, I went to download and build ALSA (The Advanced Linux Sound Architecture) instead. However, to save some time, it's much easier to find some existing RPMs and simply install those. For instance, FreshRPMs provide an excellent library of packages built for RedHat 9. I installed the following RPMs on my system:
kernel-smp-module-alsa-0.9.6-1.fr_2.4.20_20.9
gnome-alsamixer-0.9.3-fr1
alsaplayer-0.99.75-fr1
alsa-lib-0.9.6-1.fr
alsa-utils-0.9.6-1.fr
xmms-alsa-0.9.12-1.fr
alsa-driver-0.9.6-1.fr

Some of these packages depend on other components, but it's pretty straight forward to figure out which ones you will need. Make sure you pick the right kernel modules for ALSA, matching your existing kernel as installed on your system!

If you play MP3's while hacking along, like I do, getting the ALSA output plugin for XMMS is a must. It was straight forward to get it going, just change your XMMS to use the ALSA output plugin, and you should be ready to go.


Could this work with the ABIT IC7?


After rebooting the system, Kudzu quickly discovered my new audio device, and configured it. Yes, I finally have audio!?! Not so fast my young padawan, Gnome was still very unhappy, alsaplayer, xmms and other audio players were still all painfully silent. Have I ever mentioned I hate computers sometimes?

Not ready to give up quite yet, I fired up the alsamixer, and I noticed pretty much all of the channels were muted by default. "That can't be good!", I said to myself, so I unmuted the relevant channels, and adjusted the sound levels appropriately. Holy cow, there be sound! And the sound was good!

Once I configured the ALSA mixer properly, I made sure to save the new default configuration (to /etc, with root privs), using the alsactl command:

root # alsactl store

To assure that sound is restored properly when rebooting the system, I added a couple of lines to my /etc/modules.conf file:

alias sound-slot-0 snd-intel8x0
post-install snd-slot-0 /usr/sbin/alsactl restore >/dev/null 2>&1 || : 

But what about the Gnomes?


I was still out of luck getting the Gnomie to produce any sounds at all, not even a whimper. Esound (and the esd server) was unhappy about not finding the appropriate /dev devices to play with. What's worse, there was no sound while playing my current favorite game on Linux, Neverwinter Nights. It was getting really late now, but not having sound while cleansing the plague from Neverwinter simply wasn't acceptable.

More searches on Yahoo and Google indicated that ALSA should have an OSS compatibility mode. That looked promising, so I read through more ALSA docs, and found an interesting tidbit. Adding a few more lines to modules.conf should supposedly do the trick:

alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss

A quick reboot, god I love my new 3GHz P4 machine, and I have a happy Gnome again. Now for the final test, will NWN produce sound? Yes!!! I'm back in business, my Paladin can once again rid the world of all that is evil, and the peasants can rejoice.

Conclusions


I must say the Linux world still has some ways to go when it comes to audio support. It shouldn't have to be this difficult to get sound working, and I don't think I should have to pay extra money to get an audio driver that works (which I have done in the past).

ALSA seems to work extremely well so far, and I'm very pleased with it. Enabling the OSS compatibility mode was really easy, and I got the best of both worlds. Way to go ALSA people, I might even have to switch to SUSE Linux now.


Updates and user feedback


11/22/2003: XMMS and ESD


Fredrik S. Bredeli sent me an email informing me that using xmms with ESD The (Enlightened Sound Daemon) solved audio resource contention issues for him. Just make sure the ESD daemon is running properly, easiest using the Gnome configuration tools. Or, manually with something like

 esd -d /dev/dsp

Once ESD is running, just switch XMMS to use the eSound Output Plugin again.

---

-- Leif Hedstrom