mirror of https://github.com/tLDP/LDP
934 lines
32 KiB
Plaintext
934 lines
32 KiB
Plaintext
<!doctype linuxdoc system>
|
|
<!-- This is the Sound Blaster AWE 32/64 HOWTO by Marcus Brinkmann -->
|
|
|
|
|
|
<article>
|
|
|
|
<title>Sound Blaster AWE 32/64 HOWTO
|
|
<author>by Marcus Brinkmann <tt><<htmlurl url="mailto:Marcus.Brinkmann@ruhr-uni-bochum.de"
|
|
name="Marcus.Brinkmann@ruhr-uni-bochum.de">></tt>
|
|
<date>v1.2, 11 January 1998
|
|
|
|
<abstract>
|
|
This document describes how to install and configure a Sound Blaster 32 (SB AWE
|
|
32, SB AWE 64) card from Creative Labs in a Linux System using the AWE
|
|
Sound Driver Extension written by Takashi Iwai. It also covers some special
|
|
tools and players for the SB AWE series. Reference system is a Debian
|
|
GNU/Linux System, but every other Linux Distribution should also work.
|
|
</abstract>
|
|
|
|
<toc>
|
|
|
|
<sect>Introduction<p>
|
|
|
|
This is the Sound Blaster AWE HOWTO. It gives you detailed information about
|
|
getting the most out of your Sound Blaster 32 or better, including Wave
|
|
Table synthesis. This document covers all SB cards up from the SB 32.
|
|
|
|
The Sound Blaster series is well-known in the DOS and Windows community, and
|
|
a lot of Linux users want to use this sound card under Linux as well.
|
|
Unfortunately, Creative Labs only provides a sound driver for Windows and
|
|
DOS, so it is not trivial to install and use a SB card under Linux. This
|
|
document tries to describe how one can use the features of the SB AWE series
|
|
under a Linux environment.
|
|
|
|
<sect1>Acknowledgments<p>
|
|
|
|
This documents contains information I got from the AWE Driver FAQ and the ISA PnP FAQ.
|
|
See section <ref id="sources" name="Sources"> for author and location of this
|
|
documents. Thanks to the authors, the SB AWE support is possible.
|
|
|
|
A lot of essential work was done by <url
|
|
url="http://www.4front-tech.com/usslite" name="Hannu
|
|
Savolainen">, who developed the sound driver
|
|
that comes with the Linux kernel. Thank you!
|
|
|
|
I want to thank <url name="Nicola Bernardelli"
|
|
url="mailto:n.bern@mail.protos.it">
|
|
for testing the AWE64 stuff. Without
|
|
him, many errors would have remained undetected.
|
|
|
|
Thanks to the <url
|
|
url="ftp://sunsite.unc.edu/pub/Linux/utils/text/sgml-tools-0.99.0.tar.gz"
|
|
name="SGML Tools"> package, this HOWTO is available in several
|
|
formats, all generated from a common source file.
|
|
|
|
<sect1>Revision History<p>
|
|
|
|
<descrip>
|
|
|
|
<tag>Version 1.0</tag>first version
|
|
<tag>Version 1.1</tag>corrected spelling (thanks Curt!), added version
|
|
requirement for <tt/isapnp/, now available via sunsite and lots of mirrors
|
|
<tag>Version 1.2</tag>French version now available!, minor corrections, lots
|
|
of spelling fixed (thanks to ispell)
|
|
|
|
</descrip>
|
|
|
|
|
|
<sect1>New versions of this document<p>
|
|
|
|
The latest version can be found on my Home Page, namely at
|
|
<url url="http://homepage.ruhr-uni-bochum.de/Marcus.Brinkmann/soundblaster.html"
|
|
name="Sound Blaster AWE HOWTO">.
|
|
|
|
New versions of this document will be uploaded
|
|
to various anonymous ftp sites that archive such information including
|
|
<url url="ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini">.
|
|
|
|
Hypertext versions of this and other Linux HOWTOs are available on
|
|
many World-Wide-Web sites, including <url
|
|
url="http://sunsite.unc.edu/LDP/">. Most Linux CD-ROM
|
|
distributions include the HOWTOs, often under the
|
|
<tt>/usr/doc</tt> directory.
|
|
|
|
Thanks to Arnaud Launay <htmlurl url="mailto:zoro@lsol.tm.fr"
|
|
name="zoro@lsol.tm.fr">, a French version of this document is now available!
|
|
The latest version can be found via <url url="http://www.freenix.fr/linux/HOWTO"
|
|
name="http">
|
|
or <url url="ftp://ftp.lip6.fr/pub/linux/french/docs/HOWTO" name="anonymous ftp">.
|
|
|
|
If you make a translation of this document into another language, let
|
|
me know and I'll include a reference to it here.
|
|
|
|
<sect1>Feedback<p>
|
|
|
|
I rely on you, the reader, to make this HOWTO useful. If you have any
|
|
suggestions, corrections, or comments, please send them to me,
|
|
<htmlurl url="mailto:Marcus.Brinkmann@ruhr-uni-bochum.de"
|
|
name="Marcus.Brinkmann@ruhr-uni-bochum.de">, and I will try to incorporate
|
|
them in the next revision.
|
|
|
|
i would especially welcome information about the startup procedure (boot
|
|
scripts etc.) of other famous Linux distributions, e. g. Red Hat or SuSE
|
|
Linux.
|
|
|
|
If you publish this document on a CD-ROM or in hardcopy form, a
|
|
complimentary copy would be appreciated. Mail me for my postal
|
|
address. Also consider making a donation to the Linux Documentation
|
|
Project to help support free documentation for Linux. Contact the
|
|
Linux HOWTO coordinator, Tim Bynum <htmlurl
|
|
url="mailto:linux-howto@sunsite.unc.edu" name="linux-howto@sunsite.unc.edu">,
|
|
for more information.
|
|
|
|
<sect1>Distribution Policy<p>
|
|
|
|
Copyright 1997 Marcus Brinkmann.
|
|
|
|
This HOWTO is free documentation; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License as
|
|
published by the Free Software Foundation; either version 2 of the
|
|
License, or (at your option) any later version.
|
|
|
|
This document is distributed in the hope that it will be useful, but
|
|
<bf>without any warranty</bf>; without even the implied warranty of
|
|
<bf>merchantability</bf> or <bf>fitness for a particular purpose</bf>.
|
|
See the GNU General Public License for more details.
|
|
|
|
You can obtain a copy of the GNU General Public License by writing to
|
|
the <url url="http://www.fsf.org" name="Free Software Foundation">,
|
|
Inc., 675 Mass Ave, Cambridge, MA 02139,
|
|
USA.
|
|
|
|
|
|
<sect>Before you start<p>
|
|
|
|
<sect1>Introduction<p>
|
|
|
|
This document tries to help you install and use a Sound Blaster AWE 32 or
|
|
Sound Blaster AWE 64 from Creative Labs in your Linux system. The reference
|
|
system is a <url name="Debian GNU/Linux" url="http://www.debian.org">
|
|
system on an Intel i586 platform, but it should work with any other Linux
|
|
distribution as well as on every platform that is supported by the Linux
|
|
sound driver (differences are mentioned where they appear, if any).
|
|
|
|
Be sure to read the Linux Sound HOWTO (see section <ref id="moreinfo"
|
|
name="Additional Information">) carefully. I consider my document a supplement
|
|
to the Sound HOWTO, and often you can find more information about things
|
|
I have left out there.
|
|
|
|
|
|
<sect1>Some general notes about the SB AWE cards<p>
|
|
|
|
The SB AWE 32 sound card provides a raw audio device, standard OPL-2/OPL-3
|
|
synthesis, a MPU-401 MIDI port and 32 voices EMU 8000 Wave Table synthesis
|
|
(for an explanation on these and other terms see the Linux Sound HOWTO).
|
|
One goal of this document is to help you get all these features to
|
|
work properly.
|
|
|
|
The SB AWE 64 has the capabilities of the SB AWE 32 and an additional
|
|
Wave Guide synthesis Creative Labs is especially proud of. The problem for
|
|
Linux users is, that the additional 32 voices are software generated and
|
|
output via the raw wave devices. Because Creative Labs sees no market in
|
|
Linux drivers, a Wave Guide synthesis sound driver is only available for
|
|
Windows 3.1 and Windows 95.
|
|
|
|
This means that, from a Linux user's point of view, the SB AWE 32 and
|
|
SB AWE 64 are almost identical. From now on I will only refer to the
|
|
SB AWE in general and will only mention differences where they appear (if
|
|
any).
|
|
|
|
|
|
<sect1>Some general notes about the Plug and Play cards<p>
|
|
|
|
Most modern cards for the Intel platform are ISA PnP cards, which is an
|
|
abbreviation for ``Plug and Play''. This means, that the card has to be
|
|
configured by the operation system, and this has to be done through an
|
|
initialization routine at boot time. In general, there are at least three
|
|
possible ways to do this:
|
|
|
|
<enum>
|
|
<item>
|
|
You have a PnP Bios, which means that your Bios is aware of PnP
|
|
cards and can configure them. If you think you can use all the
|
|
features of your SB AWE PnP just because you have a PnP Bios, you
|
|
are out of luck. Even if the Bios claims to support PnP cards it
|
|
only initializes a subset of the ports and addresses used by your
|
|
sound card. You will probably be able to play raw wave data, but you
|
|
won't be able to play MIDI music, for example. For this reason, a
|
|
PnP Bios is not an option.
|
|
|
|
<item>
|
|
You have an operating system that supports PnP cards. The current stable
|
|
Linux kernel (2.0.x) is not such an operating system, so we have to wait for
|
|
future kernel releases, that will support PnP devices.
|
|
|
|
<item>
|
|
You have a special program, started at boot time, that initializes your
|
|
PnP cards. This is the way we do it.
|
|
</enum>
|
|
|
|
The most commonly used software to initialize PnP cards under Linux are the
|
|
``isapnptools'' (see section <ref id="sources" name="Sources"> and section
|
|
<ref id="isapnp" name="Getting Started">). They provide a predictable way to
|
|
configure all ISA PnP cards in your machine, not only your sound card.
|
|
|
|
|
|
<sect1>Some general notes about loadable kernel modules<p>
|
|
|
|
Some device drivers can be built as modules instead of compiling them into the
|
|
kernel. You can find more information about modules in the Kernel HOWTO and
|
|
the Module HOWTO (see section <ref id="moreinfo" name="Additional
|
|
Information">).
|
|
|
|
If you have a PnP card, you <em/must/ install sound support as a loadable kernel
|
|
module. This means, that you can't build the sound driver into the kernel,
|
|
but you will have to build it as a module that can be loaded into the
|
|
kernel at runtime. This is because the kernel will be installed before your
|
|
ISA PnP card can be configured, and your sound driver has to be loaded after
|
|
your ISA PnP card is configured.
|
|
|
|
The sound kernel module can be loaded manually via <tt/insmod sound/ or
|
|
<tt/modprobe -a sound/ or in the appropriate boot script of your Linux system
|
|
(in Debian, it is sufficient to append a single line containing
|
|
<tt/sound/ to <tt>/etc/modules</tt>). Another approach is to
|
|
launch <tt/kerneld/, a daemon that installs and removes kernel
|
|
modules as needed.
|
|
|
|
Note that <tt>kerneld</tt> may not be the best solution for the AWE
|
|
sound driver module, because it takes time to load the module in the
|
|
kernel, especially if you want to use Wave Table synthesis and load big
|
|
Sound Font banks, which you have to do each time after inserting the
|
|
module. Because <tt/kerneld/ removes unused modules after one minute by default,
|
|
it is perhaps better to insert the sound module manually or at boot
|
|
time. Note that inserting the sound module manually or at boot time does prevent
|
|
<tt/kerneld/ from removing it when it is idle. By the way: You can
|
|
manually insert the sound module and use <tt/kerneld/ at the same
|
|
time. The two methods don't conflict, but <tt/kerneld/ does not care
|
|
about the sound module anymore.
|
|
|
|
This is especially useful if your mixer settings get disturbed after
|
|
removing and reinstalling the module. A solution for this problem will be
|
|
given in section <ref id="mixing" name="Mixing">
|
|
(there is described how you can start your mixer automatically
|
|
when the sound module gets inserted). However, it takes time for
|
|
<tt/kerneld/ to load the module, to load the sound font bank and to start
|
|
your mixer, and for this and other reasons it is better to install the sound module
|
|
at boot time and not let <tt/kerneld/ remove it.
|
|
|
|
|
|
<sect1>Some general notes about the kernel sound driver<p>
|
|
|
|
You can install sound support in the kernel as a built-in or as a loadable
|
|
module. If you have a PnP card, you have to install sound support as a
|
|
module, because the PnP card needs to be initialized via the isapnptools
|
|
before the module gets installed.
|
|
|
|
As you can imagine, you will have to recompile the kernel. I will give you a
|
|
few hints about it below. For now, let's talk about the sound support in the
|
|
kernel source. The kernel ships with the Free (Lite) Version of the OSS (USS)
|
|
sound driver. The current version of this driver (3.5.4) does not support the
|
|
SB AWE in full, but the SB 16 part of it. So you can have a raw audio device
|
|
and OPL-2/OPL-3 synthesis if you use it, but you will not be able to play midi
|
|
music with Wave Table synthesis.
|
|
|
|
If you want to use the Wave Table device, you can either buy the
|
|
commercial sound driver from <url name="4Front Technologies"
|
|
url="http://www.4front-tech.com"> (someone please confirm me that it can do it,
|
|
please), or patch your kernel with the AWE 32 Sound Driver Extension by Takashi
|
|
Iwai. The former is beyond the scope of this document, I assume you want to use
|
|
the latter.
|
|
|
|
The AWE32 Sound Driver Extension (see section <ref id="sources"
|
|
name="Sources">) is published under the GNU copyright license and
|
|
ships with a number of tools to make use of the EMU 8000
|
|
wave synthesis of the SB AWE cards.
|
|
|
|
The <tt/awedrv/ software is already included in newer kernel source trees
|
|
(starting from some 2.1.x kernels, but perhaps you want to upgrade the
|
|
sources in your kernel tree, they may be old.
|
|
|
|
|
|
<sect>How to install SB AWE sound support<p>
|
|
|
|
<sect1>Things you will need<p>
|
|
|
|
These are the requirements for SB AWE support under Linux:
|
|
|
|
<itemize>
|
|
<item>
|
|
a functional Linux system (e.g. the Debian GNU/Linux distribution),
|
|
<item>
|
|
a SB AWE 32 or compatible card (e.g. SB32, SB32 PnP, SB AWE64, ...),
|
|
<item>
|
|
the sources of the Linux kernel, including the sound driver OSS/Free
|
|
(normally included, check in <tt>/usr/src/Linux/drivers/sound/Readme</tt>),
|
|
<item>
|
|
the AWE 32 sound driver extensions.
|
|
</itemize>
|
|
|
|
If you have a PnP card, you will also need:
|
|
|
|
<itemize>
|
|
<item>
|
|
the isapnptools software package.
|
|
</itemize>
|
|
|
|
Look in section <ref id="sources" Name="Sources"> for information where you
|
|
can obtain these programs.
|
|
|
|
If you have a Debian GNU/Linux system, this means that you will need
|
|
the packages <tt>kernel-source-<version></tt>, <tt>awe-drv</tt>
|
|
and perhaps the package <tt>isapnptools</tt>.
|
|
You will want some of the other <tt>awe-*</tt> packages
|
|
although they are not essential. I strongly recommend the
|
|
<tt>kernel-package</tt> for easy kernel compiling and installing.
|
|
|
|
|
|
<sect1>Getting started<label id="isapnp"><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.
|
|
|
|
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 <tt/isapnptools/ (or just use the Debian binary package), and make a
|
|
|
|
<tscreen><verb>
|
|
# pnpdump > /etc/isapnp.conf
|
|
</verb></tscreen>
|
|
<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
|
|
<tt/resources/ in the <tt/device manager/). If you have problems,
|
|
read the documentation that ships with the <tt/isapnptools/ carefully.
|
|
|
|
<em/CAUTION:/ <tt/isapnptools/ often fails to detect all three I/O ports
|
|
of the SB AWE Wave Table device. Please check carefully the <tt/WaveTable/
|
|
entry in your <tt/isapnp.conf/ against the example at the end of this HOWTO.
|
|
Adjust the I/O base addresses if necessary.
|
|
<p>
|
|
|
|
<em/CAUTION:/ According to the <tt/isapnp-faq/, sometimes <tt/isapnp/
|
|
fails to program the number of the logical device. If you encounter error
|
|
messages like the following:
|
|
|
|
<tscreen><verb>
|
|
Error occurred executing request 'LD 2' on or around line...
|
|
</verb></tscreen>
|
|
|
|
then try adding <tt/(VERIFYLD N)/ at the top of <tt/isapnp.conf/. 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 <tt>isapnp-faq</tt> for more information on this approach. If it
|
|
doesn't work for you, please contact me (and the <tt/isapnp/ people
|
|
will be interested, too, I would think).
|
|
|
|
<em>CAUTION:</em> Make sure that the last line is <tt>(WAITFORKEY)</tt>,
|
|
that will sometimes be omitted by older versions of <tt>pnpdump</tt>.
|
|
|
|
A sample <tt>isapnp.conf</tt> for only one PnP card (the sound card) can be found at
|
|
the end of the document (see section <ref id="isapnpconf" name="Sample
|
|
<tt>isapnp.conf</tt>">).
|
|
|
|
If you have a Debian system, no further adjustments are necessary.
|
|
<tt/isapnp/ will be started at boot time in <tt>/etc/init.d/boot</tt> with
|
|
this snippet of script code, that you may want to include in your boot scripts:
|
|
<code>
|
|
# 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
|
|
</code>
|
|
where <tt>/etc/init.d/isapnp</tt> is
|
|
<code>
|
|
#! /bin/sh
|
|
# /etc/init.d/isapnp: configure Plug and Play boards
|
|
test -x /sbin/isapnp || exit 0
|
|
/sbin/isapnp /etc/isapnp.conf
|
|
exit 0
|
|
</code>
|
|
|
|
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/ the modules will be loaded (see
|
|
below).
|
|
|
|
|
|
<sect1>Compiling the kernel<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
|
|
<tt/awedrv/ extension (check <tt>/drivers/sound/lowlevel/</tt> for that), you
|
|
may want to upgrade the <tt/awedrv/ software. Follow the installation
|
|
instructions in the <tt/awedrv/ source directory. In brief, you have to run
|
|
an installation script that applies the patches to the kernel sources.
|
|
|
|
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 <tt>drivers/sound/lowlevel/awe_wav.c</tt> before running the
|
|
script after upgrading the kernel source.
|
|
|
|
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
|
|
(<tt>/usr/src/linux</tt> for example), and do
|
|
|
|
<tscreen><verb>
|
|
# make config
|
|
</verb></tscreen>
|
|
|
|
or <tt>make menuconfig</tt> or <tt>make xconfig</tt>. 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 <tt/Enable loadable module support/ with <tt/Y/, if you want to
|
|
install the sound driver as a loadable module (a <em/must/ if you
|
|
have a PnP card), but I'm sure you want to do it anyway.
|
|
|
|
At one point, you will be asked if you want sound card support. You are free
|
|
to answer with <tt/Y/ or with <tt/M/ if you have <em/not/ a PnP card.
|
|
You <em/must/ answer with <tt/M/, 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.
|
|
|
|
The following questions you should answer with <tt/Y/, all other with
|
|
<tt/N/:
|
|
|
|
<code>
|
|
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/?]
|
|
</code>
|
|
|
|
Only the latter is actually for the Wave Table synthesis. The others are SB 16
|
|
options from the OSS/Free sound driver.
|
|
|
|
In addition, you have to configure the sound card I/O port. Look at the
|
|
<tt/isapnp.conf/ 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 <tt/SBC_IRQ/ and
|
|
<tt/SB_MPU_BASE/ seem to be incorrect for most cards).
|
|
|
|
<code>
|
|
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]
|
|
</code>
|
|
|
|
Now recompile the kernel. Debian users should use the
|
|
<tt/kernel-package/. This package makes the kernel compile as easy as
|
|
installing a debian package. Look at the documentation in
|
|
<tt>/usr/doc/kernel-package/</tt>. Here is a hint:
|
|
|
|
<tscreen><verb>
|
|
# make-kpkg clean
|
|
# make-kpkg -revision custom.1.0 kernel_image
|
|
</verb></tscreen>
|
|
|
|
and then <tt>dpkg -i /usr/src/kernel-image-2.0.29_custom.1.0_i386.deb</tt>.
|
|
|
|
If you have another Linux distribution, follow the standard way for
|
|
compiling a new kernel. Don't forget <tt/make modules/ and <tt/make
|
|
modules_install/. Look at the Sound HOWTO and perhaps the Kernel HOWTO
|
|
for more information.
|
|
|
|
|
|
<sect1>Reboot<p>
|
|
|
|
After installing the new kernel, you should do a reboot (be sure to have a
|
|
functional boot disk at hand). Cross you fingers.
|
|
|
|
If you have a PnP card be sure to launch isapnp either in a boot script (as
|
|
described above) or manually:
|
|
|
|
<tscreen><verb>
|
|
# /sbin/isapnp /etc/isapnp.conf
|
|
Board 1 has Identity 74 00 00 e3 10 48 00 8c 0e: CTL0048 Serial No 58128
|
|
[checksum 74]
|
|
</verb></tscreen>
|
|
|
|
Now you can install the sound driver, if you have compiled it as a module:
|
|
|
|
<tscreen><verb>
|
|
# modprobe -a sound
|
|
AWE32 Sound Driver v0.3.3e (DRAM 2048k)
|
|
</verb></tscreen>
|
|
|
|
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 <tt/awedrv/ software or to specify the amount of memory in the file
|
|
<tt>/usr/src/linux/drivers/sound/lowlevel/awe_config.h</tt>, for example:
|
|
|
|
<tscreen><verb>
|
|
#define AWE_DEFAULT_MEM_SIZE 4096 /* kbytes */
|
|
</verb></tscreen>
|
|
|
|
Sorry, you have to recompile the kernel then (perhaps compiling the modules
|
|
will be sufficient, but I don't know for sure).
|
|
|
|
If it works, you may want to have the sound module loaded automatically.
|
|
You can use <tt/kerneld/ (why this is a bad idea is explained in section 1.4) or
|
|
append a single line containing <tt/sound/ to your <tt>/etc/modules</tt> (in Debian)
|
|
or add <tt>/sbin/modprobe -a sound</tt> to your start-up script.
|
|
|
|
<sect>Testing the Sound Driver<p>
|
|
|
|
<sect1><tt>/proc/devices, /dev/sndstat</tt><p>
|
|
|
|
If you have built-in sound support, you will get some useful information at
|
|
boot time. If you have sound support installed as a loadable module, you can
|
|
get the same information (perhaps after removing the sound module with
|
|
<tt>modprobe -r sound</tt> first) with
|
|
|
|
<tscreen><verb>
|
|
# modprobe -a sound trace_init=1
|
|
Sound initialization started
|
|
|
|
<Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
|
|
<Sound Blaster 16> at 0x330 irq 5 dma 0
|
|
<Yamaha OPL3 FM> at 0x388
|
|
Sound initialization complete
|
|
AWE32 Sound Driver v0.3.3e (DRAM 2048k)
|
|
</verb></tscreen>
|
|
|
|
If you have a <tt>/proc</tt> virtual file system, you can look for the sound device
|
|
with
|
|
|
|
<tscreen><verb>
|
|
# cat /proc/devices
|
|
Character devices:
|
|
[...]
|
|
14 sound
|
|
[...]
|
|
</verb></tscreen>
|
|
|
|
Next make sure you have the correct devices installed under <tt>/dev/</tt>. Please
|
|
look at the Sound HOWTO for details. Then ask <tt>/dev/sndstat</tt> about the status of
|
|
the sound module:
|
|
|
|
<tscreen><verb>
|
|
# cat /dev/sndstat
|
|
Sound Driver:3.5.4-960630 (Sat Oct 11 19:35:14 CEST 1997 root,
|
|
Linux flora 2.0.29 #1 Sat Oct 11 19:12:56 CEST 1997 i586 unknown)
|
|
Kernel: Linux flora 2.0.29 #1 Sat Oct 11 19:36:23 CEST 1997 i586
|
|
Config options: 0
|
|
|
|
Installed drivers:
|
|
Type 1: OPL-2/OPL-3 FM
|
|
Type 2: Sound Blaster
|
|
Type 7: SB MPU-401
|
|
|
|
Card config:
|
|
Sound Blaster at 0x220 irq 5 drq 1,5
|
|
SB MPU-401 at 0x330 irq 5 drq 0
|
|
OPL-2/OPL-3 FM at 0x388 drq 0
|
|
|
|
Audio devices:
|
|
0: Sound Blaster 16 (4.13)
|
|
|
|
Synth devices:
|
|
0: Yamaha OPL-3
|
|
1: AWE32 Driver v0.3.3e (DRAM 2048k)
|
|
|
|
Midi devices:
|
|
0: Sound Blaster 16
|
|
|
|
Timers:
|
|
0: System clock
|
|
|
|
Mixers:
|
|
0: Sound Blaster
|
|
1: AWE32 Equalizer
|
|
</verb></tscreen>
|
|
|
|
If you don't have an output like this, perhaps there is an error in your
|
|
configuration. Go on and see what doesn't work, then go back to step <ref
|
|
id="isapnp" name="Getting Started">, checking everything.
|
|
|
|
|
|
<sect1> Output - The Raw Audio Device<p>
|
|
|
|
Try to get an <tt>.au</tt> file (Sun workstation) or a raw sample file, and do
|
|
|
|
<tscreen><verb>
|
|
# cat bell.au > /dev/audio
|
|
</verb></tscreen>
|
|
|
|
resp.
|
|
|
|
<tscreen><verb>
|
|
# cat sample > /dev/dsp
|
|
</verb></tscreen>
|
|
|
|
You should hear the content of the file via the <tt>Audio Device 0: Sound
|
|
Blaster 16 (4.3)</tt>.
|
|
|
|
|
|
<sect1>Output - The OPL-2/OPL-3 Synthesis
|
|
<p>
|
|
|
|
If you want to use the OPL-2/OPL-3 FM synthesis to play MIDI-Files with your
|
|
sound card, try the program <tt>playmidi</tt> (see Appendix B). Start it with
|
|
|
|
<tscreen><verb>
|
|
# playmidi -f dance.mid
|
|
</verb></tscreen>
|
|
<p>
|
|
|
|
or
|
|
<p>
|
|
|
|
<tscreen><verb>
|
|
# playmidi -4 dance.mid
|
|
</verb></tscreen>
|
|
|
|
The former will give you OPL-2, the latter OPL-3 MIDI music. If you are
|
|
embarrassed about the sound, don't blame playmidi: It is the FM synthesis
|
|
that sounds bad.
|
|
|
|
Imagine you would only have the OSS/Free Sound Driver: Than this is the
|
|
quality of MIDI Music you can achieve (apart from software synthesis).
|
|
Fortunately, you have a SB AWE, and you can use the Wave Table capabilities
|
|
with the AWE Sound Driver Extension.
|
|
|
|
|
|
<sect1>Output - The Wave Table Synthesis<p>
|
|
|
|
The AWE Driver Extension comes with special tools (<tt/awesfx/) to make use of the
|
|
EMU 8000 Wave Table synthesis. First, you have to load a Sound Font Bank on
|
|
your card - even if you want to use the ROM samples! You can get the files
|
|
from your Windows installation - look for files ending in <tt>*.sfb</tt> or
|
|
<tt>*.sf2</tt>.
|
|
|
|
The ROM samples can be loaded with <tt>SYNTHGM.SBK</tt>, real samples are in
|
|
<tt>SYNTHGS.SBK</tt> and <tt>SYNTHMT.SBK</tt>, as well as in
|
|
<tt>SAMPLE.SBK</tt>. You can get other
|
|
Sound Font Banks via ftp or www, try the EMU Homepage, the web site from
|
|
Creative Labs, and look out for the Chaos samples, they are really good (be
|
|
sure to check out the AWE Driver Web Site).
|
|
|
|
Try to load the standard GM (ROM) set with
|
|
|
|
<tscreen><verb>
|
|
# sfxload -i synthgm.sbk
|
|
</verb></tscreen>
|
|
|
|
and then play a midi file that comes with your SB AWE:
|
|
|
|
<tscreen><verb>
|
|
# drvmidi dance.mid
|
|
</verb></tscreen>
|
|
|
|
|
|
<sect1>Mixing<label id="mixing"><p>
|
|
|
|
Get your favorite mixer program and start it. Start a raw audio
|
|
sample and two MIDI files at the same time, and try out the mixer settings.
|
|
Play a bit, it should be very easy. Here a list of the devices and how they
|
|
are called:
|
|
|
|
<descrip>
|
|
<tag>Yamaha OPL-3</tag>Synth or FM
|
|
<tag>AWE32 Driver</tag>Synth or FM (does anyone know a mixer were the last
|
|
two are separated from each other?)
|
|
<tag>Sound Blaster 16 (4.13)</tag>PCM or DSP
|
|
<tag>PC Speaker (still alive)</tag>Spkr
|
|
</descrip>
|
|
|
|
Other mixer settings refer to the CD ROM, possibly connected to the
|
|
sound card, to Master Volume, Bass, Treble and Recording Level of the
|
|
different input lines. You can specify which lines should be recorded.
|
|
|
|
<sect1>Input - Sampling with the Raw Audio Device<p>
|
|
|
|
You can record different sources: a connected CD ROM, a microphone connected
|
|
to <tt>mic</tt>, and any that you can connect to <tt>line in</tt>. Set the
|
|
mixer in the appropriate position. Play a sound and record into a file,
|
|
reading from the Raw Audio Device, for example:
|
|
|
|
<tscreen><verb>
|
|
# cdplay
|
|
# dd bs=8k count=5 &etago;dev/dsp >music.au
|
|
5+0 records in
|
|
5+0 records out
|
|
# cat music.au >/dev/dsp
|
|
</verb></tscreen>
|
|
|
|
records and plays five seconds of audio from the input device.
|
|
|
|
<sect1>The MIDI Port<p>
|
|
|
|
Sorry, no information about MIDI port yet!
|
|
|
|
<sect>AWE Driver Software<p>
|
|
|
|
<sect1><tt>sfxload</tt><p>
|
|
|
|
You can load samples in your DRAM on the sound card with the <tt/sfxload/
|
|
tool. Note that you can only load one sample file per bank, with bank 0 as
|
|
default. So, after <tt>sfxload synthgs.sbk</tt>, the only samples on your
|
|
sound card are the GS samples. If you want to load additional Sound Font
|
|
Banks, you have to use the <tt/-b/ option, for example:
|
|
|
|
<tscreen><verb>
|
|
# sfxload synthgs.sbk
|
|
# sfxload -b1 sample.sbk
|
|
# drvmidi sfx.mid
|
|
</verb></tscreen>
|
|
|
|
You can load a default Sound Font Bank automatically with installing the
|
|
module. Just append a line like
|
|
|
|
<tscreen><verb>
|
|
post-install sound /usr/bin/sfxload synthgm.sbk
|
|
</verb></tscreen>
|
|
|
|
to your <tt>/etc/conf.modules</tt> file.
|
|
|
|
See the documentation for more details about <tt/sfxload/.
|
|
|
|
<sect1><tt>drvmidi</tt><p>
|
|
|
|
With the <tt/drvmidi/ program, you can use your AWE Driver to play MIDI
|
|
files. Just specify the name of your midi file after the command:
|
|
|
|
<tscreen><verb>
|
|
# drvmidi waltz.mid
|
|
</verb></tscreen>
|
|
|
|
See the documentation for more details about <tt/drvmidi/
|
|
|
|
<sect>Appendix<p>
|
|
|
|
<sect1>Additional Information<label id="moreinfo"><p>
|
|
|
|
<descrip>
|
|
<tag>The Linux Sound HOWTO</tag>
|
|
|
|
Author: Jeff Tranter, <tt><<htmlurl url="mailto:jeff_tranter@pobox.com"
|
|
name="jeff_tranter@pobox.com">></tt>
|
|
|
|
Last Version: v1.17, 4 August 1997
|
|
|
|
Please take a good look at the Sound HOWTO (available from sunsite.unc.edu
|
|
and other sites). It contains a bulk of data about compiling the kernel with
|
|
sound support, and explains a lot about the sound devices, applications etc.
|
|
|
|
I understand this HOWTO as an addition to the Sound HOWTO.
|
|
|
|
<tag>The Linux Sound Playing HOWTO</tag>
|
|
|
|
Author: Yoo C. Chung, <tt><<htmlurl url="mailto:wacko@laplace.snu.ac.kr"
|
|
name="wacko@laplace.snu.ac.kr">></tt>
|
|
|
|
Last Version: v1.4, 13 May 1997
|
|
|
|
You should also look at the Sound Playing HOWTO. It tells you about the
|
|
various sound formats and applications to play them.
|
|
|
|
<tag>The AWE Driver FAQ</tag>
|
|
|
|
Author: Takashi Iwai <tt><<htmlurl url="mailto:iwai@dragon.mm.t.u-tokyo.ac.jp"
|
|
name="iwai@dragon.mm.t.u-tokyo.ac.jp">></tt>
|
|
|
|
Source: <url url="http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/awedrv-faq.html">
|
|
|
|
If you have problems installing the AWE Driver or using the Wave Table synthesis
|
|
of your Sound Blaster card, then look here.
|
|
|
|
<tag>The ISA PnP FAQ</tag>
|
|
|
|
Author: Peter Fox <tt><<htmlurl url="mailto:fox@roestock.demon.co.uk"
|
|
name="fox@roestock.demon.co.uk">></tt>
|
|
|
|
Source: <url url="http://www.roestock.demon.co.uk/isapnptools/isapnpfaq.html">
|
|
|
|
If you have problems configuring your ISA PnP card, then this is your book
|
|
of wisdom.
|
|
|
|
</descrip>
|
|
|
|
<sect1>Sources<label id="sources"><p>
|
|
|
|
<descrip>
|
|
|
|
<tag><tt>isapnptools</tt></tag>
|
|
|
|
Author: Peter Fox <tt><<htmlurl url="mailto:fox@roestock.demon.co.uk"
|
|
name="fox@roestock.demon.co.uk">></tt>
|
|
|
|
Last Version: 1.11
|
|
|
|
Source: <url url="http://www.roestock.demon.co.uk/isapnptools/index.html">
|
|
|
|
If mailing patches, bug reports or comments, please put 'isapnp'
|
|
somewhere in the subject line, and mail to isapnp@roestock.demon.co.uk.
|
|
|
|
<tag><tt>awedrv</tt></tag>
|
|
|
|
Author: Takashi Iwai <tt><<htmlurl url="mailto:iwai@dragon.mm.t.u-tokyo.ac.jp"
|
|
name="iwai@dragon.mm.t.u-tokyo.ac.jp">></tt>
|
|
|
|
Last Version: 0.4.2c
|
|
|
|
Source: <url url="http://bahamut.mm.t.u-tokyo.ac.jp/~iwai/awedrv/">
|
|
|
|
<tag>Linux kernel</tag>
|
|
|
|
Author: Linus Torvald and many other
|
|
|
|
Last Version: At the moment, you should use 2.0.29
|
|
|
|
Source: everywhere, where you can obtain Linux <tt>:)</tt>
|
|
|
|
<tag>OSS/Free</tag>
|
|
Author: Hannu Savolainen (Please check <url url="http://www.4front-tech.com/usslite before mailing
|
|
me">).
|
|
|
|
Last Version: I have 3.5.5-beta1
|
|
|
|
Source: with the Linux kernel source package
|
|
|
|
Information: <url url="http://www.4front-tech.com/usslite"> or <url
|
|
url="http://personal.eunet.fi/pp/voxware" name="European mirror">.
|
|
|
|
</descrip>
|
|
|
|
<sect1>Sample <tt>isapnp.conf</tt><label id="isapnpconf"><p>
|
|
|
|
In the ISA PnP configuration file created by pnpdump, the single devices of
|
|
your PnP cards appear as sections. In the output below, one card was
|
|
detected (the sound card), with four logical devices:
|
|
|
|
<itemize>
|
|
<item><tt>LD 0</tt>: Audio Device
|
|
<item><tt>LD 1</tt>: IDE Device
|
|
<item><tt>LD 2</tt>: WaveTable Device
|
|
<item><tt>LD 3</tt>: Gameport Device
|
|
</itemize>
|
|
|
|
I left <tt>LD 1</tt> unconfigured, because I have no CD ROM attached to my sound card
|
|
IDE port. If you have no IDE port on your SB, then <tt>LD 1</tt> will be the Gameport
|
|
Device and <tt>LD 3</tt> will not appear.
|
|
|
|
Please refer to section <ref id="isapnp" name="Getting started"> for further
|
|
(important!) information about this file.
|
|
|
|
<code>
|
|
# $Id$
|
|
# This is free software, see the sources for details.
|
|
# This software has NO WARRANTY, use at your OWN RISK
|
|
#
|
|
# For details of this file format, see isapnp.conf(5)
|
|
#
|
|
# For latest information on isapnp and pnpdump see:
|
|
# http://www.roestock.demon.co.uk/isapnptools/
|
|
#
|
|
# Compiler flags: -DREALTIME -DNEEDSETSCHEDULER
|
|
|
|
(READPORT 0x0203)
|
|
(ISOLATE)
|
|
(IDENTIFY *)
|
|
|
|
# Try the following if you get error messages like
|
|
# Error occurred executing request 'LD 2' on or around line...
|
|
|
|
#(VERIFYLD N)
|
|
|
|
# ANSI string -->Creative SB32 PnP<--
|
|
|
|
(CONFIGURE CTL0048/58128 (LD 0
|
|
# ANSI string -->Audio<--
|
|
|
|
(INT 0 (IRQ 5 (MODE +E)))
|
|
(DMA 0 (CHANNEL 1))
|
|
(DMA 1 (CHANNEL 5))
|
|
(IO 0 (BASE 0x0220))
|
|
(IO 1 (BASE 0x0330))
|
|
(IO 2 (BASE 0x0388))
|
|
|
|
(ACT Y)
|
|
))
|
|
|
|
(CONFIGURE CTL0048/58128 (LD 1
|
|
# ANSI string -->IDE<--
|
|
|
|
# (INT 0 (IRQ 10 (MODE +E)))
|
|
# (IO 0 (BASE 0x0168))
|
|
# (IO 1 (BASE 0x036e))
|
|
|
|
# (ACT Y)
|
|
))
|
|
|
|
(CONFIGURE CTL0048/58128 (LD 2
|
|
# ANSI string -->WaveTable<--
|
|
|
|
(IO 0 (BASE 0x0620))
|
|
(IO 1 (BASE 0x0A20))
|
|
(IO 2 (BASE 0x0E20))
|
|
|
|
(ACT Y)
|
|
))
|
|
|
|
(CONFIGURE CTL0048/58128 (LD 3
|
|
# ANSI string -->Game<--
|
|
|
|
(IO 0 (BASE 0x0200))
|
|
(ACT Y)
|
|
))
|
|
|
|
# Returns all cards to the "Wait for Key" state
|
|
(WAITFORKEY)
|
|
</code>
|
|
|
|
</article>
|