📚 LinuxDocs
Topics:
All Pages8021X HOWTOACP ModemACPI HOWTOADSL Bandwidth Man..ATA RAID HOWTOATM Linux HOWTOAX25 HOWTOAccessibility Dev ..Accessibility HOWTOAdv Bash Scr HOWTOAdv Routing HOWTOAntares RAID sparc..Apache Compile HOWTOApache WebDAV LDAP..Assembly HOWTOAstronomy HOWTOAthlon Powersaving..Authentication Gat..Autodir HOWTOAviation HOWTOAvr Microcontrolle..BRIDGE STP HOWTOBTTVBackspaceDeleteBandwidth Limiting..Bangla HOWTOBash Prompt HOWTOBattery PoweredBelarusian HOWTOBelgian HOWTOBeowulf HOWTOBocaBogoMipsBootdisk HOWTOBridgeC++ dlopenC C++Beautifier HO..C editing with VIM..CDROM HOWTOCDServer HOWTOCable ModemCaudium HOWTOClone HOWTOCompaq Remote Insi..Compaq T1500 HOWTOConexant+Rockwell ..Cryptoloop HOWTODB2 HOWTODHCPDSL HOWTODVD Playback HOWTODebian Binary Pack..Debian JigdoDebian and Windows..Disk Encryption HO..Disk on Chip HOWTODocBook Demystific..DocBook InstallDocBook OpenJade S..Ecology HOWTOEmacspeak HOWTOEncourage Women Li..Encrypted Root Fil..Euro Char SupportEvent HOWTOFedora Multimedia ..Finnish HOWTOFirewall PiercingFlash Memory HOWTOFont HOWTOFramebuffer HOWTOGCC HOWTOGIS GRASSGlibc Install HOWTOHOWTO HOWTOHOWTO INDEXHP HOWTOHandspring VisorHard Disk UpgradeHardware HOWTOHighQuality Apps H..Home Electrical Co..IBM7248 HOWTOIO Perf HOWTOIP AliasIP Masquerade HOWTOIRCImplement Sys Call..Indic Fonts HOWTOInfrared HOWTOIngresII HOWTOInstall StrategiesInstallation HOWTOInstallfest HOWTOIntkeybItalian HOWTOJabber Server Farm..JavaStation HOWTOKerberos Infrastru..Kernel HOWTOKerneldKodak Digitalcam H..LDAP HOWTOLDP Reviewer HOWTOLILO crash rescue ..LVM HOWTOLeased LineLegoLinksys Blue Box R..Linux+Win95Linux+Win9x+Grub H..Linux+Windows HOWTOLinux Complete Bac..Linux Crash HOWTOLinux Gamers HOWTOLinux Modem SharingLinux Promise RAID..Linux i386 Boot Co..LinuxGL QuakeWorld..Lotus DominoR5MILO HOWTOMMBase Inst HOWTOMP3 CD BurningMail User HOWTOMajordomo MajorCoo..Man PageMasquerading Simpl..Medicine HOWTOMindTerm SSH HOWTOMobile IPv6 HOWTOMock MainframeModule HOWTOModulesMotorola Surfboard..Mozilla OptimizationMulti Distro DevNCURSES Programmin..NFS HOWTONFS Root Client mi..NIS HOWTONetMeeting HOWTONetwork boot HOWTONvidia OpenGL Conf..OLSR IPv6 HOWTOOnline Troubleshoo..Oracle 9i Fedora 3..PA RISC Linux Boot..PCTel MicroModem C..PHP Nuke HOWTOPPP HOWTOPagerPalmOS HOWTOPartitionPartition Mass Sto..Partition Mass Sto..Partition RescuePine ExchangePortSlavePost Installation ..Postfix Cyrus Web ..Pre Installation C..Print2WinPrinting HOWTOProcess AccountingProgram Library HO..Proxy ARP SubnetQmail ClamAV HOWTOQmail VMailMgr Cou..Querying libiptc H..RPM HOWTOReading List HOWTORedHat CD HOWTOReliance HOWTORemote BridgingRemote Serial Cons..SCSI 2.4 HOWTOSCSI Generic HOWTOSLIP PPP EmulatorSRM HOWTOSSL Certificates H..Scanner HOWTOScientific Computi..Scripting GUI TclTkSecure CVS PserverSecure Programs HO..Security HOWTOSecurity Quickstar..Security Quickstar..Serial Laplink HOWTOSerial Programming..Slovak HOWTOSmall MemorySmart Card HOWTOSoftware Proj Mgmt..Software Release P..Sound HOWTOSpam Filtering for..Speech Recognition..SquashFS HOWTOSybase ASA HOWTOSybase ASE HOWTOSybase PHP ApacheTCP Keepalive HOWTOTamil Linux HOWTOTimePrecision HOWTOTimeSys Linux Inst..Token RingTraffic Control HO..Traffic Control tc..UPS HOWTOUnix Hardware Buye..Unix and Internet ..UpgradeUsenet News HOWTOUser Authenticatio..VB6 to TclVMS to Linux HOWTOVPN HOWTOValgrind HOWTOVideoLAN HOWTOVim HOWTOVirtual WebWebcam HOWTOWikiText HOWTOWindows Newsreader..Wireless Link sys ..Wireless Sync HOWTOXDM XtermXDMCP HOWTOXFree Local multi ..XFree86 HOWTOXFree86 R200XFree86 Second MouseXFree86 Video Timi..XML RPC HOWTOXWindow Overview H..XWindow User HOWTOXinerama HOWTOXterminalsHtml singleI810 HOWTOLibdc1394 HOWTOOpenMosix HOWTOPhhttpd HOWTOPpp sshText
Next Previous Contents

