4 IMPORTANT! Read this if you are installing a separately
5 distributed version of this driver.
6 Check that your kernel version works with this
7 release of the driver (see Readme). Also verify
8 that your current kernel version doesn't have more
9 recent sound driver version than this one.
11 - Since you are reading this, you have already installed the files so
12 let's skip this step. To be serious, the sound driver belongs
13 to linux/drivers/sound.
15 - To build the device files you need to run the enclosed shell scrip
18 - If you are installing a separately distributed version, copy the
19 soundcard.h to /usr/include/linux. It may contain some new stuff.
21 - Copy the sound/ultrasound.h to /usr/include/sys
22 (Remove the old one from /usr/include/sys /usr/include/linux first).
24 - Ensure you have the following symlink:
25 ln -s /usr/include/linux/soundcard.h /usr/include/sys/soundcard.h
27 - Configure and compile Linux as normally (remember to include the
28 sound support during "make config").
30 Boot time configuration (using lilo and insmod)
31 -----------------------------------------------
33 NOTE! This information is little bit obsolete since it doesn't cover
34 some cards recently added to the driver. The following text
35 describes parameters just for some older cards. In addition
36 this method will not work with cards which have more than one
37 DMA channel or if the driver number is bigger than 15. (Driver
38 numbers are defined in soundcard.h).
40 -------------------------------------------------------------------
41 NOTE2! This method to configure the sound driver is not normally
42 required. All configuration information is entered when the
43 kernel/driver is compiled. This method just gives a way
44 to override some configuration parameters during boot.
46 So THE METHOD PRESENTED IN THIS CHAPTER IS NORMALLY COMPLETELY
47 USELESS. DON'T USE IT UNLESS YOU HAVE A VERY SPECIAL REASON TO
50 !!!!!!!!!!!!!!!!!!!! PLEASE NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!
51 !!! Finding a working sound= command line is a difficult !!!
52 !!! and timeconsuming task. For this reason I will not !!!
53 !!! answer to messages asking about how to do it. So !!!
54 !!! please don't use this method if you have any problems !!!
56 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
58 -------------------------------------------------------------------
60 This version of the sound driver has capability to accept the configuration
61 parameters from the boot loader (for example lilo). By default the
62 driver is booted using the parameters given before compiling the driver
63 ('make config' or 'make soundconf'). If the kernel is booted using lilo and
64 the boot command is given manually, it's possible to give the configuration
65 parameters on the command line. Just hold down the <Alt> key when lilo
66 starts. Then give the boot command manually and append a sound= argument
67 to the boot command line. For example:
69 lilo boot: linux sound=0x222071,0x138800
71 The sound= argument could contain several configuration entries separated by a
72 comma. Each option gives the configuration for one sound device.
73 Give the options in the order given below. Other order of use is undefined.
74 Each option is encoded as the following:
78 || |+---- d = DMA channel (0, 1, 3, 5, 6 or 7)
79 || +----- I = IRQ (HEXADECIMAL!!! 1=1, ..., 9=9, 10=a, ..., 15=f)
80 |+-------- aaa = I/O address (hexadecimal)
81 +---------- T = device type 1=FM Synth (YM3812 or OPL3)
82 2=SoundBlaster (1.0 to 2.0, Pro, 16)
86 6=SB16 (16 bit DMA number)
87 7=SB16 Midi (MPU-401 emulation)
88 (There are some new ones also but they are currently
89 not documented. The card numbers are in soundcard.h).
91 These are the configuration templates for various soundcards:
93 0) Disable the sound driver
101 2) SoundBlaster family and compatibles
103 sound=0x2220Id,0x138800 (remember to set the IRQ and DMA)
104 or if you have SB16 or SB16ASP, you have to use the following:
105 (use the same IRQ (the I colums) in all three places. The
106 the D is the 16 bit DMA channel (5 to 7) and the d is
107 the 8 bit one (1 or 3). The X is the 2nd digit of the
108 midi IO address (3 or 0)).
109 sound=0x2220Id,0x6220ID,0x73X0I0,0x138800
111 3) ProAudioSpectrum16, ProAudioStudio16, Logitech Soundman16 etc.
113 sound=0x3388Id,0x2220Id,0x138800 (set the DMAs and IRQs)
117 sound=0x42X0Id (X is 1, 2, 3 or 4. Set the DMA and IRQ)
123 If you have more than one soundcards, you have to concatenate the options
124 for each of the cards. There cannot be more than one sound= argument in the
125 command line. For example use "sound=0x5aaaI0,0x138800" if you have AdLib
126 and MPU-401 on your system.
127 If there are two or more sound= arguments
128 in the boot command line, just the last one takes effect. The earlier ones
129 will be ignored silently.
131 The boot time configuration feature is intended mainly for distributors of
132 precompiled kernels. When this feature is used, drivers for all of the
133 cards have to be enabled before compiling the driver. The configurator program
134 doesn't enable MPU-401 when the full driver option is selected. It must be
135 enabled by uncommenting "#define EXCLUDE_MPU401" in the sound/local.h.
139 The sound driver is enabled by default. If the kernel is booted without
140 using the sound=0 option, the sound driver is initialized using the compile
141 time parameters. This could be dangerous (specially if the MPU-401 driver
142 is enabled with I/O address 0x330 (used by AHA-1542 also)). If you want to
143 compile the driver to be inactive by default, you have to append a
144 #define SND_DEFAULT_ENABLE 0
145 to the sound/local.h before compiling the driver.
147 Remember to check that the sound setup routine is included in the
148 bootparams structure in linux/init/main.c. It should contain the following
152 { "sound=", sound_setup },
155 In case these lines were not there, you have to insert them (the driver works
156 without them but it's not possible to give the boot time parameters for the
157 sound driver). Add also the following line somewhere near the beginning of
160 extern void sound_setup(char *str, int *ints);
165 If you have any kind of problems, there is a debugging feature which
166 could help you to solve the problem. To use it, just execute the
171 and look at the output. It should display some usefull info about the
172 driver configuration. If there is no /dev/sndstat
173 (/dev/sndstat: No such file or directory), ensure that you have executed the
174 soundinstall script (at the end of this file). The message:
175 /dev/dsp: No such device means that you don't have the sound driver installed
176 on your kernel or the driver version is earlier than 1.99.6.
179 - /dev/???????: No such file or directory.
180 Run the script at the end of this file.
182 - /dev/???????: No such device.
183 You have not booted with a kernel containing the driver or the I/O address
184 configuration doesn't match your hardaware.
186 - The module player (str) plays just a second and then stops completely.
187 You have incorrect IRQ settings (usual with SB cards).
189 - There is pauses in the playback of the module player (str).
190 The str program requires more than 40% of the speed of a 486/50 to play
191 without pauses at 44 kHz speed. A 386/25 can hardly play faster than 22 kHz.
192 You should use lower speed (-s speed), buy a faster computer or a Gravis
193 UltraSound card. (If you already have GUS, you should use gmod and not the
194 str). If the DSP_BUFFSIZE in the sound/local.h is less than (nr_channels*
195 speed_in_Hz * (bits/8))/2, it could explain the pausing problem. Also check
196 that the turbo swich is on and don't run applications like weather forecasting
197 on background. Sometimes (very rarely) an IRQ conflict can cause similar
198 problems with SB cards.
199 If you want to play modules on a 386sx while recompiling the world, buy a GUS.
200 It runs without burning your CPU.
205 ----------------- cut here ------------------------------
215 if [ -e /dev/mixer ]; then
219 mknod -m 666 /dev/mixer c 14 0
220 if [ -e /dev/mixer1 ]; then
223 mknod -m 666 /dev/mixer1 c 14 16
228 if [ -e /dev/sequencer ]; then
231 mknod -m 666 /dev/sequencer c 14 1
233 if [ -e /dev/patmgr0 ]; then
236 mknod -m 666 /dev/patmgr0 c 14 17
237 if [ -e /dev/patmgr1 ]; then
240 mknod -m 666 /dev/patmgr1 c 14 33
244 if [ -e /dev/music ]; then
248 mknod -m 666 /dev/music c 14 8
249 if [ -e /dev/sequencer2 ]; then
250 rm -f /dev/sequencer2
252 ln -s /dev/music /dev/sequencer2
256 if [ -e /dev/midi ]; then
257 rm -f /dev/midi # Old name. Don't use it
259 if [ -e /dev/midi00 ]; then
262 mknod -m 666 /dev/midi00 c 14 2
264 if [ -e /dev/midi01 ]; then
267 mknod -m 666 /dev/midi01 c 14 18
269 if [ -e /dev/midi02 ]; then
272 mknod -m 666 /dev/midi02 c 14 34
274 if [ -e /dev/midi03 ]; then
277 mknod -m 666 /dev/midi03 c 14 50
281 if [ -e /dev/dsp ]; then
284 if [ -e /dev/dsp0 ]; then
287 mknod -m 666 /dev/dsp0 c 14 3
288 ln -s /dev/dsp0 /dev/dsp
291 # SPARC compatible /dev/audio (14, 4)
293 if [ -e /dev/audio ]; then
296 if [ -e /dev/audio0 ]; then
299 mknod -m 666 /dev/audio0 c 14 4
300 ln -s /dev/audio0 /dev/audio
303 # DSP1 (14, 19) /dev/dsp for the second soundcard.
304 # Also the SB emulation part of the
307 if [ -e /dev/dsp1 ]; then
310 mknod -m 666 /dev/dsp1 c 14 19
312 # SPARC audio1 (14, 20)
313 # /dev/audio for the second soundcard.
314 # Also the SB emulation part of the
317 if [ -e /dev/audio1 ]; then
320 mknod -m 666 /dev/audio1 c 14 20
322 # /dev/sndstat (14,6) For debugging purposes
324 if [ -e /dev/sndstat ]; then
327 mknod -m 666 /dev/sndstat c 14 6