195 lines
8.1 KiB
HTML
195 lines
8.1 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
|
|
<TITLE>The Elite's K7s5a mainboard HOWTO: The integrated sound board</TITLE>
|
|
<LINK HREF="K7s5a-HOWTO-3.html" REL=next>
|
|
<LINK HREF="K7s5a-HOWTO-1.html" REL=previous>
|
|
<LINK HREF="K7s5a-HOWTO.html#toc2" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="K7s5a-HOWTO-3.html">Next</A>
|
|
<A HREF="K7s5a-HOWTO-1.html">Previous</A>
|
|
<A HREF="K7s5a-HOWTO.html#toc2">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s2">2. The integrated sound board</A></H2>
|
|
|
|
<P>
|
|
<H2><A NAME="ss2.1">2.1 ALSA versus the AC'97 Driver</A>
|
|
</H2>
|
|
|
|
<P>I have used both solutions successfully. However I noticed while working on a speech synthesis system (I was involved in a small accessibility project), that the kernel driver does not seem to be able to re-sample, whereas Alsa does it perfectly.
|
|
<P>
|
|
<H2><A NAME="ss2.2">2.2 Alsa</A>
|
|
</H2>
|
|
|
|
<H3>Getting the ALSA drivers</H3>
|
|
|
|
<P>So we will be compiling the latest sources from ALSA, which should work for all other distributions as well... only the kernel sources will change because mandrake uses specific patches.
|
|
<P>You may get your kernel sources from your distribution or from
|
|
<A HREF="http://www.kernel.org/pub/linux/kernel/">http://www.kernel.org</A><P>Here can be found Mandrake sources for the kernel used in 8.0:
|
|
<P>
|
|
<A HREF="ftp://ftp.univ-savoie.fr/pub/Linux/Mandrake/8.0/i586/Mandrake/RPMS/kernel- source-2.4.3-20mdk.i586.rpm">ftp://ftp.univ-savoie.fr/pub/Linux/Mandrake/8.0/i586/Mandrake/RPMS/kernel -source-2.4.3-20mdk.i586.rpm</A><P>(link seems to be broken, I wish I had made a copy if someone needed but here is the problem with that distribution, mirrors are not kept long enough)
|
|
<P>and grab the tarball from ALSA:
|
|
<P>
|
|
<A HREF="ftp://ftp.alsa-project.org/pub/driver/alsa-driver-0.9.0beta10.tar.bz2">ftp://ftp.alsa-project.org/pub/driver/alsa-driver-0.9.0beta10.tar.bz2</A><P>
|
|
<H3>Installation</H3>
|
|
|
|
<P>Install your kernel sources, in my case:
|
|
<P><EM>rpm -ivh kernel-source-2.4.3-20mdk.i586.rpm</EM>
|
|
<P>Then decompress alsa drivers:
|
|
<P><EM>bzip2 -d alsa-driver-0.9.0beta10.tar.bz2 && tar -xvf
|
|
alsa-driver-0.9.0beta10.tar</EM>
|
|
<P>Make them and install them and create the devices files:
|
|
<P><EM>cd alsa-driver-0.9.0beta10 && make install && ./snddevices</EM>
|
|
<P>Edit <CODE>/etc/modules.conf</CODE> to set everything, and add to it the following
|
|
lines:
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
alias char-major-116 snd
|
|
alias char-major-14 soundcore
|
|
alias sound-slot-0 snd-card-0
|
|
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
|
|
alias snd-card-0 snd-card-intel8x0
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
warning: Christian Cardinale rf.libertysurf@elanidrac.naitsirhc reports that he had to change 'snd-card-intel8x0' for 'snd-intel8x0', which corresponds to what I have for my Debian system, I no longer remember, but I think this one is the mandrake name, if it doesn't work, just use to the other, ok?
|
|
<P>
|
|
<H2><A NAME="ss2.3">2.3 Alsa the Debian way</A>
|
|
</H2>
|
|
|
|
<P>I've switched to Debian some time after writing this howto and wanted to give some instructions about it:
|
|
Things may change a little depending on which version you're using, I use Debian sarge, currently the testing version.
|
|
<P>
|
|
<H3>Using a Debian package with a precompiled kernel</H3>
|
|
|
|
<P>First of all, you can directly download the appropriate precompiled alsa modules:
|
|
find out which kernel you're using
|
|
<P><EM>uname -r</EM>
|
|
<P>2.4.20-3-k7 (should be 2.4.18-k7 or something like that for a woody/stable)
|
|
<P><EM>apt-get install alsa-modules-2.4.20-3-k7</EM>
|
|
<P>the card is the "intel8x0 (PCI: Intel i810/i820/i830/i840/MX440 integrated audio)"
|
|
<P>you should also install the recommended package alsa-utils
|
|
<P><EM>apt-get install alsa-utils</EM>
|
|
<P>now, check the file /etc/alsa/modutils/0.9 against the one given further on this howto.
|
|
It may also be necessary to run update-modules as root to ensure that these lines get into /etc/modules.conf, although the package installation probably does it itself.
|
|
<P>
|
|
<H3>Using a Debian kernel source package</H3>
|
|
|
|
<P>I was forced to recompile my kernel when I got an usb adsl modem. (make-kpkg binary --initrd is something you want to look at someday, but it's off topic)
|
|
<P>I'm assuming, you've done at least the following steps:
|
|
<P>install the alsa sources and two useful packages:
|
|
<EM>apt-get install alsa-source alsa-utils alsa-base</EM>
|
|
debconf will ask you the following questions:
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Say Yes if you want to build ALSA driver with ISA PnP version.
|
|
If your computer doesn't support ISA PnP, you may say No.
|
|
Build ALSA driver with ISA PnP?
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>You can safely select 'no'
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Say Yes if you want to build ALSA driver with debugging code.
|
|
Build ALSA driver with debugging code?
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>We don't need that either, so select 'no'
|
|
<P>
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
You can choose cards to be built by selecting cards you want.
|
|
Each selection is a same name to a option of configure script '--with-cards'.
|
|
The following list are short descriptions of the options to show what they mean.
|
|
Select cards to be built.
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>Select card intel8x0 (PCI: Intel i810/i820/i830/i840/MX440 integrated audio)
|
|
and exit.
|
|
<P><EM>cd /usr/src</EM>
|
|
<P><EM>tar xzvf alsa-driver.tar.gz</EM>
|
|
<P><EM>cd modules/alsa-driver</EM>
|
|
<P><EM>./configure</EM>
|
|
<P><EM>make && make install</EM>
|
|
<P>now, check the file /etc/alsa/modutils/0.9 against this following one.
|
|
<P>
|
|
<H3>/etc/alsa/modutils/0.9</H3>
|
|
|
|
<P>I only remember changing the cards_limit from 4 to 1, to prevent warnings,
|
|
any modification of it should be followed by running update-modules in order to regenerate /etc/modules.conf
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
### DEBCONF MAGIC
|
|
# This file was automatically generated by alsa-base's debconf stuff
|
|
|
|
alias char-major-116 snd
|
|
alias char-major-14 soundcore
|
|
alias snd-card-0 snd-intel8x0
|
|
alias sound-slot-0 snd-card-0
|
|
options snd major=116 cards_limit=1 device_mode=0660 device_gid=29 device_uid=0
|
|
|
|
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
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>
|
|
<H2><A NAME="ss2.4">2.4 Kernel Approach: The AC'97 Driver</A>
|
|
</H2>
|
|
|
|
<P>If you are using a 2.4 or later kernel you can use the
|
|
<A HREF="http://developer.intel.com/ial/scalableplatforms/audio/">Audio Codec '97 (AC'97)</A> sound driver, as the integrated sound card is AC'97 complaint.
|
|
<P>You may enable your soundcard with a kernel module, as a matter of fact,
|
|
you should be able to just use the module without even recompiling
|
|
your kernel, because most GNU/Linux distributions have it already,
|
|
just type:
|
|
<P><EM>modprobe i810_audio</EM>
|
|
<P>and you should see something like this in your syslog:
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Intel 810 + AC97 Audio, version 0.21, 21:31:04 Apr 15 2002
|
|
i810: SiS 7012 found at IO 0xd800 and 0xdc00, IRQ 11
|
|
i810_audio: Audio Controller supports 2 channels.
|
|
ac97_codec: AC97 Audio codec, id: 0x414c:0x4710 (ALC200/200P)
|
|
i810_audio: AC'97 codec 0 supports AMAP, total channels = 2
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>or type
|
|
<P><EM>dmesg | less</EM> and scroll to see the kernel messages.
|
|
<P>If everything went fine, you may add <CODE>i810_audio</CODE> to
|
|
<CODE>/etc/modules</CODE> so it will autoload everytime you boot:
|
|
<P><EM>echo "i810_audio" >> /etc/modules</EM>
|
|
<P>
|
|
<P>or you like monolitic kernels (no modules), follow the step above to install
|
|
the kernel sources
|
|
and say Y to <CODE>Sound card support</CODE> and Y to <CODE>Intel ICH (i8xx) audio
|
|
support</CODE>
|
|
compile your kernel, install, reboot and now your integrated soundcard is
|
|
working.
|
|
<P>If you don't know how to compile a kernel, read the
|
|
<A HREF="http://www.tldp.org/HOWTO/Kernel-HOWTO.html">Kernel HOWTO</A>,
|
|
it's easy and you'll get a optimized kernel for you system, also you'll learn a
|
|
bit about that talk of using the source code (yes you are already taking
|
|
advantage of it :-)
|
|
<P>
|
|
<HR>
|
|
<A HREF="K7s5a-HOWTO-3.html">Next</A>
|
|
<A HREF="K7s5a-HOWTO-1.html">Previous</A>
|
|
<A HREF="K7s5a-HOWTO.html#toc2">Contents</A>
|
|
</BODY>
|
|
</HTML>
|