3. How to install SB AWE sound support

3.1 Things you will need

These are the requirements for SB AWE support under Linux: .:: cloud.anylogic.com ::.

If you have a PnP card, you will also need:

Look in section 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 kernel-source-<version>, awe-drv and perhaps the package isapnptools. You will want some of the other awe-* packages although they are not essential. I strongly recommend the kernel-package for easy kernel compiling and installing.

3.2 Getting started

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 isapnptools (or just use the Debian binary package), and make a .:: emerge.penzu.com ::.

# pnpdump > /etc/isapnp.conf

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 resources in the device manager). If you have problems, read the documentation that ships with the isapnptools carefully.

CAUTION: isapnptools often fails to detect all three I/O ports of the SB AWE Wave Table device. Please check carefully the WaveTable entry in your isapnp.conf against the example at the end of this HOWTO. Adjust the I/O base addresses if necessary. .:: rysowanie.phorum.pl ::.

CAUTION: According to the isapnp-faq, sometimes isapnp fails to program the number of the logical device. If you encounter error messages like the following:

Error occurred executing request 'LD 2' on or around line...

then try adding (VERIFYLD N) at the top of 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 isapnp-faq for more information on this approach. If it doesn't work for you, please contact me (and the isapnp people will be interested, too, I would think).

CAUTION: Make sure that the last line is (WAITFORKEY), that will sometimes be omitted by older versions of pnpdump.

A sample isapnp.conf for only one PnP card (the sound card) can be found at the end of the document (see section .:: podcasts.apple.com ::. Sample <tt>isapnp.conf</tt>).

If you have a Debian system, no further adjustments are necessary. isapnp will be started at boot time in /etc/init.d/boot with this snippet of script code, that you may want to include in your boot scripts:


# 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

where /etc/init.d/isapnp is
#! /bin/sh
# /etc/init.d/isapnp: configure Plug and Play boards
test -x /sbin/isapnp || exit 0
/sbin/isapnp /etc/isapnp.conf
exit 0

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 before the modules will be loaded (see below).

3.3 Compiling the kernel

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 .:: lms.ait.edu.za ::. awedrv extension (check /drivers/sound/lowlevel/ for that), you may want to upgrade the awedrv software. Follow the installation instructions in the 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 drivers/sound/lowlevel/awe_wav.c 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 (/usr/src/linux for example), and do

# make config

or make menuconfig or make xconfig. 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 Enable loadable module support with Y, if you want to install the sound driver as a loadable module (a 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 [GitHub: Load balancing] Y or with M if you have not a PnP card. You must answer with 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 Y, all other with N:


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/?]

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 [Web Specs: VPN] 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 SBC_IRQ and SB_MPU_BASE seem to be incorrect for most cards).


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]

Now recompile the kernel. Debian users should use the kernel-package. This package makes the kernel compile as easy as installing a debian package. Look at the documentation in /usr/doc/kernel-package/. Here is a hint:

# make-kpkg clean
# make-kpkg -revision custom.1.0 kernel_image

and then dpkg -i /usr/src/kernel-image-2.0.29_custom.1.0_i386.deb.

If you have another Linux distribution, follow the standard way for compiling a new kernel. Don't forget make modules and make modules_install. Look at the Sound HOWTO and perhaps the Kernel HOWTO for more information.

3.4 Reboot

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:

# /sbin/isapnp /etc/isapnp.conf
Board 1 has Identity 74 00 00 e3 10 48 00 8c 0e:  CTL0048 Serial No 58128
[checksum 74]

Now you can install the sound driver, if you have compiled it as a module:

# modprobe -a sound
AWE32 Sound Driver v0.3.3e (DRAM 2048k)

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 awedrv software or to specify the amount of memory in the file /usr/src/linux/drivers/sound/lowlevel/awe_config.h, for example:

#define AWE_DEFAULT_MEM_SIZE  4096   /* kbytes */

Sorry, you have to recompile the kernel then (perhaps compiling the modules will be sufficient, but I don't know for sure). .:: www.yk-braves.com ::.

If it works, you may want to have the sound module loaded automatically. You can use kerneld (why this is a bad idea is explained in section 1.4) or append a single line containing .:: www.arriba420.com ::. sound to your /etc/modules (in Debian) or add /sbin/modprobe -a sound to your start-up script.


Next Previous Contents

Share or Research:

Share on FB Post to X LinkedIn 🤖 Ask AI about this