Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man
Apropos Keyword Search (all sections) Output format
home | help
PCM(4)		       FreeBSD Kernel Interfaces Manual 		PCM(4)

NAME
     pcm, snd -- FreeBSD PCM audio device driver

SYNOPSIS
     For a card with bridge driver support, and a PnP card:
     device pcm

     For a card without bridge driver support, and a non-PnP card:
     device pcm0 at isa? port? irq 5 drq 1 flags 0x15

DESCRIPTION
     The pcm driver provides support for PCM audio play and capture.  This
     driver also supports various PCI and WSS/MSS compatible ISA sound cards,
     and AC97 mixer.  True full duplex operation is available on most cards.

     If your sound card is supported by a bridge driver, pcm driver works in
     conjunction with the bridge driver.

     Apart from the usual parameters, the flags field is used to specify the
     secondary DMA channel (generally used for capture in full duplex cards).
     Flags are set to 0 for cards not using a secondary DMA channel, or to
     0x10 + C to specify channel C.

     The driver works best with WSS/MSS cards, which have a very clean archi-
     tecture and an orthogonal set of features.  They also happen to be among
     the cheapest audio cards on the market.

     The driver does its best to recognize the installed hardware and drive it
     correctly, so that you don't have to give too many details in the kernel
     config files.  For PCI and ISA PnP cards this is actually easy since they
     identify themselves.  For legacy ISA cards, the driver looks for MSS
     cards at addresses 0x530 and 0x604 (obviously, unless overridden in the
     kernel config file by specifying an address).

IOCTL
     The driver supports most of the Voxware ioctls(), and most applications
     work unmodified (including popular mpeg players and linux binaries). A
     few differences exist (the most important one is the ability to use mem-
     ory-mapped access to the audio buffers). As a consequence, some applica-
     tions may need to be recompiled with a slightly modified audio module.
     See /usr/include/sys/soundcard.h for a complete list of the supported
     ioctls.

SUPPORTED CARDS
     Below we include a list of supported codecs/cards.  If your sound card is
     not listed here, it may be supported by a bridge driver.

     CS4237, CS4236, CS4232, CS4231 (ISA)
	 All these cards work perfectly in full duplex using the MSS mode.
	 This chipset is used, among others, on the A/Open AW35 and AW32, on
	 some Intel motherboards, and (the CS4231) on some non-PnP cards.

	 The CS4232 is reported as buggy in the Voxware documentation but I am
	 not sure if this is true.  On one of my Intel motherboards, capture
	 does not work simply because the capture DMA channel is not wired to
	 the ISA DMA controller.

     Yamaha OPL-SAx (ISA)
	 Works perfectly in all modes.	This chip is used in several PnP
	 cards, but also (in non-PnP mode) on motherboards and laptops (e.g.
	 the Toshiba Libretto).

     OPTi931 (ISA)
	 The chip is buggy, but the driver has many workarounds to make it
	 work in full duplex because for some time these were the only full
	 duplex cards I could find. u-law formats uses U8 format internally
	 because of a bug in the chip.

     Trident 4DWave DX/NX (PCI)

     ENSONIQ AudioPCI ES1370/1371 (PCI)
	 Creative Labs SoundBlaster PCI is supported as well.

     ESS Solo-1/1E (PCI)

     NeoMagic 256AV/ZX (PCI)

FILES
     The following commonly used symbolic links to real device nodes should be
     present:

     /dev/audio      Sparc-compatible audio device
     /dev/dsp	     Digitized voice device
     /dev/dspW	     Like /dev/dsp, but 16 bits per sample
     /dev/midi	     Raw midi access device
     /dev/mixer      Control port mixer device
     /dev/music      Level 2 sequencer interface
     /dev/sequencer  Sequencer device
     /dev/pss	     Programmable device interface

     Each symbolic link refers to a device node of the same name, but with a
     unit number appended.  The unit number for each device matches the unit
     number of the device probed at boot time.	Device probe messages can be
     examined with the dmesg(8) utility.

     All the appropriate device nodes and symbolic links for the `pcm0' device
     would created with the following commands:

	   cd /dev; sh MAKEDEV snd0

     Similarly, the device nodes and symbolic links for the `pcm1' device
     would be created as follows:

	   cd /dev; sh MAKEDEV snd1

     Since the /dev/MAKEDEV utility creates symbolic links that will be used
     by many utilities by default, the device nodes and symbolic links for the
     preferred audio device in systems with multiple audio devices should be
     created last.

DIAGNOSTICS AND TROUBLESHOOTING
     ac97: dac not ready
	 AC97 codec is not likely to be accompanied with the sound card.

     unsupported subdevice XX
	 A device node is not created properly.

BUGS
     Some features of your cards (e.g. global volume control) might not be
     supported on all devices.

HISTORY
     The pcm device driver first appeared in FreeBSD 2.2.6, rewritten in
     FreeBSD 4.0.

SEE ALSO
     csa(4), gusc(4), sbc(4)

AUTHORS
     Luigi Rizzo <luigi@iet.unipi.it> initially wrote the pcm device driver
     and this manual page.
     Cameron Grant <gandalf@vilnya.demon.co.uk> totally revised the device
     driver.
     Seigo Tanimura <tanimura@r.dl.itc.u-tokyo.ac.jp> revised this manual
     page.

FreeBSD 7.2			 June 3, 1998			   FreeBSD 7.2

NAME | SYNOPSIS | DESCRIPTION | IOCTL | SUPPORTED CARDS | FILES | DIAGNOSTICS AND TROUBLESHOOTING | BUGS | HISTORY | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<http://www.freebsd.org/cgi/man.cgi?query=pcm&sektion=4&manpath=FreeBSD+4.7-RELEASE>

home | help