Based on kernel version 3.19. Page generated on 2015-02-13 21:22 EST.
1 Introduction 2 ------------ 3 4 This file is a collection of all the old Readme files distributed with 5 OSS/Lite by Hannu Savolainen. Since the new Linux sound driver is founded 6 on it I think these information may still be interesting for users that 7 have to configure their sound system. 8 9 Be warned: Alan Cox is the current maintainer of the Linux sound driver so if 10 you have problems with it, please contact him or the current device-specific 11 driver maintainer (e.g. for aedsp16 specific problems contact me). If you have 12 patches, contributions or suggestions send them to Alan: I'm sure they are 13 welcome. 14 15 In this document you will find a lot of references about OSS/Lite or ossfree: 16 they are gone forever. Keeping this in mind and with a grain of salt this 17 document can be still interesting and very helpful. 18 19 [ File edited 17.01.1999 - Riccardo Facchetti ] 20 [ Edited miroSOUND section 19.04.2001 - Robert Siemer ] 21 22 OSS/Free version 3.8 release notes 23 ---------------------------------- 24 25 Please read the SOUND-HOWTO (available from sunsite.unc.edu and other Linux FTP 26 sites). It gives instructions about using sound with Linux. It's bit out of 27 date but still very useful. Information about bug fixes and such things 28 is available from the web page (see above). 29 30 Please check http://www.opensound.com/pguide for more info about programming 31 with OSS API. 32 33 ==================================================== 34 - THIS VERSION ____REQUIRES____ Linux 2.1.57 OR LATER. 35 ==================================================== 36 37 Packages "snd-util-3.8.tar.gz" and "snd-data-0.1.tar.Z" 38 contain useful utilities to be used with this driver. 39 See http://www.opensound.com/ossfree/ for 40 download instructions. 41 42 If you are looking for the installation instructions, please 43 look forward into this document. 44 45 Supported sound cards 46 --------------------- 47 48 See below. 49 50 Contributors 51 ------------ 52 53 This driver contains code by several contributors. In addition several other 54 persons have given useful suggestions. The following is a list of major 55 contributors. (I could have forgotten some names.) 56 57 Craig Metz 1/2 of the PAS16 Mixer and PCM support 58 Rob Hooft Volume computation algorithm for the FM synth. 59 Mika Liljeberg uLaw encoding and decoding routines 60 Jeff Tranter Linux SOUND HOWTO document 61 Greg Lee Volume computation algorithm for the GUS and 62 lots of valuable suggestions. 63 Andy Warner ISC port 64 Jim Lowe, 65 Amancio Hasty Jr FreeBSD/NetBSD port 66 Anders Baekgaard Bug hunting and valuable suggestions. 67 Joerg Schubert SB16 DSP support (initial version). 68 Andrew Robinson Improvements to the GUS driver 69 Megens SA MIDI recording for SB and SB Pro (initial version). 70 Mikael Nordqvist Linear volume support for GUS and 71 nonblocking /dev/sequencer. 72 Ian Hartas SVR4.2 port 73 Markus Aroharju and 74 Risto Kankkunen Major contributions to the mixer support 75 of GUS v3.7. 76 Hunyue Yau Mixer support for SG NX Pro. 77 Marc Hoffman PSS support (initial version). 78 Rainer Vranken Initialization for Jazz16 (initial version). 79 Peter Trattler Initial version of loadable module support for Linux. 80 JRA Gibson 16 bit mode for Jazz16 (initial version) 81 Davor Jadrijevic MAD16 support (initial version) 82 Gregor Hoffleit Mozart support (initial version) 83 Riccardo Facchetti Audio Excel DSP 16 (aedsp16) support 84 James Hightower Spotting a tiny but important bug in CS423x support. 85 Denis Sablic OPTi 82C924 specific enhancements (non PnP mode) 86 Tim MacKenzie Full duplex support for OPTi 82C930. 87 88 Please look at lowlevel/README for more contributors. 89 90 There are probably many other names missing. If you have sent me some 91 patches and your name is not in the above list, please inform me. 92 93 Sending your contributions or patches 94 ------------------------------------- 95 96 First of all it's highly recommended to contact me before sending anything 97 or before even starting to do any work. Tell me what you suggest to be 98 changed or what you have planned to do. Also ensure you are using the 99 very latest (development) version of OSS/Free since the change may already be 100 implemented there. In general it's a major waste of time to try to improve a 101 several months old version. Information about the latest version can be found 102 from http://www.opensound.com/ossfree. In general there is no point in 103 sending me patches relative to production kernels. 104 105 Sponsors etc. 106 ------------- 107 108 The following companies have greatly helped development of this driver 109 in form of a free copy of their product: 110 111 Novell, Inc. UnixWare personal edition + SDK 112 The Santa Cruz Operation, Inc. A SCO OpenServer + SDK 113 Ensoniq Corp, a SoundScape card and extensive amount of assistance 114 MediaTrix Peripherals Inc, a AudioTrix Pro card + SDK 115 Acer, Inc. a pair of AcerMagic S23 cards. 116 117 In addition the following companies have provided me sufficient amount 118 of technical information at least some of their products (free or $$$): 119 120 Advanced Gravis Computer Technology Ltd. 121 Media Vision Inc. 122 Analog Devices Inc. 123 Logitech Inc. 124 Aztech Labs Inc. 125 Crystal Semiconductor Corporation, 126 Integrated Circuit Systems Inc. 127 OAK Technology 128 OPTi 129 Turtle Beach 130 miro 131 Ad Lib Inc. ($$) 132 Music Quest Inc. ($$) 133 Creative Labs ($$$) 134 135 If you have some problems 136 ========================= 137 138 Read the sound HOWTO (sunsite.unc.edu:/pub/Linux/docs/...?). 139 Also look at the home page (http://www.opensound.com/ossfree). It may 140 contain info about some recent bug fixes. 141 142 It's likely that you have some problems when trying to use the sound driver 143 first time. Sound cards don't have standard configuration so there are no 144 good default configuration to use. Please try to use same I/O, DMA and IRQ 145 values for the sound card than with DOS. 146 147 If you get an error message when trying to use the driver, please look 148 at /var/adm/messages for more verbose error message. 149 150 151 The following errors are likely with /dev/dsp and /dev/audio. 152 153 - "No such device or address". 154 This error indicates that there are no suitable hardware for the 155 device file or the sound driver has been compiled without support for 156 this particular device. For example /dev/audio and /dev/dsp will not 157 work if "digitized voice support" was not enabled during "make config". 158 159 - "Device or resource busy". Probably the IRQ (or DMA) channel 160 required by the sound card is in use by some other device/driver. 161 162 - "I/O error". Almost certainly (99%) it's an IRQ or DMA conflict. 163 Look at the kernel messages in /var/adm/notice for more info. 164 165 - "Invalid argument". The application is calling ioctl() 166 with impossible parameters. Check that the application is 167 for sound driver version 2.X or later. 168 169 Linux installation 170 ================== 171 172 IMPORTANT! Read this if you are installing a separately 173 distributed version of this driver. 174 175 Check that your kernel version works with this 176 release of the driver (see Readme). Also verify 177 that your current kernel version doesn't have more 178 recent sound driver version than this one. IT'S HIGHLY 179 RECOMMENDED THAT YOU USE THE SOUND DRIVER VERSION THAT 180 IS DISTRIBUTED WITH KERNEL SOURCES. 181 182 - When installing separately distributed sound driver you should first 183 read the above notice. Then try to find proper directory where and how 184 to install the driver sources. You should not try to install a separately 185 distributed driver version if you are not able to find the proper way 186 yourself (in this case use the version that is distributed with kernel 187 sources). Remove old version of linux/drivers/sound directory before 188 installing new files. 189 190 - To build the device files you need to run the enclosed shell script 191 (see below). You need to do this only when installing sound driver 192 first time or when upgrading to much recent version than the earlier 193 one. 194 195 - Configure and compile Linux as normally (remember to include the 196 sound support during "make config"). Please refer to kernel documentation 197 for instructions about configuring and compiling kernel. File Readme.cards 198 contains card specific instructions for configuring this driver for 199 use with various sound cards. 200 201 Boot time configuration (using lilo and insmod) 202 ----------------------------------------------- 203 204 This information has been removed. Too many users didn't believe 205 that it's really not necessary to use this method. Please look at 206 Readme of sound driver version 3.0.1 if you still want to use this method. 207 208 Problems 209 -------- 210 211 Common error messages: 212 213 - /dev/???????: No such file or directory. 214 Run the script at the end of this file. 215 216 - /dev/???????: No such device. 217 You are not running kernel which contains the sound driver. When using 218 modularized sound driver this error means that the sound driver is not 219 loaded. 220 221 - /dev/????: No such device or address. 222 Sound driver didn't detect suitable card when initializing. Please look at 223 Readme.cards for info about configuring the driver with your card. Also 224 check for possible boot (insmod) time error messages in /var/adm/messages. 225 226 - Other messages or problems 227 Please check http://www.opensound.com/ossfree for more info. 228 229 Configuring version 3.8 (for Linux) with some common sound cards 230 ================================================================ 231 232 This document describes configuring sound cards with the freeware version of 233 Open Sound Systems (OSS/Free). Information about the commercial version 234 (OSS/Linux) and its configuration is available from 235 http://www.opensound.com/linux.html. Information presented here is 236 not valid for OSS/Linux. 237 238 If you are unsure about how to configure OSS/Free 239 you can download the free evaluation version of OSS/Linux from the above 240 address. There is a chance that it can autodetect your sound card. In this case 241 you can use the information included in soundon.log when configuring OSS/Free. 242 243 244 IMPORTANT! This document covers only cards that were "known" when 245 this driver version was released. Please look at 246 http://www.opensound.com/ossfree for info about 247 cards introduced recently. 248 249 When configuring the sound driver, you should carefully 250 check each sound configuration option (particularly 251 "Support for /dev/dsp and /dev/audio"). The default values 252 offered by these programs are not necessarily valid. 253 254 255 THE BIGGEST MISTAKES YOU CAN MAKE 256 ================================= 257 258 1. Assuming that the card is Sound Blaster compatible when it's not. 259 -------------------------------------------------------------------- 260 261 The number one mistake is to assume that your card is compatible with 262 Sound Blaster. Only the cards made by Creative Technology or which have 263 one or more chips labeled by Creative are SB compatible. In addition there 264 are few sound chipsets which are SB compatible in Linux such as ESS1688 or 265 Jazz16. Note that SB compatibility in DOS/Windows does _NOT_ mean anything 266 in Linux. 267 268 IF YOU REALLY ARE 150% SURE YOU HAVE A SOUND BLASTER YOU CAN SKIP THE REST OF 269 THIS CHAPTER. 270 271 For most other "supposed to be SB compatible" cards you have to use other 272 than SB drivers (see below). It is possible to get most sound cards to work 273 in SB mode but in general it's a complete waste of time. There are several 274 problems which you will encounter by using SB mode with cards that are not 275 truly SB compatible: 276 277 - The SB emulation is at most SB Pro (DSP version 3.x) which means that 278 you get only 8 bit audio (there is always an another ("native") mode which 279 gives the 16 bit capability). The 8 bit only operation is the reason why 280 many users claim that sound quality in Linux is much worse than in DOS. 281 In addition some applications require 16 bit mode and they produce just 282 noise with a 8 bit only device. 283 - The card may work only in some cases but refuse to work most of the 284 time. The SB compatible mode always requires special initialization which is 285 done by the DOS/Windows drivers. This kind of cards work in Linux after 286 you have warm booted it after DOS but they don't work after cold boot 287 (power on or reset). 288 - You get the famous "DMA timed out" messages. Usually all SB clones have 289 software selectable IRQ and DMA settings. If the (power on default) values 290 currently used by the card don't match configuration of the driver you will 291 get the above error message whenever you try to record or play. There are 292 few other reasons to the DMA timeout message but using the SB mode seems 293 to be the most common cause. 294 295 2. Trying to use a PnP (Plug & Play) card just like an ordinary sound card 296 -------------------------------------------------------------------------- 297 298 Plug & Play is a protocol defined by Intel and Microsoft. It lets operating 299 systems to easily identify and reconfigure I/O ports, IRQs and DMAs of ISA 300 cards. The problem with PnP cards is that the standard Linux doesn't currently 301 (versions 2.1.x and earlier) don't support PnP. This means that you will have 302 to use some special tricks (see later) to get a PnP card alive. Many PnP cards 303 work after they have been initialized but this is not always the case. 304 305 There are sometimes both PnP and non-PnP versions of the same sound card. 306 The non-PnP version is the original model which usually has been discontinued 307 more than an year ago. The PnP version has the same name but with "PnP" 308 appended to it (sometimes not). This causes major confusion since the non-PnP 309 model works with Linux but the PnP one doesn't. 310 311 You should carefully check if "Plug & Play" or "PnP" is mentioned in the name 312 of the card or in the documentation or package that came with the card. 313 Everything described in the rest of this document is not necessarily valid for 314 PnP models of sound cards even you have managed to wake up the card properly. 315 Many PnP cards are simply too different from their non-PnP ancestors which are 316 covered by this document. 317 318 319 Cards that are not (fully) supported by this driver 320 =================================================== 321 322 See http://www.opensound.com/ossfree for information about sound cards 323 to be supported in future. 324 325 326 How to use sound without recompiling kernel and/or sound driver 327 =============================================================== 328 329 There is a commercial sound driver which comes in precompiled form and doesn't 330 require recompiling of the kernel. See http://www.4Front-tech.com/oss.html for 331 more info. 332 333 334 Configuring PnP cards 335 ===================== 336 337 New versions of most sound cards use the so-called ISA PnP protocol for 338 soft configuring their I/O, IRQ, DMA and shared memory resources. 339 Currently at least cards made by Creative Technology (SB32 and SB32AWE 340 PnP), Gravis (GUS PnP and GUS PnP Pro), Ensoniq (Soundscape PnP) and 341 Aztech (some Sound Galaxy models) use PnP technology. The CS4232/4236 audio 342 chip by Crystal Semiconductor (Intel Atlantis, HP Pavilion and many other 343 motherboards) is also based on PnP technology but there is a "native" driver 344 available for it (see information about CS4232 later in this document). 345 346 PnP sound cards (as well as most other PnP ISA cards) are not supported 347 by this version of the driver . Proper 348 support for them should be released during 97 once the kernel level 349 PnP support is available. 350 351 There is a method to get most of the PnP cards to work. The basic method 352 is the following: 353 354 1) Boot DOS so the card's DOS drivers have a chance to initialize it. 355 2) _Cold_ boot to Linux by using "loadlin.exe". Hitting ctrl-alt-del 356 works with older machines but causes a hard reset of all cards on recent 357 (Pentium) machines. 358 3) If you have the sound driver in Linux configured properly, the card should 359 work now. "Proper" means that I/O, IRQ and DMA settings are the same as in 360 DOS. The hard part is to find which settings were used. See the documentation of 361 your card for more info. 362 363 Windows 95 could work as well as DOS but running loadlin may be difficult. 364 Probably you should "shut down" your machine to MS-DOS mode before running it. 365 366 Some machines have a BIOS utility for setting PnP resources. This is a good 367 way to configure some cards. In this case you don't need to boot DOS/Win95 368 before starting Linux. 369 370 Another way to initialize PnP cards without DOS/Win95 is a Linux based 371 PnP isolation tool. When writing this there is a pre alpha test version 372 of such a tool available from ftp://ftp.demon.co.uk/pub/unix/linux/utils. The 373 file is called isapnptools-*. Please note that this tool is just a temporary 374 solution which may be incompatible with future kernel versions having proper 375 support for PnP cards. There are bugs in setting DMA channels in earlier 376 versions of isapnptools so at least version 1.6 is required with sound cards. 377 378 Yet another way to use PnP cards is to use (commercial) OSS/Linux drivers. See 379 http://www.opensound.com/linux.html for more info. This is probably the way you 380 should do it if you don't want to spend time recompiling the kernel and 381 required tools. 382 383 384 Read this before trying to configure the driver 385 =============================================== 386 387 There are currently many cards that work with this driver. Some of the cards 388 have native support while others work since they emulate some other 389 card (usually SB, MSS/WSS and/or MPU401). The following cards have native 390 support in the driver. Detailed instructions for configuring these cards 391 will be given later in this document. 392 393 Pro Audio Spectrum 16 (PAS16) and compatibles: 394 Pro Audio Spectrum 16 395 Pro Audio Studio 16 396 Logitech Sound Man 16 397 NOTE! The original Pro Audio Spectrum as well as the PAS+ are not 398 and will not be supported by the driver. 399 400 Media Vision Jazz16 based cards 401 Pro Sonic 16 402 Logitech SoundMan Wave 403 (Other Jazz based cards should work but I don't have any reports 404 about them). 405 406 Sound Blasters 407 SB 1.0 to 2.0 408 SB Pro 409 SB 16 410 SB32/64/AWE 411 Configure SB32/64/AWE just like SB16. See lowlevel/README.awe 412 for information about using the wave table synth. 413 NOTE! AWE63/Gold and 16/32/AWE "PnP" cards need to be activated 414 using isapnptools before they work with OSS/Free. 415 SB16 compatible cards by other manufacturers than Creative. 416 You have been fooled since there are _no_ SB16 compatible 417 cards on the market (as of May 1997). It's likely that your card 418 is compatible just with SB Pro but there is also a non-SB- 419 compatible 16 bit mode. Usually it's MSS/WSS but it could also 420 be a proprietary one like MV Jazz16 or ESS ES688. OPTi 421 MAD16 chips are very common in so called "SB 16 bit cards" 422 (try with the MAD16 driver). 423 424 ====================================================================== 425 "Supposed to be SB compatible" cards. 426 Forget the SB compatibility and check for other alternatives 427 first. The only cards that work with the SB driver in 428 Linux have been made by Creative Technology (there is at least 429 one chip on the card with "CREATIVE" printed on it). The 430 only other SB compatible chips are ESS and Jazz16 chips 431 (maybe ALSxxx chips too but they probably don't work). 432 Most other "16 bit SB compatible" cards such as "OPTi/MAD16" or 433 "Crystal" are _NOT_ SB compatible in Linux. 434 435 Practically all sound cards have some kind of SB emulation mode 436 in addition to their native (16 bit) mode. In most cases this 437 (8 bit only) SB compatible mode doesn't work with Linux. If 438 you get it working it may cause problems with games and 439 applications which require 16 bit audio. Some 16 bit only 440 applications don't check if the card actually supports 16 bits. 441 They just dump 16 bit data to a 8 bit card which produces just 442 noise. 443 444 In most cases the 16 bit native mode is supported by Linux. 445 Use the SB mode with "clones" only if you don't find anything 446 better from the rest of this doc. 447 ====================================================================== 448 449 Gravis Ultrasound (GUS) 450 GUS 451 GUS + the 16 bit option 452 GUS MAX 453 GUS ACE (No MIDI port and audio recording) 454 GUS PnP (with RAM) 455 456 MPU-401 and compatibles 457 The driver works both with the full (intelligent mode) MPU-401 458 cards (such as MPU IPC-T and MQX-32M) and with the UART only 459 dumb MIDI ports. MPU-401 is currently the most common MIDI 460 interface. Most sound cards are compatible with it. However, 461 don't enable MPU401 mode blindly. Many cards with native support 462 in the driver have their own MPU401 driver. Enabling the standard one 463 will cause a conflict with these cards. So check if your card is 464 in the list of supported cards before enabling MPU401. 465 466 Windows Sound System (MSS/WSS) 467 Even when Microsoft has discontinued their own Sound System card 468 they managed to make it a standard. MSS compatible cards are based on 469 a codec chip which is easily available from at least two manufacturers 470 (AD1848 by Analog Devices and CS4231/CS4248 by Crystal Semiconductor). 471 Currently most sound cards are based on one of the MSS compatible codec 472 chips. The CS4231 is used in the high quality cards such as GUS MAX, 473 MediaTrix AudioTrix Pro and TB Tropez (GUS MAX is not MSS compatible). 474 475 Having a AD1848, CS4248 or CS4231 codec chip on the card is a good 476 sign. Even if the card is not MSS compatible, it could be easy to write 477 support for it. Note also that most MSS compatible cards 478 require special boot time initialization which may not be present 479 in the driver. Also, some MSS compatible cards have native support. 480 Enabling the MSS support with these cards is likely to 481 cause a conflict. So check if your card is listed in this file before 482 enabling the MSS support. 483 484 Yamaha FM synthesizers (OPL2, OPL3 (not OPL3-SA) and OPL4) 485 Most sound cards have a FM synthesizer chip. The OPL2 is a 2 486 operator chip used in the original AdLib card. Currently it's used 487 only in the cheapest (8 bit mono) cards. The OPL3 is a 4 operator 488 FM chip which provides better sound quality and/or more available 489 voices than the OPL2. The OPL4 is a new chip that has an OPL3 and 490 a wave table synthesizer packed onto the same chip. The driver supports 491 just the OPL3 mode directly. Most cards with an OPL4 (like 492 SM Wave and AudioTrix Pro) support the OPL4 mode using MPU401 493 emulation. Writing a native OPL4 support is difficult 494 since Yamaha doesn't give information about their sample ROM chip. 495 496 Enable the generic OPL2/OPL3 FM synthesizer support if your 497 card has a FM chip made by Yamaha. Don't enable it if your card 498 has a software (TRS) based FM emulator. 499 500 ---------------------------------------------------------------- 501 NOTE! OPL3-SA is different chip than the ordinary OPL3. In addition 502 to the FM synth this chip has also digital audio (WSS) and 503 MIDI (MPU401) capabilities. Support for OPL3-SA is described below. 504 ---------------------------------------------------------------- 505 506 Yamaha OPL3-SA1 507 508 Yamaha OPL3-SA1 (YMF701) is an audio controller chip used on some 509 (Intel) motherboards and on cheap sound cards. It should not be 510 confused with the original OPL3 chip (YMF278) which is entirely 511 different chip. OPL3-SA1 has support for MSS, MPU401 and SB Pro 512 (not used in OSS/Free) in addition to the OPL3 FM synth. 513 514 There are also chips called OPL3-SA2, OPL3-SA3, ..., OPL3SA-N. They 515 are PnP chips and will not work with the OPL3-SA1 driver. You should 516 use the standard MSS, MPU401 and OPL3 options with these chips and to 517 activate the card using isapnptools. 518 519 4Front Technologies SoftOSS 520 521 SoftOSS is a software based wave table emulation which works with 522 any 16 bit stereo sound card. Due to its nature a fast CPU is 523 required (P133 is minimum). Although SoftOSS does _not_ use MMX 524 instructions it has proven out that recent processors (which appear 525 to have MMX) perform significantly better with SoftOSS than earlier 526 ones. For example a P166MMX beats a PPro200. SoftOSS should not be used 527 on 486 or 386 machines. 528 529 The amount of CPU load caused by SoftOSS can be controlled by 530 selecting the CONFIG_SOFTOSS_RATE and CONFIG_SOFTOSS_VOICES 531 parameters properly (they will be prompted by make config). It's 532 recommended to set CONFIG_SOFTOSS_VOICES to 32. If you have a 533 P166MMX or faster (PPro200 is not faster) you can set 534 CONFIG_SOFTOSS_RATE to 44100 (kHz). However with slower systems it 535 recommended to use sampling rates around 22050 or even 16000 kHz. 536 Selecting too high values for these parameters may hang your 537 system when playing MIDI files with hight degree of polyphony 538 (number of concurrently playing notes). It's also possible to 539 decrease CONFIG_SOFTOSS_VOICES. This makes it possible to use 540 higher sampling rates. However using fewer voices decreases 541 playback quality more than decreasing the sampling rate. 542 543 SoftOSS keeps the samples loaded on the system's RAM so much RAM is 544 required. SoftOSS should never be used on machines with less than 16 MB 545 of RAM since this is potentially dangerous (you may accidentally run out 546 of memory which probably crashes the machine). 547 548 SoftOSS implements the wave table API originally designed for GUS. For 549 this reason all applications designed for GUS should work (at least 550 after minor modifications). For example gmod/xgmod and playmidi -g are 551 known to work. 552 553 To work SoftOSS will require GUS compatible 554 patch files to be installed on the system (in /dos/ultrasnd/midi). You 555 can use the public domain MIDIA patchset available from several ftp 556 sites. 557 558 ********************************************************************* 559 IMPORTANT NOTICE! The original patch set distributed with the Gravis 560 Ultrasound card is not in public domain (even though it's available from 561 some FTP sites). You should contact Voice Crystal (www.voicecrystal.com) 562 if you like to use these patches with SoftOSS included in OSS/Free. 563 ********************************************************************* 564 565 PSS based cards (AD1848 + ADSP-2115 + Echo ESC614 ASIC) 566 Analog Devices and Echo Speech have together defined a sound card 567 architecture based on the above chips. The DSP chip is used 568 for emulation of SB Pro, FM and General MIDI/MT32. 569 570 There are several cards based on this architecture. The most known 571 ones are Orchid SW32 and Cardinal DSP16. 572 573 The driver supports downloading DSP algorithms to these cards. 574 575 NOTE! You will have to use the "old" config script when configuring 576 PSS cards. 577 578 MediaTrix AudioTrix Pro 579 The ATP card is built around a CS4231 codec and an OPL4 synthesizer 580 chips. The OPL4 mode is supported by a microcontroller running a 581 General MIDI emulator. There is also a SB 1.5 compatible playback mode. 582 583 Ensoniq SoundScape and compatibles 584 Ensoniq has designed a sound card architecture based on the 585 OTTO synthesizer chip used in their professional MIDI synthesizers. 586 Several companies (including Ensoniq, Reveal and Spea) are selling 587 cards based on this architecture. 588 589 NOTE! The SoundScape PnP is not supported by OSS/Free. Ensoniq VIVO and 590 VIVO90 cards are not compatible with Soundscapes so the Soundscape 591 driver will not work with them. You may want to use OSS/Linux with these 592 cards. 593 594 OPTi MAD16 and Mozart based cards 595 The Mozart (OAK OTI-601), MAD16 (OPTi 82C928), MAD16 Pro (OPTi 82C929), 596 OPTi 82C924/82C925 (in _non_ PnP mode) and OPTi 82C930 interface 597 chips are used in many different sound cards, including some 598 cards by Reveal miro and Turtle Beach (Tropez). The purpose of these 599 chips is to connect other audio components to the PC bus. The 600 interface chip performs address decoding for the other chips. 601 NOTE! Tropez Plus is not MAD16 but CS4232 based. 602 NOTE! MAD16 PnP cards (82C924, 82C925, 82C931) are not MAD16 compatible 603 in the PnP mode. You will have to use them in MSS mode after having 604 initialized them using isapnptools or DOS. 82C931 probably requires 605 initialization using DOS/Windows (running isapnptools is not enough). 606 It's possible to use 82C931 with OSS/Free by jumpering it to non-PnP 607 mode (provided that the card has a jumper for this). In non-PnP mode 608 82C931 is compatible with 82C930 and should work with the MAD16 driver 609 (without need to use isapnptools or DOS to initialize it). All OPTi 610 chips are supported by OSS/Linux (both in PnP and non-PnP modes). 611 612 Audio Excel DSP16 613 Support for this card was written by Riccardo Faccetti 614 (email@example.com). The AEDSP16 driver included in 615 the lowlevel/ directory. To use it you should enable the 616 "Additional low level drivers" option. 617 618 Crystal CS4232 and CS4236 based cards such as AcerMagic S23, TB Tropez _Plus_ and 619 many PC motherboards (Compaq, HP, Intel, ...) 620 CS4232 is a PnP multimedia chip which contains a CS3231A codec, 621 SB and MPU401 emulations. There is support for OPL3 too. 622 Unfortunately the MPU401 mode doesn't work (I don't know how to 623 initialize it). CS4236 is an enhanced (compatible) version of CS4232. 624 NOTE! Don't ever try to use isapnptools with CS4232 since this will just 625 freeze your machine (due to chip bugs). If you have problems in getting 626 CS4232 working you could try initializing it with DOS (CS4232C.EXE) and 627 then booting Linux using loadlin. CS4232C.EXE loads a secret firmware 628 patch which is not documented by Crystal. 629 630 Turtle Beach Maui and Tropez "classic" 631 This driver version supports sample, patch and program loading commands 632 described in the Maui/Tropez User's manual. 633 There is now full initialization support too. The audio side of 634 the Tropez is based on the MAD16 chip (see above). 635 NOTE! Tropez Plus is different card than Tropez "classic" and will not 636 work fully in Linux. You can get audio features working by configuring 637 the card as a CS4232 based card (above). 638 639 640 Jumpers and software configuration 641 ================================== 642 643 Some of the earliest sound cards were jumper configurable. You have to 644 configure the driver use I/O, IRQ and DMA settings 645 that match the jumpers. Just few 8 bit cards are fully jumper 646 configurable (SB 1.x/2.x, SB Pro and clones). 647 Some cards made by Aztech have an EEPROM which contains the 648 config info. These cards behave much like hardware jumpered cards. 649 650 Most cards have jumper for the base I/O address but other parameters 651 are software configurable. Sometimes there are few other jumpers too. 652 653 Latest cards are fully software configurable or they are PnP ISA 654 compatible. There are no jumpers on the board. 655 656 The driver handles software configurable cards automatically. Just configure 657 the driver to use I/O, IRQ and DMA settings which are known to work. 658 You could usually use the same values than with DOS and/or Windows. 659 Using different settings is possible but not recommended since it may cause 660 some trouble (for example when warm booting from an OS to another or 661 when installing new hardware to the machine). 662 663 Sound driver sets the soft configurable parameters of the card automatically 664 during boot. Usually you don't need to run any extra initialization 665 programs when booting Linux but there are some exceptions. See the 666 card-specific instructions below for more info. 667 668 The drawback of software configuration is that the driver needs to know 669 how the card must be initialized. It cannot initialize unknown cards 670 even if they are otherwise compatible with some other cards (like SB, 671 MPU401 or Windows Sound System). 672 673 674 What if your card was not listed above? 675 ======================================= 676 677 The first thing to do is to look at the major IC chips on the card. 678 Many of the latest sound cards are based on some standard chips. If you 679 are lucky, all of them could be supported by the driver. The most common ones 680 are the OPTi MAD16, Mozart, SoundScape (Ensoniq) and the PSS architectures 681 listed above. Also look at the end of this file for list of unsupported 682 cards and the ones which could be supported later. 683 684 The last resort is to send _exact_ name and model information of the card 685 to me together with a list of the major IC chips (manufactured, model) to 686 me. I could then try to check if your card looks like something familiar. 687 688 There are many more cards in the world than listed above. The first thing to 689 do with these cards is to check if they emulate some other card or interface 690 such as SB, MSS and/or MPU401. In this case there is a chance to get the 691 card to work by booting DOS before starting Linux (boot DOS, hit ctrl-alt-del 692 and boot Linux without hard resetting the machine). In this method the 693 DOS based driver initializes the hardware to use known I/O, IRQ and DMA 694 settings. If sound driver is configured to use the same settings, everything 695 should work OK. 696 697 698 Configuring sound driver (with Linux) 699 ===================================== 700 701 The sound driver is currently distributed as part of the Linux kernel. The 702 files are in /usr/src/linux/drivers/sound/. 703 704 **************************************************************************** 705 * ALWAYS USE THE SOUND DRIVER VERSION WHICH IS DISTRIBUTED WITH * 706 * THE KERNEL SOURCE PACKAGE YOU ARE USING. SOME ALPHA AND BETA TEST * 707 * VERSIONS CAN BE INSTALLED FROM A SEPARATELY DISTRIBUTED PACKAGE * 708 * BUT CHECK THAT THE PACKAGE IS NOT MUCH OLDER (OR NEWER) THAN THE * 709 * KERNEL YOU ARE USING. IT'S POSSIBLE THAT THE KERNEL/DRIVER * 710 * INTERFACE CHANGES BETWEEN KERNEL RELEASES WHICH MAY CAUSE SOME * 711 * INCOMPATIBILITY PROBLEMS. * 712 * * 713 * IN CASE YOU INSTALL A SEPARATELY DISTRIBUTED SOUND DRIVER VERSION, * 714 * BE SURE TO REMOVE OR RENAME THE OLD SOUND DRIVER DIRECTORY BEFORE * 715 * INSTALLING THE NEW ONE. LEAVING OLD FILES TO THE SOUND DRIVER * 716 * DIRECTORY _WILL_ CAUSE PROBLEMS WHEN THE DRIVER IS USED OR * 717 * COMPILED. * 718 **************************************************************************** 719 720 To configure the driver, run "make config" in the kernel source directory 721 (/usr/src/linux). Answer "y" or "m" to the question about Sound card support 722 (after the questions about mouse, CD-ROM, ftape, etc. support). Questions 723 about options for sound will then be asked. 724 725 After configuring the kernel and sound driver and compile the kernel 726 following instructions in the kernel README. 727 728 The sound driver configuration dialog 729 ------------------------------------- 730 731 Sound configuration starts by making some yes/no questions. Be careful 732 when answering to these questions since answering y to a question may 733 prevent some later ones from being asked. For example don't answer y to 734 the first question (PAS16) if you don't really have a PAS16. Don't enable 735 more cards than you really need since they just consume memory. Also 736 some drivers (like MPU401) may conflict with your SCSI controller and 737 prevent kernel from booting. If you card was in the list of supported 738 cards (above), please look at the card specific config instructions 739 (later in this file) before starting to configure. Some cards must be 740 configured in way which is not obvious. 741 742 So here is the beginning of the config dialog. Answer 'y' or 'n' to these 743 questions. The default answer is shown so that (y/n) means 'y' by default and 744 (n/y) means 'n'. To use the default value, just hit ENTER. But be careful 745 since using the default _doesn't_ guarantee anything. 746 747 Note also that all questions may not be asked. The configuration program 748 may disable some questions depending on the earlier choices. It may also 749 select some options automatically as well. 750 751 "ProAudioSpectrum 16 support", 752 - Answer 'y'_ONLY_ if you have a Pro Audio Spectrum _16_, 753 Pro Audio Studio 16 or Logitech SoundMan 16 (be sure that 754 you read the above list correctly). Don't answer 'y' if you 755 have some other card made by Media Vision or Logitech since they 756 are not PAS16 compatible. 757 NOTE! Since 3.5-beta10 you need to enable SB support (next question) 758 if you want to use the SB emulation of PAS16. It's also possible to 759 the emulation if you want to use a true SB card together with PAS16 760 (there is another question about this that is asked later). 761 "Sound Blaster support", 762 - Answer 'y' if you have an original SB card made by Creative Labs 763 or a full 100% hardware compatible clone (like Thunderboard or 764 SM Games). If your card was in the list of supported cards (above), 765 please look at the card specific instructions later in this file 766 before answering this question. For an unknown card you may answer 767 'y' if the card claims to be SB compatible. 768 Enable this option also with PAS16 (changed since v3.5-beta9). 769 770 Don't enable SB if you have a MAD16 or Mozart compatible card. 771 772 "Generic OPL2/OPL3 FM synthesizer support", 773 - Answer 'y' if your card has a FM chip made by Yamaha (OPL2/OPL3/OPL4). 774 Answering 'y' is usually a safe and recommended choice. However some 775 cards may have software (TSR) FM emulation. Enabling FM support 776 with these cards may cause trouble. However I don't currently know 777 such cards. 778 "Gravis Ultrasound support", 779 - Answer 'y' if you have GUS or GUS MAX. Answer 'n' if you don't 780 have GUS since the GUS driver consumes much memory. 781 Currently I don't have experiences with the GUS ACE so I don't 782 know what to answer with it. 783 "MPU-401 support (NOT for SB16)", 784 - Be careful with this question. The MPU401 interface is supported 785 by almost any sound card today. However some natively supported cards 786 have their own driver for MPU401. Enabling the MPU401 option with 787 these cards will cause a conflict. Also enabling MPU401 on a system 788 that doesn't really have a MPU401 could cause some trouble. If your 789 card was in the list of supported cards (above), please look at 790 the card specific instructions later in this file. 791 792 In MOST cases this MPU401 driver should only be used with "true" 793 MIDI-only MPU401 professional cards. In most other cases there 794 is another way to get the MPU401 compatible interface of a 795 sound card to work. 796 Support for the MPU401 compatible MIDI port of SB16, ESS1688 797 and MV Jazz16 cards is included in the SB driver. Use it instead 798 of this separate MPU401 driver with these cards. As well 799 Soundscape, PSS and Maui drivers include their own MPU401 800 options. 801 802 It's safe to answer 'y' if you have a true MPU401 MIDI interface 803 card. 804 "6850 UART Midi support", 805 - It's safe to answer 'n' to this question in all cases. The 6850 806 UART interface is so rarely used. 807 "PSS (ECHO-ADI2111) support", 808 - Answer 'y' only if you have Orchid SW32, Cardinal DSP16 or some 809 other card based on the PSS chipset (AD1848 codec + ADSP-2115 810 DSP chip + Echo ESC614 ASIC CHIP). 811 "16 bit sampling option of GUS (_NOT_ GUS MAX)", 812 - Answer 'y' if you have installed the 16 bit sampling daughtercard 813 to your GUS. Answer 'n' if you have GUS MAX. Enabling this option 814 disables GUS MAX support. 815 "GUS MAX support", 816 - Answer 'y' only if you have a GUS MAX. 817 "Microsoft Sound System support", 818 - Again think carefully before answering 'y' to this question. It's 819 safe to answer 'y' in case you have the original Windows Sound 820 System card made by Microsoft or Aztech SG 16 Pro (or NX16 Pro). 821 Also you may answer 'y' in case your card was not listed earlier 822 in this file. For cards having native support in the driver, consult 823 the card specific instructions later in this file. Some drivers 824 have their own MSS support and enabling this option will cause a 825 conflict. 826 Note! The MSS driver permits configuring two DMA channels. This is a 827 "nonstandard" feature and works only with very few cards (if any). 828 In most cases the second DMA channel should be disabled or set to 829 the same channel than the first one. Trying to configure two separate 830 channels with cards that don't support this feature will prevent 831 audio (at least recording) from working. 832 "Ensoniq Soundscape support", 833 - Answer 'y' if you have a sound card based on the Ensoniq SoundScape 834 chipset. Such cards are being manufactured at least by Ensoniq, 835 Spea and Reveal (note that Reveal makes other cards also). The oldest 836 cards made by Spea don't work properly with Linux. 837 Soundscape PnP as well as Ensoniq VIVO work only with the commercial 838 OSS/Linux version. 839 "MediaTrix AudioTrix Pro support", 840 - Answer 'y' if you have the AudioTrix Pro. 841 "Support for MAD16 and/or Mozart based cards", 842 - Answer y if your card has a Mozart (OAK OTI-601) or MAD16 843 (OPTi 82C928, 82C929, 82C924/82C925 or 82C930) audio interface chip. 844 These chips are 845 currently quite common so it's possible that many no-name cards 846 have one of them. In addition the MAD16 chip is used in some 847 cards made by known manufacturers such as Turtle Beach (Tropez), 848 Reveal (some models) and Diamond (some recent models). 849 Note OPTi 82C924 and 82C925 are MAD16 compatible only in non PnP 850 mode (jumper selectable on many cards). 851 "Support for TB Maui" 852 - This enables TB Maui specific initialization. Works with TB Maui 853 and TB Tropez (may not work with Tropez Plus). 854 855 856 Then the configuration program asks some y/n questions about the higher 857 level services. It's recommended to answer 'y' to each of these questions. 858 Answer 'n' only if you know you will not need the option. 859 860 "MIDI interface support", 861 - Answering 'n' disables /dev/midi## devices and access to any 862 MIDI ports using /dev/sequencer and /dev/music. This option 863 also affects any MPU401 and/or General MIDI compatible devices. 864 "FM synthesizer (YM3812/OPL-3) support", 865 - Answer 'y' here. 866 "/dev/sequencer support", 867 - Answering 'n' disables /dev/sequencer and /dev/music. 868 869 Entering the I/O, IRQ and DMA config parameters 870 ----------------------------------------------- 871 872 After the above questions the configuration program prompts for the 873 card specific configuration information. Usually just a set of 874 I/O address, IRQ and DMA numbers are asked. With some cards the program 875 asks for some files to be used during initialization of the card. For example 876 many cards have a DSP chip or microprocessor which must be initialized by 877 downloading a program (microcode) file to the card. 878 879 Instructions for answering these questions are given in the next section. 880 881 882 Card specific information 883 ========================= 884 885 This section gives additional instructions about configuring some cards. 886 Please refer manual of your card for valid I/O, IRQ and DMA numbers. Using 887 the same settings with DOS/Windows and Linux is recommended. Using 888 different values could cause some problems when switching between 889 different operating systems. 890 891 Sound Blasters (the original ones by Creative) 892 --------------------------------------------- 893 894 NOTE! Check if you have a PnP Sound Blaster (cards sold after summer 1995 895 are almost certainly PnP ones). With PnP cards you should use isapnptools 896 to activate them (see above). 897 898 It's possible to configure these cards to use different I/O, IRQ and 899 DMA settings. Since the possible/default settings have changed between various 900 models, you have to consult manual of your card for the proper ones. It's 901 a good idea to use the same values than with DOS/Windows. With SB and SB Pro 902 it's the only choice. SB16 has software selectable IRQ and DMA channels but 903 using different values with DOS and Linux is likely to cause troubles. The 904 DOS driver is not able to reset the card properly after warm boot from Linux 905 if Linux has used different IRQ or DMA values. 906 907 The original (steam) Sound Blaster (versions 1.x and 2.x) use always 908 DMA1. There is no way to change it. 909 910 The SB16 needs two DMA channels. A 8 bit one (1 or 3) is required for 911 8 bit operation and a 16 bit one (5, 6 or 7) for the 16 bit mode. In theory 912 it's possible to use just one (8 bit) DMA channel by answering the 8 bit 913 one when the configuration program asks for the 16 bit one. This may work 914 in some systems but is likely to cause terrible noise on some other systems. 915 916 It's possible to use two SB16/32/64 at the same time. To do this you should 917 first configure OSS/Free for one card. Then edit local.h manually and define 918 SB2_BASE, SB2_IRQ, SB2_DMA and SB2_DMA2 for the second one. You can't get 919 the OPL3, MIDI and EMU8000 devices of the second card to work. If you are 920 going to use two PnP Sound Blasters, ensure that they are of different model 921 and have different PnP IDs. There is no way to get two cards with the same 922 card ID and serial number to work. The easiest way to check this is trying 923 if isapnptools can see both cards or just one. 924 925 NOTE! Don't enable the SM Games option (asked by the configuration program) 926 if you are not 101% sure that your card is a Logitech Soundman Games 927 (not a SM Wave or SM16). 928 929 SB Clones 930 --------- 931 932 First of all: There are no SB16 clones. There are SB Pro clones with a 933 16 bit mode which is not SB16 compatible. The most likely alternative is that 934 the 16 bit mode means MSS/WSS. 935 936 There are just a few fully 100% hardware SB or SB Pro compatible cards. 937 I know just Thunderboard and SM Games. Other cards require some kind of 938 hardware initialization before they become SB compatible. Check if your card 939 was listed in the beginning of this file. In this case you should follow 940 instructions for your card later in this file. 941 942 For other not fully SB clones you may try initialization using DOS in 943 the following way: 944 945 - Boot DOS so that the card specific driver gets run. 946 - Hit ctrl-alt-del (or use loadlin) to boot Linux. Don't 947 switch off power or press the reset button. 948 - If you use the same I/O, IRQ and DMA settings in Linux, the 949 card should work. 950 951 If your card is both SB and MSS compatible, I recommend using the MSS mode. 952 Most cards of this kind are not able to work in the SB and the MSS mode 953 simultaneously. Using the MSS mode provides 16 bit recording and playback. 954 955 ProAudioSpectrum 16 and compatibles 956 ----------------------------------- 957 958 PAS16 has a SB emulation chip which can be used together with the native 959 (16 bit) mode of the card. To enable this emulation you should configure 960 the driver to have SB support too (this has been changed since version 961 3.5-beta9 of this driver). 962 963 With current driver versions it's also possible to use PAS16 together with 964 another SB compatible card. In this case you should configure SB support 965 for the other card and to disable the SB emulation of PAS16 (there is a 966 separate questions about this). 967 968 With PAS16 you can use two audio device files at the same time. /dev/dsp (and 969 /dev/audio) is connected to the 8/16 bit native codec and the /dev/dsp1 (and 970 /dev/audio1) is connected to the SB emulation (8 bit mono only). 971 972 Gravis Ultrasound 973 ----------------- 974 975 There are many different revisions of the Ultrasound card (GUS). The 976 earliest ones (pre 3.7) don't have a hardware mixer. With these cards 977 the driver uses a software emulation for synth and pcm playbacks. It's 978 also possible to switch some of the inputs (line in, mic) off by setting 979 mixer volume of the channel level below 10%. For recording you have 980 to select the channel as a recording source and to use volume above 10%. 981 982 GUS 3.7 has a hardware mixer. 983 984 GUS MAX and the 16 bit sampling daughtercard have a CS4231 codec chip which 985 also contains a mixer. 986 987 Configuring GUS is simple. Just enable the GUS support and GUS MAX or 988 the 16 bit daughtercard if you have them. Note that enabling the daughter 989 card disables GUS MAX driver. 990 991 NOTE for owners of the 16 bit daughtercard: By default the daughtercard 992 uses /dev/dsp (and /dev/audio). Command "ln -sf /dev/dsp1 /dev/dsp" 993 selects the daughter card as the default device. 994 995 With just the standard GUS enabled the configuration program prompts 996 for the I/O, IRQ and DMA numbers for the card. Use the same values than 997 with DOS. 998 999 With the daughter card option enabled you will be prompted for the I/O, 1000 IRQ and DMA numbers for the daughter card. You have to use different I/O 1001 and DMA values than for the standard GUS. The daughter card permits 1002 simultaneous recording and playback. Use /dev/dsp (the daughtercard) for 1003 recording and /dev/dsp1 (GUS GF1) for playback. 1004 1005 GUS MAX uses the same I/O address and IRQ settings than the original GUS 1006 (GUS MAX = GUS + a CS4231 codec). In addition an extra DMA channel may be used. 1007 Using two DMA channels permits simultaneous playback using two devices 1008 (dev/dsp0 and /dev/dsp1). The second DMA channel is required for 1009 full duplex audio. 1010 To enable the second DMA channels, give a valid DMA channel when the config 1011 program asks for the GUS MAX DMA (entering -1 disables the second DMA). 1012 Using 16 bit DMA channels (5,6 or 7) is recommended. 1013 1014 If you have problems in recording with GUS MAX, you could try to use 1015 just one 8 bit DMA channel. Recording will not work with one DMA 1016 channel if it's a 16 bit one. 1017 1018 Microphone input of GUS MAX is connected to mixer in little bit nonstandard 1019 way. There is actually two microphone volume controls. Normal "mic" controls 1020 only recording level. Mixer control "speaker" is used to control volume of 1021 microphone signal connected directly to line/speaker out. So just decrease 1022 volume of "speaker" if you have problems with microphone feedback. 1023 1024 GUS ACE works too but any attempt to record or to use the MIDI port 1025 will fail. 1026 1027 GUS PnP (with RAM) is partially supported but it needs to be initialized using 1028 DOS or isapnptools before starting the driver. 1029 1030 MPU401 and Windows Sound System 1031 ------------------------------- 1032 1033 Again. Don't enable these options in case your card is listed 1034 somewhere else in this file. 1035 1036 Configuring these cards is obvious (or it should be). With MSS 1037 you should probably enable the OPL3 synth also since 1038 most MSS compatible cards have it. However check that this is true 1039 before enabling OPL3. 1040 1041 Sound driver supports more than one MPU401 compatible cards at the same time 1042 but the config program asks config info for just the first of them. 1043 Adding the second or third MPU interfaces must be done manually by 1044 editing sound/local.h (after running the config program). Add defines for 1045 MPU2_BASE & MPU2_IRQ (and MPU3_BASE & MPU3_IRQ) to the file. 1046 1047 CAUTION! 1048 1049 The default I/O base of Adaptec AHA-1542 SCSI controller is 0x330 which 1050 is also the default of the MPU401 driver. Don't configure the sound driver to 1051 use 0x330 as the MPU401 base if you have a AHA1542. The kernel will not boot 1052 if you make this mistake. 1053 1054 PSS 1055 --- 1056 1057 Even the PSS cards are compatible with SB, MSS and MPU401, you must not 1058 enable these options when configuring the driver. The configuration 1059 program handles these options itself. (You may use the SB, MPU and MSS options 1060 together with PSS if you have another card on the system). 1061 1062 The PSS driver enables MSS and MPU401 modes of the card. SB is not enabled 1063 since it doesn't work concurrently with MSS. The driver loads also a 1064 DSP algorithm which is used to for the general MIDI emulation. The 1065 algorithm file (.ld) is read by the config program and written to a 1066 file included when the pss.c is compiled. For this reason the config 1067 program asks if you want to download the file. Use the genmidi.ld file 1068 distributed with the DOS/Windows drivers of the card (don't use the mt32.ld). 1069 With some cards the file is called 'synth.ld'. You must have access to 1070 the file when configuring the driver. The easiest way is to mount the DOS 1071 partition containing the file with Linux. 1072 1073 It's possible to load your own DSP algorithms and run them with the card. 1074 Look at the directory pss_test of snd-util-3.0.tar.gz for more info. 1075 1076 AudioTrix Pro 1077 ------------- 1078 1079 You have to enable the OPL3 and SB (not SB Pro or SB16) drivers in addition 1080 to the native AudioTrix driver. Don't enable MSS or MPU drivers. 1081 1082 Configuring ATP is little bit tricky since it uses so many I/O, IRQ and 1083 DMA numbers. Using the same values than with DOS/Win is a good idea. Don't 1084 attempt to use the same IRQ or DMA channels twice. 1085 1086 The SB mode of ATP is implemented so the ATP driver just enables SB 1087 in the proper address. The SB driver handles the rest. You have to configure 1088 both the SB driver and the SB mode of ATP to use the same IRQ, DMA and I/O 1089 settings. 1090 1091 Also the ATP has a microcontroller for the General MIDI emulation (OPL4). 1092 For this reason the driver asks for the name of a file containing the 1093 microcode (TRXPRO.HEX). This file is usually located in the directory 1094 where the DOS drivers were installed. You must have access to this file 1095 when configuring the driver. 1096 1097 If you have the effects daughtercard, it must be initialized by running 1098 the setfx program of snd-util-3.0.tar.gz package. This step is not required 1099 when using the (future) binary distribution version of the driver. 1100 1101 Ensoniq SoundScape 1102 ------------------ 1103 1104 NOTE! The new PnP SoundScape is not supported yet. Soundscape compatible 1105 cards made by Reveal don't work with Linux. They use older revision 1106 of the Soundscape chipset which is not fully compatible with 1107 newer cards made by Ensoniq. 1108 1109 The SoundScape driver handles initialization of MSS and MPU supports 1110 itself so you don't need to enable other drivers than SoundScape 1111 (enable also the /dev/dsp, /dev/sequencer and MIDI supports). 1112 1113 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1114 !!!!! !!!! 1115 !!!!! NOTE! Before version 3.5-beta6 there WERE two sets of audio !!!! 1116 !!!!! device files (/dev/dsp0 and /dev/dsp1). The first one WAS !!!! 1117 !!!!! used only for card initialization and the second for audio !!!! 1118 !!!!! purposes. It WAS required to change /dev/dsp (a symlink) to !!!! 1119 !!!!! point to /dev/dsp1. !!!! 1120 !!!!! !!!! 1121 !!!!! This is not required with OSS versions 3.5-beta6 and later !!!! 1122 !!!!! since there is now just one audio device file. Please !!!! 1123 !!!!! change /dev/dsp to point back to /dev/dsp0 if you are !!!! 1124 !!!!! upgrading from an earlier driver version using !!!! 1125 !!!!! (cd /dev;rm dsp;ln -s dsp0 dsp). !!!! 1126 !!!!! !!!! 1127 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1128 1129 The configuration program asks one DMA channel and two interrupts. One IRQ 1130 and one DMA is used by the MSS codec. The second IRQ is required for the 1131 MPU401 mode (you have to use different IRQs for both purposes). 1132 There were earlier two DMA channels for SoundScape but the current driver 1133 version requires just one. 1134 1135 The SoundScape card has a Motorola microcontroller which must initialized 1136 _after_ boot (the driver doesn't initialize it during boot). 1137 The initialization is done by running the 'ssinit' program which is 1138 distributed in the snd-util-3.0.tar.gz package. You have to edit two 1139 defines in the ssinit.c and then compile the program. You may run ssinit 1140 manually (after each boot) or add it to /etc/rc.d/rc.local. 1141 1142 The ssinit program needs the microcode file that comes with the DOS/Windows 1143 driver of the card. You will need to use version 1.30.00 or later 1144 of the microcode file (sndscape.co0 or sndscape.co1 depending on 1145 your card model). THE OLD sndscape.cod WILL NOT WORK. IT WILL HANG YOUR 1146 MACHINE. The only way to get the new microcode file is to download 1147 and install the DOS/Windows driver from ftp://ftp.ensoniq.com/pub. 1148 1149 Then you have to select the proper microcode file to use: soundscape.co0 1150 is the right one for most cards and sndscape.co1 is for few (older) cards 1151 made by Reveal and/or Spea. The driver has capability to detect the card 1152 version during boot. Look at the boot log messages in /var/adm/messages 1153 and locate the sound driver initialization message for the SoundScape 1154 card. If the driver displays string <Ensoniq Soundscape (old)>, you have 1155 an old card and you will need to use sndscape.co1. For other cards use 1156 soundscape.co0. New Soundscape revisions such as Elite and PnP use 1157 code files with higher numbers (.co2, .co3, etc.). 1158 1159 NOTE! Ensoniq Soundscape VIVO is not compatible with other Soundscape cards. 1160 Currently it's possible to use it in Linux only with OSS/Linux 1161 drivers. 1162 1163 Check /var/adm/messages after running ssinit. The driver prints 1164 the board version after downloading the microcode file. That version 1165 number must match the number in the name of the microcode file (extension). 1166 1167 Running ssinit with a wrong version of the sndscape.co? file is not 1168 dangerous as long as you don't try to use a file called sndscape.cod. 1169 If you have initialized the card using a wrong microcode file (sounds 1170 are terrible), just modify ssinit.c to use another microcode file and try 1171 again. It's possible to use an earlier version of sndscape.co but it 1172 may sound weird. 1173 1174 MAD16 (Pro) and Mozart 1175 ---------------------- 1176 1177 You need to enable just the MAD16 /Mozart support when configuring 1178 the driver. _Don't_ enable SB, MPU401 or MSS. However you will need the 1179 /dev/audio, /dev/sequencer and MIDI supports. 1180 1181 Mozart and OPTi 82C928 (the original MAD16) chips don't support 1182 MPU401 mode so enter just 0 when the configuration program asks the 1183 MPU/MIDI I/O base. The MAD16 Pro (OPTi 82C929) and 82C930 chips have MPU401 1184 mode. 1185 1186 TB Tropez is based on the 82C929 chip. It has two MIDI ports. 1187 The one connected to the MAD16 chip is the second one (there is a second 1188 MIDI connector/pins somewhere??). If you have not connected the second MIDI 1189 port, just disable the MIDI port of MAD16. The 'Maui' compatible synth of 1190 Tropez is jumper configurable and not connected to the MAD16 chip (the 1191 Maui driver can be used with it). 1192 1193 Some MAD16 based cards may cause feedback, whistle or terrible noise if the 1194 line3 mixer channel is turned too high. This happens at least with Shuttle 1195 Sound System. Current driver versions set volume of line3 low enough so 1196 this should not be a problem. 1197 1198 If you have a MAD16 card which have an OPL4 (FM + Wave table) synthesizer 1199 chip (_not_ an OPL3), you have to append a line containing #define MAD16_OPL4 1200 to the file linux/drivers/sound/local.h (after running make config). 1201 1202 MAD16 cards having a CS4231 codec support full duplex mode. This mode 1203 can be enabled by configuring the card to use two DMA channels. Possible 1204 DMA channel pairs are: 0&1, 1&0 and 3&0. 1205 1206 NOTE! Cards having an OPTi 82C924/82C925 chip work with OSS/Free only in 1207 non-PnP mode (usually jumper selectable). The PnP mode is supported only 1208 by OSS/Linux. 1209 1210 MV Jazz (ProSonic) 1211 ------------------ 1212 1213 The Jazz16 driver is just a hack made to the SB Pro driver. However it works 1214 fairly well. You have to enable SB, SB Pro (_not_ SB16) and MPU401 supports 1215 when configuring the driver. The configuration program asks later if you 1216 want support for MV Jazz16 based cards (after asking SB base address). Answer 1217 'y' here and the driver asks the second (16 bit) DMA channel. 1218 1219 The Jazz16 driver uses the MPU401 driver in a way which will cause 1220 problems if you have another MPU401 compatible card. In this case you must 1221 give address of the Jazz16 based MPU401 interface when the config 1222 program prompts for the MPU401 information. Then look at the MPU401 1223 specific section for instructions about configuring more than one MPU401 cards. 1224 1225 Logitech Soundman Wave 1226 ---------------------- 1227 1228 Read the above MV Jazz specific instructions first. 1229 1230 The Logitech SoundMan Wave (don't confuse this with the SM16 or SM Games) is 1231 a MV Jazz based card which has an additional OPL4 based wave table 1232 synthesizer. The OPL4 chip is handled by an on board microcontroller 1233 which must be initialized during boot. The config program asks if 1234 you have a SM Wave immediately after asking the second DMA channel of jazz16. 1235 If you answer 'y', the config program will ask name of the file containing 1236 code to be loaded to the microcontroller. The file is usually called 1237 MIDI0001.BIN and it's located in the DOS/Windows driver directory. The file 1238 may also be called as TSUNAMI.BIN or something else (older cards?). 1239 1240 The OPL4 synth will be inaccessible without loading the microcontroller code. 1241 1242 Also remember to enable SB MPU401 support if you want to use the OPL4 mode. 1243 (Don't enable the 'normal' MPU401 device as with some earlier driver 1244 versions (pre 3.5-alpha8)). 1245 1246 NOTE! Don't answer 'y' when the driver asks about SM Games support 1247 (the next question after the MIDI0001.BIN name). However 1248 answering 'y' doesn't cause damage your computer so don't panic. 1249 1250 Sound Galaxies 1251 -------------- 1252 1253 There are many different Sound Galaxy cards made by Aztech. The 8 bit 1254 ones are fully SB or SB Pro compatible and there should be no problems 1255 with them. 1256 1257 The older 16 bit cards (SG Pro16, SG NX Pro16, Nova and Lyra) have 1258 an EEPROM chip for storing the configuration data. There is a microcontroller 1259 which initializes the card to match the EEPROM settings when the machine 1260 is powered on. These cards actually behave just like they have jumpers 1261 for all of the settings. Configure driver for MSS, MPU, SB/SB Pro and OPL3 1262 supports with these cards. 1263 1264 There are some new Sound Galaxies in the market. I have no experience with 1265 them so read the card's manual carefully. 1266 1267 ESS ES1688 and ES688 'AudioDrive' based cards 1268 --------------------------------------------- 1269 1270 Support for these two ESS chips is embedded in the SB driver. 1271 Configure these cards just like SB. Enable the 'SB MPU401 MIDI port' 1272 if you want to use MIDI features of ES1688. ES688 doesn't have MPU mode 1273 so you don't need to enable it (the driver uses normal SB MIDI automatically 1274 with ES688). 1275 1276 NOTE! ESS cards are not compatible with MSS/WSS so don't worry if MSS support 1277 of OSS doesn't work with it. 1278 1279 There are some ES1688/688 based sound cards and (particularly) motherboards 1280 which use software configurable I/O port relocation feature of the chip. 1281 This ESS proprietary feature is supported only by OSS/Linux. 1282 1283 There are ES1688 based cards which use different interrupt pin assignment than 1284 recommended by ESS (5, 7, 9/2 and 10). In this case all IRQs don't work. 1285 At least a card called (Pearl?) Hypersound 16 supports IRQ 15 but it doesn't 1286 work. 1287 1288 ES1868 is a PnP chip which is (supposed to be) compatible with ESS1688 1289 probably works with OSS/Free after initialization using isapnptools. 1290 1291 Reveal cards 1292 ------------ 1293 1294 There are several different cards made/marketed by Reveal. Some of them 1295 are compatible with SoundScape and some use the MAD16 chip. You may have 1296 to look at the card and try to identify its origin. 1297 1298 Diamond 1299 ------- 1300 1301 The oldest (Sierra Aria based) sound cards made by Diamond are not supported 1302 (they may work if the card is initialized using DOS). The recent (LX?) 1303 models are based on the MAD16 chip which is supported by the driver. 1304 1305 Audio Excel DSP16 1306 ----------------- 1307 1308 Support for this card is currently not functional. A new driver for it 1309 should be available later this year. 1310 1311 PCMCIA cards 1312 ------------ 1313 1314 Sorry, can't help. Some cards may work and some don't. 1315 1316 TI TM4000M notebooks 1317 -------------------- 1318 1319 These computers have a built in sound support based on the Jazz chipset. 1320 Look at the instructions for MV Jazz (above). It's also important to note 1321 that there is something wrong with the mouse port and sound at least on 1322 some TM models. Don't enable the "C&T 82C710 mouse port support" when 1323 configuring Linux. Having it enabled is likely to cause mysterious problems 1324 and kernel failures when sound is used. 1325 1326 miroSOUND 1327 --------- 1328 1329 The miroSOUND PCM1-pro, PCM12 and PCM20 radio has been used 1330 successfully. These cards are based on the MAD16, OPL4, and CS4231A chips 1331 and everything said in the section about MAD16 cards applies here, 1332 too. The only major difference between the PCMxx and other MAD16 cards 1333 is that instead of the mixer in the CS4231 codec a separate mixer 1334 controlled by an on-board 80C32 microcontroller is used. Control of 1335 the mixer takes place via the ACI (miro's audio control interface) 1336 protocol that is implemented in a separate lowlevel driver. Make sure 1337 you compile this ACI driver together with the normal MAD16 support 1338 when you use a miroSOUND PCMxx card. The ACI mixer is controlled by 1339 /dev/mixer and the CS4231 mixer by /dev/mixer1 (depends on load 1340 time). Only in special cases you want to change something regularly on 1341 the CS4231 mixer. 1342 1343 The miroSOUND PCM12 and PCM20 radio is capable of full duplex 1344 operation (simultaneous PCM replay and recording), which allows you to 1345 implement nice real-time signal processing audio effect software and 1346 network telephones. The ACI mixer has to be switched into the "solo" 1347 mode for duplex operation in order to avoid feedback caused by the 1348 mixer (input hears output signal). You can de-/activate this mode 1349 through toggleing the record button for the wave controller with an 1350 OSS-mixer. 1351 1352 The PCM20 contains a radio tuner, which is also controlled by 1353 ACI. This radio tuner is supported by the ACI driver together with the 1354 miropcm20.o module. Also the 7-band equalizer is integrated 1355 (limited by the OSS-design). Development has started and maybe 1356 finished for the RDS decoder on this card, too. You will be able to 1357 read RadioText, the Programme Service name, Programme TYpe and 1358 others. Even the v4l radio module benefits from it with a refined 1359 strength value. See aci.[ch] and miropcm20*.[ch] for more details. 1360 1361 The following configuration parameters have worked fine for the PCM12 1362 in Markus Kuhn's system, many other configurations might work, too: 1363 CONFIG_MAD16_BASE=0x530, CONFIG_MAD16_IRQ=11, CONFIG_MAD16_DMA=3, 1364 CONFIG_MAD16_DMA2=0, CONFIG_MAD16_MPU_BASE=0x330, CONFIG_MAD16_MPU_IRQ=10, 1365 DSP_BUFFSIZE=65536, SELECTED_SOUND_OPTIONS=0x00281000. 1366 1367 Bas van der Linden is using his PCM1-pro with a configuration that 1368 differs in: CONFIG_MAD16_IRQ=7, CONFIG_MAD16_DMA=1, CONFIG_MAD16_MPU_IRQ=9 1369 1370 Compaq Deskpro XL 1371 ----------------- 1372 1373 The builtin sound hardware of Compaq Deskpro XL is now supported. 1374 You need to configure the driver with MSS and OPL3 supports enabled. 1375 In addition you need to manually edit linux/drivers/sound/local.h and 1376 to add a line containing "#define DESKPROXL" if you used 1377 make menuconfig/xconfig. 1378 1379 Others? 1380 ------- 1381 1382 Since there are so many different sound cards, it's likely that I have 1383 forgotten to mention many of them. Please inform me if you know yet another 1384 card which works with Linux, please inform me (or is anybody else 1385 willing to maintain a database of supported cards (just like in XF86)?). 1386 1387 Cards not supported yet 1388 ======================= 1389 1390 Please check the version of sound driver you are using before 1391 complaining that your card is not supported. It's possible you are 1392 using a driver version which was released months before your card was 1393 introduced. 1394 1395 First of all, there is an easy way to make most sound cards work with Linux. 1396 Just use the DOS based driver to initialize the card to a known state, then use 1397 loadlin.exe to boot Linux. If Linux is configured to use the same I/O, IRQ and 1398 DMA numbers as DOS, the card could work. 1399 (ctrl-alt-del can be used in place of loadlin.exe but it doesn't work with 1400 new motherboards). This method works also with all/most PnP sound cards. 1401 1402 Don't get fooled with SB compatibility. Most cards are compatible with 1403 SB but that may require a TSR which is not possible with Linux. If 1404 the card is compatible with MSS, it's a better choice. Some cards 1405 don't work in the SB and MSS modes at the same time. 1406 1407 Then there are cards which are no longer manufactured and/or which 1408 are relatively rarely used (such as the 8 bit ProAudioSpectrum 1409 models). It's extremely unlikely that such cards ever get supported. 1410 Adding support for a new card requires much work and increases time 1411 required in maintaining the driver (some changes need to be done 1412 to all low level drivers and be tested too, maybe with multiple 1413 operating systems). For this reason I have made a decision to not support 1414 obsolete cards. It's possible that someone else makes a separately 1415 distributed driver (diffs) for the card. 1416 1417 Writing a driver for a new card is not possible if there are no 1418 programming information available about the card. If you don't 1419 find your new card from this file, look from the home page 1420 (http://www.opensound.com/ossfree). Then please contact 1421 manufacturer of the card and ask if they have (or are willing to) 1422 released technical details of the card. Do this before contacting me. I 1423 can only answer 'no' if there are no programming information available. 1424 1425 I have made decision to not accept code based on reverse engineering 1426 to the driver. There are three main reasons: First I don't want to break 1427 relationships to sound card manufacturers. The second reason is that 1428 maintaining and supporting a driver without any specs will be a pain. 1429 The third reason is that companies have freedom to refuse selling their 1430 products to other than Windows users. 1431 1432 Some companies don't give low level technical information about their 1433 products to public or at least their require signing a NDA. It's not 1434 possible to implement a freeware driver for them. However it's possible 1435 that support for such cards become available in the commercial version 1436 of this driver (see http://www.4Front-tech.com/oss.html for more info). 1437 1438 There are some common audio chipsets that are not supported yet. For example 1439 Sierra Aria and IBM Mwave. It's possible that these architectures 1440 get some support in future but I can't make any promises. Just look 1441 at the home page (http://www.opensound.com/ossfree/) 1442 for latest info. 1443 1444 Information about unsupported sound cards and chipsets is welcome as well 1445 as free copies of sound cards, SDKs and operating systems. 1446 1447 If you have any corrections and/or comments, please contact me. 1448 1449 Hannu Savolainen 1450 firstname.lastname@example.org 1451 1452 home page of OSS/Free: http://www.opensound.com/ossfree 1453 1454 home page of commercial OSS 1455 (Open Sound System) drivers: http://www.opensound.com/oss.html