home *** CD-ROM | disk | FTP | other *** search
- Sound Driver version 2.4 for Linux
- ----------------------------------
-
- NOTE! The sound driver is now a part of the Linux kernel distribution.
- Check that your kernel doesn't have more recent version than this
- when installing a separately distributed sound driver. The
- version number of this driver is defined in the makefile.
-
- Installation
- ------------
-
- - Since this driver is a part of the Linux kernel distribution, no
- special steps are required to build the driver itself.
-
- - In case you are installing a separately distributed sound driver,
- you have to do some additional steps.
- - Remove all files from the linux/drivers/sound. Old files could
- sometimes cause trouble.
- - cd linux/drivers.
- - gunzip -c snd-driv-X.Y.tar.gz|tar xvf -
- - cd ./sound
- - cp soundcard.h ultrasound.h /usr/include/linux
-
- - To build the device files for this driver, you need to run the enclosed
- shell script (at the end of this file).
-
- - Create /usr/include/sys/soundcard.h whic contains just a line:
- #include <linux/soundcard.h>
-
- - Create /usr/include/sys/ultrasound.h whic contains just a line:
- #include <linux/ultrasound.h>
-
- Boot time configuration (using lilo)
- ------------------------------------
-
- This version of the sound driver has capability to accept the configuration
- parameters from the boot loader (for example lilo). By default the
- driver is booted using the parameters given before compiling the driver
- ('make config' or 'make soundconf'). If the kernel is booted using lilo and
- the boot command is given manually, it's possible to give the configuration
- parameters on the command line. Just hold down the <Alt> key when lilo
- starts. Then give the boot command manually and append a sound= argument
- to the boot command line. For example:
-
- lilo boot: linux sound=0x222071,0x138800
-
- The sound= argument could contain several configuration entries separated by a
- comma. Each option gives the configuration for one sound device.
- Give the options in the order given below. Other order of use is undefined.
- Each option is encoded as the following:
-
- 0xTaaaId, where
- || ||
- || |+---- d = DMA channel (0, 1, 3, 5, 6 or 7)
- || +----- I = IRQ (HEXADECIMAL!!! 1=1, ..., 9=9, 10=a, ..., 15=f)
- |+-------- aaa = I/O address (hexadecimal)
- +---------- T = device type 1=FM Synth (YM3812 or OPL3)
- 2=SoundBlaster (1.0 to 2.0, Pro, 16)
- 3=ProAudioSpectrum16
- 4=Gravis UltraSound
- 5=MPU-401 UART midi
- 6=SB16 (16 bit DMA number)
- 7=SB16 Midi (MPU-401 emulation)
-
- These are the configuration templates for various soundcards:
-
- 0) Disable the sound driver
-
- sound=0
-
- 1) AdLib
-
- sound=0x138800
-
- 2) SoundBlaster family and compatibles
-
- sound=0x2220Id,0x138800 (remember to set the IRQ and DMA)
- or if you have SB16 or SB16ASP, you have to use the following:
- (use the same IRQ (the I colums) in all three places. The
- the D is the 16 bit DMA channel (5 to 7) and the d is
- the 8 bit one (1 or 3). The X is the 2nd digit of the
- midi IO address (3 or 0)).
- sound=0x2220Id,0x6220ID,0x73X0I0,0x138800
-
- 3) ProAudioSpectrum16, ProAudioStudio16, Logitech Soundman16 etc.
-
- sound=0x3388Id,0x2220Id,0x138800 (set the DMAs and IRQs)
-
- 4) Gravis UltraSound
-
- sound=0x42X0Id (X is 1, 2, 3 or 4. Set the DMA and IRQ)
-
- 5) MPU-401
-
- sound=0x5aaaI0
-
- If you have more than one soundcards, you have to concatenate the options
- for each of the cards. There cannot be more than one sound= argument in the
- command line. For example use "sound=0x5aaaI0,0x138800" if you have AdLib
- and MPU-401 on your system.
- If there are two or more sound= arguments
- in the boot command line, just the last one takes effect. The earlier ones
- will be ignored silently.
-
- The boot time configuration feature is intended mainly for distributors of
- precompiled kernels. When this feature is used, drivers for all of the
- cards have to be enabled before compiling the driver. The configurator program
- doesn't enable MPU-401 when the full driver option is selected. It must be
- enabled by uncommenting "#define EXCLUDE_MPU401" in the sound/local.h.
-
- Important note!
-
- The sound driver is enabled by default. If the kernel is booted without
- using the sound=0 option, the sound driver is initialized using the compile
- time parameters. This could be dangerous (specially if the MPU-401 driver
- is enabled with I/O address 0x330 (used by AHA-1542 also)). If you want to
- compile the driver to be inactive by default, you have to append a
- #define SND_DEFAULT_ENABLE 0
- to the sound/local.h before compiling the driver.
-
- Remember to check that the sound setup routine is included in the
- bootparams structure in linux/init/main.c. It should contain the following
- lines:
-
- #ifdef CONFIG_SOUND
- { "sound=", sound_setup },
- #endif
-
- In case these lines were not there, you have to insert them (the driver works
- without them but it's not possible to give the boot time parameters for the
- sound driver). Add also the following line somewhere near the beginning of
- linux/init/main.c:
-
- extern void sound_setup(char *str, int *ints);
-
- Problems
- --------
-
- If you have any kind of problems, there is a debugging feature which
- could help you to solve the problem. To use it, just execute the
- command:
-
- cat /dev/sndstat
-
- and look at the output. It should display some usefull info about the
- driver configuration. If there is no /dev/sndstat
- (/dev/sndstat: No such file or directory), ensure that you have executed the
- soundinstall script (at the end of this file). The message:
- /dev/dsp: No such device means that you don't have the sound driver installed
- on your kernel or the driver version is earlier than 1.99.6.
-
-
- - /dev/???????: No such file or directory.
- Run the script at the end of this file.
-
- - /dev/???????: No such device.
- You have not booted with a kernel containing the driver or the I/O address
- configuration doesn't match your hardaware.
-
- - The module player (str) plays just a second and then stops completely.
- You have incorrect IRQ settings (usual with SB cards).
-
- - There is pauses in the playback of the module player (str).
- The str program requires more than 40% of the speed of a 486/50 to play
- without pauses at 44 kHz speed. A 386/25 can hardly play faster than 22 kHz.
- You should use lower speed (-s speed), buy a faster computer or a Gravis
- UltraSound card. (If you already have GUS, you should use gmod and not the
- str). If the DSP_BUFFSIZE in the sound/local.h is less than (nr_channels*
- speed_in_Hz * (bits/8))/2, it could explain the pausing problem. Also check
- that the turbo swich is on and don't run applications like weather forecasting
- on background. Sometimes (very rarely) an IRQ conflict can cause similar
- problems with SB cards.
- If you want to play modules on a 386sx while recompiling the world, buy a GUS.
- It runs without burning your CPU.
-
- Hannu Savolainen
- hsavolai@cs.helsinki.fi
-
- ----------------- cut here ------------------------------
- #!/bin/sh
- #
- # soudinstall
- #
- # by Craig Metz - cmetz@thor.tjhsst.edu
- #
- # Create the devices
- #
- # Mixer (14, 0)
- #
- if [ -e /dev/mixer ]; then
- rm -f /dev/mixer
- fi
- mknod -m 666 /dev/mixer c 14 0
-
- if [ -e /dev/mixer1 ]; then
- rm -f /dev/mixer1
- fi
- mknod -m 666 /dev/mixer1 c 14 16
- #
- # Sequencer (14, 1)
- #
- if [ -e /dev/sequencer ]; then
- rm -f /dev/sequencer
- fi
- mknod -m 666 /dev/sequencer c 14 1
- #
- # MIDI (14, 2) [ Not implemented ]
- #
- if [ -e /dev/midi ]; then
- rm -f /dev/midi
- fi
- mknod -m 666 /dev/midi c 14 2
- #
- # DSP (14, 3)
- #
- if [ -e /dev/dsp ]; then
- rm -f /dev/dsp
- fi
- mknod -m 666 /dev/dsp c 14 3
- #
- # SPARC audio (14, 4) [ Not fully implemented ]
- #
- if [ -e /dev/audio ]; then
- rm -f /dev/audio
- fi
- mknod -m 666 /dev/audio c 14 4
- #
- # DSP2 (14, 19) /dev/dsp for the second soundcard.
- # Also the SB emulation part of the
- # PAS16 card.
- #
- if [ -e /dev/dsp1 ]; then
- rm -f /dev/dsp1
- fi
- mknod -m 666 /dev/dsp1 c 14 19
- #
- # SPARC audio1 (14, 20) [ Not fully implemented ]
- # /dev/audio for the second soundcard.
- # Also the SB emulation part of the
- # PAS16 card.
- #
- if [ -e /dev/audio1 ]; then
- rm -f /dev/audio1
- fi
- mknod -m 666 /dev/audio1 c 14 20
- #
- # /dev/sndstat (14,6) For debugging purposes
- #
- if [ -e /dev/sndstat ]; then
- rm -f /dev/sndstat
- fi
- mknod -m 666 /dev/sndstat c 14 6
- exit 0
-