264 lines
11 KiB
HTML
264 lines
11 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
|
|
<TITLE>Sound Blaster AWE 32/64 HOWTO: How to install SB AWE sound support</TITLE>
|
|
<LINK HREF="Soundblaster-AWE-4.html" REL=next>
|
|
<LINK HREF="Soundblaster-AWE-2.html" REL=previous>
|
|
<LINK HREF="Soundblaster-AWE.html#toc3" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="Soundblaster-AWE-4.html">Next</A>
|
|
<A HREF="Soundblaster-AWE-2.html">Previous</A>
|
|
<A HREF="Soundblaster-AWE.html#toc3">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s3">3. How to install SB AWE sound support</A></H2>
|
|
|
|
<P>
|
|
<P>
|
|
<H2><A NAME="ss3.1">3.1 Things you will need</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<P>These are the requirements for SB AWE support under Linux:
|
|
<P>
|
|
<UL>
|
|
<LI>a functional Linux system (e.g. the Debian GNU/Linux distribution),</LI>
|
|
<LI>a SB AWE 32 or compatible card (e.g. SB32, SB32 PnP, SB AWE64, ...),</LI>
|
|
<LI>the sources of the Linux kernel, including the sound driver OSS/Free
|
|
(normally included, check in <CODE>/usr/src/Linux/drivers/sound/Readme</CODE>),</LI>
|
|
<LI>the AWE 32 sound driver extensions.</LI>
|
|
</UL>
|
|
<P>If you have a PnP card, you will also need:
|
|
<P>
|
|
<UL>
|
|
<LI>the isapnptools software package. </LI>
|
|
</UL>
|
|
<P>Look in section
|
|
<A HREF="Soundblaster-AWE-6.html#sources">Sources</A> for information where you
|
|
can obtain these programs.
|
|
<P>If you have a Debian GNU/Linux system, this means that you will need
|
|
the packages <CODE>kernel-source-<version></CODE>, <CODE>awe-drv</CODE>
|
|
and perhaps the package <CODE>isapnptools</CODE>.
|
|
You will want some of the other <CODE>awe-*</CODE> packages
|
|
although they are not essential. I strongly recommend the
|
|
<CODE>kernel-package</CODE> for easy kernel compiling and installing.
|
|
<P>
|
|
<P>
|
|
<H2><A NAME="isapnp"></A> <A NAME="ss3.2">3.2 Getting started</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<P>Let's assume you have properly installed your card in a socket on your
|
|
motherboard and perhaps already tested it under a DOS or Windows environment.
|
|
<P>The next step is to initialize the card at boot time if and only if it is a
|
|
PnP card. Follow the documentation in the source package to compile and
|
|
install <CODE>isapnptools</CODE> (or just use the Debian binary package), and make a
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
# pnpdump > /etc/isapnp.conf
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>
|
|
<P>as root. This will generate a hopefully proper configuration file for your
|
|
PnP cards, but with all devices commented out. Please edit this file
|
|
carefully, and compare the values for DMA channels, IO bases and interrupts
|
|
with the configuration of the cards under an DOS or Window environment if
|
|
possible (with Win95, look at the resources used by the card under
|
|
<CODE>resources</CODE> in the <CODE>device manager</CODE>). If you have problems,
|
|
read the documentation that ships with the <CODE>isapnptools</CODE> carefully.
|
|
<P><EM>CAUTION:</EM> <CODE>isapnptools</CODE> often fails to detect all three I/O ports
|
|
of the SB AWE Wave Table device. Please check carefully the <CODE>WaveTable</CODE>
|
|
entry in your <CODE>isapnp.conf</CODE> against the example at the end of this HOWTO.
|
|
Adjust the I/O base addresses if necessary.
|
|
<P>
|
|
<P><EM>CAUTION:</EM> According to the <CODE>isapnp-faq</CODE>, sometimes <CODE>isapnp</CODE>
|
|
fails to program the number of the logical device. If you encounter error
|
|
messages like the following:
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Error occurred executing request 'LD 2' on or around line...
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>then try adding <CODE>(VERIFYLD N)</CODE> at the top of <CODE>isapnp.conf</CODE>. You have
|
|
to use at least version 1.10 for this to work. If you can't use version 1.10
|
|
or newer, you can also POKE the logical device numbers directly. Please
|
|
refer to the <CODE>isapnp-faq</CODE> for more information on this approach. If it
|
|
doesn't work for you, please contact me (and the <CODE>isapnp</CODE> people
|
|
will be interested, too, I would think).
|
|
<P><EM>CAUTION:</EM> Make sure that the last line is <CODE>(WAITFORKEY)</CODE>,
|
|
that will sometimes be omitted by older versions of <CODE>pnpdump</CODE>.
|
|
<P>A sample <CODE>isapnp.conf</CODE> for only one PnP card (the sound card) can be found at
|
|
the end of the document (see section
|
|
<A HREF="Soundblaster-AWE-6.html#isapnpconf">Sample <tt>isapnp.conf</tt></A>).
|
|
<P>If you have a Debian system, no further adjustments are necessary.
|
|
<CODE>isapnp</CODE> will be started at boot time in <CODE>/etc/init.d/boot</CODE> with
|
|
this snippet of script code, that you may want to include in your boot scripts:
|
|
<HR>
|
|
<PRE>
|
|
# Configure the isa plug and play boards before loading
|
|
# modules. Need to do this before loading modules to get
|
|
# a chance of configuring and starting PnP boards before
|
|
# the drivers mess all this up.
|
|
#
|
|
if [ -x /etc/init.d/isapnp ]
|
|
then
|
|
/etc/init.d/isapnp start
|
|
fi
|
|
</PRE>
|
|
<HR>
|
|
|
|
where <CODE>/etc/init.d/isapnp</CODE> is
|
|
<HR>
|
|
<PRE>
|
|
#! /bin/sh
|
|
# /etc/init.d/isapnp: configure Plug and Play boards
|
|
test -x /sbin/isapnp || exit 0
|
|
/sbin/isapnp /etc/isapnp.conf
|
|
exit 0
|
|
</PRE>
|
|
<HR>
|
|
<P>If you have another Linux distribution, you are on your own. I don't know
|
|
what to do (anybody willing to submit more specific information?). Just make
|
|
sure that isapnp gets started <EM>before</EM> the modules will be loaded (see
|
|
below).
|
|
<P>
|
|
<P>
|
|
<H2><A NAME="ss3.3">3.3 Compiling the kernel</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<P>Before recompiling the kernel, you have to apply the AWE Driver Extension to
|
|
the sound driver. Even if your kernel source tree already includes the
|
|
<CODE>awedrv</CODE> extension (check <CODE>/drivers/sound/lowlevel/</CODE> for that), you
|
|
may want to upgrade the <CODE>awedrv</CODE> software. Follow the installation
|
|
instructions in the <CODE>awedrv</CODE> source directory. In brief, you have to run
|
|
an installation script that applies the patches to the kernel sources.
|
|
<P>Be careful if you have upgraded the kernel source tree after running the
|
|
install script. The script just checks if a certain file exists - if it
|
|
exists, it does not apply the necessary patch. You are well advised to
|
|
remove the file <CODE>drivers/sound/lowlevel/awe_wav.c</CODE> before running the
|
|
script after upgrading the kernel source.
|
|
<P>Next you have to configure the kernel for sound support. I hope you know a
|
|
bit about kernel compiling; see the Sound HOWTO and the Kernel HOWTO for
|
|
details. Go in the source directory of your kernel sources
|
|
(<CODE>/usr/src/linux</CODE> for example), and do
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
# make config
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>or <CODE>make menuconfig</CODE> or <CODE>make xconfig</CODE>. Then you have to
|
|
configure your kernel in the standard way. Use this opportunity to make
|
|
a small and powerful kernel, especially designed for your system. Be sure
|
|
to answer <CODE>Enable loadable module support</CODE> with <CODE>Y</CODE>, if you want to
|
|
install the sound driver as a loadable module (a <EM>must</EM> if you
|
|
have a PnP card), but I'm sure you want to do it anyway.
|
|
<P>At one point, you will be asked if you want sound card support. You are free
|
|
to answer with <CODE>Y</CODE> or with <CODE>M</CODE> if you have <EM>not</EM> a PnP card.
|
|
You <EM>must</EM> answer with <CODE>M</CODE>, for module, if you have a PnP card.
|
|
You have to compile sound card support as a module if you have a PnP
|
|
card because the PnP card has to be initialized before the module gets loaded.
|
|
<P>The following questions you should answer with <CODE>Y</CODE>, all other with
|
|
<CODE>N</CODE>:
|
|
<P>
|
|
<HR>
|
|
<PRE>
|
|
Sound Blaster (SB, SBPro, SB16, clones) support (CONFIG_SB) [Y/n/?]
|
|
Generic OPL2/OPL3 FM synthesizer support (CONFIG_ADLIB) [Y/n/?]
|
|
/dev/dsp and /dev/audio support (CONFIG_AUDIO) [Y/n/?]
|
|
MIDI interface support (CONFIG_MIDI) [Y/n/?]
|
|
FM synthesizer (YM3812/OPL-3) support (CONFIG_YM3812) [Y/n/?]
|
|
lowlevel sound driver support [Y/n/?]
|
|
AWE32 support (CONFIG_AWE32_SYNTH) [Y/n/?]
|
|
</PRE>
|
|
<HR>
|
|
<P>Only the latter is actually for the Wave Table synthesis. The others are SB 16
|
|
options from the OSS/Free sound driver.
|
|
<P>In addition, you have to configure the sound card I/O port. Look at the
|
|
<CODE>isapnp.conf</CODE> file for hints, if you have one. For me, the following default
|
|
values are sufficient. Note that the default value from the kernel
|
|
configuration script may be wrong (especially the values <CODE>SBC_IRQ</CODE> and
|
|
<CODE>SB_MPU_BASE</CODE> seem to be incorrect for most cards).
|
|
<P>
|
|
<HR>
|
|
<PRE>
|
|
I/O base for SB Check from manual of the card (SBC_BASE) [220]
|
|
Sound Blaster IRQ Check from manual of the card (SBC_IRQ) [5]
|
|
Sound Blaster DMA 0, 1 or 3 (SBC_DMA) [1]
|
|
Sound Blaster 16 bit DMA (_REQUIRED_for SB16, Jazz16, SMW) 5, 6 or 7
|
|
(use 1 for 8 bit cards) (SB_DMA2) [5]
|
|
MPU401 I/O base of SB16, Jazz16 and ES1688 Check from manual of the card
|
|
(SB_MPU_BASE) [330]
|
|
SB MPU401 IRQ (Jazz16, SM Wave and ES1688) Use -1 with SB16 (SB_MPU_IRQ) [-1]
|
|
</PRE>
|
|
<HR>
|
|
<P>Now recompile the kernel. Debian users should use the
|
|
<CODE>kernel-package</CODE>. This package makes the kernel compile as easy as
|
|
installing a debian package. Look at the documentation in
|
|
<CODE>/usr/doc/kernel-package/</CODE>. Here is a hint:
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
# make-kpkg clean
|
|
# make-kpkg -revision custom.1.0 kernel_image
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>and then <CODE>dpkg -i /usr/src/kernel-image-2.0.29_custom.1.0_i386.deb</CODE>.
|
|
<P>If you have another Linux distribution, follow the standard way for
|
|
compiling a new kernel. Don't forget <CODE>make modules</CODE> and <CODE>make
|
|
modules_install</CODE>. Look at the Sound HOWTO and perhaps the Kernel HOWTO
|
|
for more information.
|
|
<P>
|
|
<P>
|
|
<H2><A NAME="ss3.4">3.4 Reboot</A>
|
|
</H2>
|
|
|
|
<P>
|
|
<P>After installing the new kernel, you should do a reboot (be sure to have a
|
|
functional boot disk at hand). Cross you fingers.
|
|
<P>If you have a PnP card be sure to launch isapnp either in a boot script (as
|
|
described above) or manually:
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
# /sbin/isapnp /etc/isapnp.conf
|
|
Board 1 has Identity 74 00 00 e3 10 48 00 8c 0e: CTL0048 Serial No 58128
|
|
[checksum 74]
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>Now you can install the sound driver, if you have compiled it as a module:
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
# modprobe -a sound
|
|
AWE32 Sound Driver v0.3.3e (DRAM 2048k)
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>If you think the memory detection was not correct (I have a report of one
|
|
who has a AWE64 with 4096k, and ``detected'' have been 28672k), try either
|
|
to upgrade the <CODE>awedrv</CODE> software or to specify the amount of memory in the file
|
|
<CODE>/usr/src/linux/drivers/sound/lowlevel/awe_config.h</CODE>, for example:
|
|
<P>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
#define AWE_DEFAULT_MEM_SIZE 4096 /* kbytes */
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
<P>Sorry, you have to recompile the kernel then (perhaps compiling the modules
|
|
will be sufficient, but I don't know for sure).
|
|
<P>If it works, you may want to have the sound module loaded automatically.
|
|
You can use <CODE>kerneld</CODE> (why this is a bad idea is explained in section 1.4) or
|
|
append a single line containing <CODE>sound</CODE> to your <CODE>/etc/modules</CODE> (in Debian)
|
|
or add <CODE>/sbin/modprobe -a sound</CODE> to your start-up script.
|
|
<P>
|
|
<HR>
|
|
<A HREF="Soundblaster-AWE-4.html">Next</A>
|
|
<A HREF="Soundblaster-AWE-2.html">Previous</A>
|
|
<A HREF="Soundblaster-AWE.html#toc3">Contents</A>
|
|
</BODY>
|
|
</HTML>
|