This is the generic ALSA module template which is intended to give an overview for '''all''' sound modules.

−

If you are looking to specific hardware and you would like to add an extra information for selected module, please, do not modify paragraphs between Template start and Template end. Add extra information above / bellow for the specific Matrix:Module-* page.

+

If you want to add specific hardware information or information for a specific module, please '''DO NOT modify''' this template. Add extra information above and/or bellow to the specific Matrix:Module-* page instead. Please read the [[Matrix:Description|Universal Soundcard Description]] for more details.

−

==Introduction for {{{name|unknown}}} soundcard==

+

</noinclude>==Introduction for {{{name|unknown}}} soundcard==

−

There are two ways of getting Linux drivers to work, you can either compile them into the kernel or build them separately as modules. Read the Kernel-HOWTO for details of how to compile a kernel.

+

There are two ways of getting Linux drivers to work, you can either compile them into the kernel or build them separately as modules. Read the [http://www.tldp.org/ Kernel-HOWTO] for details of how to compile a kernel.

−

You must turn on the sound support soundcore module. This is in the kernel. Look in the sound drivers directory and it should be the first option. Most people enable the module setting. That way you can load and unload the module manually if you have multiple soundcards/devices or if you intend to debug or use cutting edge software which may cause your drivers to halt sometimes. Of course it also means you have more control of your system.

+

'''You must turn on the sound support soundcore module.''' This is in the kernel. Look in the sound drivers directory and it should be the first option. Most people enable the module setting. That way you can load and unload the module manually if you have multiple soundcards/&#x200B;devices or if you intend to debug or use cutting edge software which may cause your drivers to halt sometimes. Of course it also means you have more control of your system.

−

Most modern distros come with soundcore compiled as a module. You can check this in numerous ways. The easiest way is to type.

+

Most modern distros come with <tt>soundcore</tt> compiled as a module. You can check this in numerous ways. The easiest way is to type:

modinfo soundcore

modinfo soundcore

Line 19:

Line 20:

If this command returns that you have this module, then you don't need to recompile your kernel.

If this command returns that you have this module, then you don't need to recompile your kernel.

−

==Quick Install==

+

==Quick installation==

−

NB. If you are using hg (mercurial) then you need to type

+

This explains how to build from source tarballs. See [[GIT_Server]] for instructions on getting and using the latest source from git repositories.

Now adjust your soundcard's volume levels. All mixer channels are muted by default. You must use a native mixer program to unmute appropriate channels, for example <tt>alsamixer</tt> from the <tt>alsa-utils</tt> package. Note that some usb-audio devices do not have internal mixer controls. Run:

−

+

−

modprobe snd-card-{{{module|unknown}}}

+

−

+

−

Now adjust your soundcards volume levels. All mixer channels are muted by default. You must use a native mixer program to unmute appropriate channels, for example alsamixer from the alsa-utils package. Note that some usb-audio devices do not have internal mixer controls.

+

alsamixer

alsamixer

−

You can also look at the utils/alsasound file. This script is designed for the RedHat distribution, but it can be used with other distributions which use System V style rc init scripts. This will allow you to load your modules at boot time. If you want to do this you could just compile them into the kernel instead and save yourself the hassle of coming to terms with the rc init scripts.

+

You can also look at the utils/&#x200B;alsasound file. This script is designed for the ''RedHat Linux'' distribution, but it can also be used with other distributions which use System&nbsp;V style rc init scripts. This will allow you to load your modules at boot time. If you don't want to do this you can of course compile them into the kernel instead and save yourself the hassle of coming to terms with the rc init scripts.

===Setting up modprobe and kmod support===

===Setting up modprobe and kmod support===

−

Before you send a mail complaining that "I don't have /etc/modules.conf, where do I find it ....." ,The /etc/conf.modules has been deprecated with a few distro's so in your case, it may still be /etc/conf.modules. Basically they are both the same, but recent version of modutils uses /etc/modules.conf instead. Nothing to worry about as such, optionally please update to latest version of modutils. This should solve your problem.

+

Before you send a mail complaining that "I don't have <tt>/etc/&#x200B;modules.conf</tt>, where do I find it ……" ‒ the <tt>/etc/&#x200B;conf.modules</tt> has been deprecated with a few distro's, but in your case it may still be <tt>/etc/&#x200B;conf.modules</tt>. Basically they are both the same, but recent version of <tt>modutils</tt> use <tt>/etc/&#x200B;modules.conf</tt> instead. Nothing to worry about as such, optionally please update to the latest version of <tt>modutils</tt>. This should solve your problem.

−

Here's the example for this card. Copy and paste this to the bottom of your /etc/modules.conf file.

+

Here's the example for this card. Copy and paste this to the bottom of your <tt>/etc/&#x200B;modules.conf</tt> file.

−

Note to debian users: You need to save this information into a file in the /etc/modutils/ directory (Eg. /etc/modutils/alsa) and run update-modules

+

{{Note|'''Debian GNU/Linux users''' need to save this information into a file in the <tt>/etc/&#x200B;modutils/</tt> directory (eg. <tt>/etc/&#x200B;modutils/&#x200B;alsa</tt>) and run <tt>update-modules</tt>.<br>

+

+

Note also that the kernel module '''soundcore''' has been renamed in Debian kernels >2.6.23 into '''snd'''. A workaround is to put a symlink at /lib/modules/x.x.xx/kernel/sound/soundcore.ko pointing to '''snd.ko'''}}

# ALSA portion

# ALSA portion

alias char-major-116 snd

alias char-major-116 snd

alias snd-card-0 snd-{{{module|unknown}}}

alias snd-card-0 snd-{{{module|unknown}}}

−

# module options should go here

+

# module options should go here

−

+

# OSS/Free portion

# OSS/Free portion

alias char-major-14 soundcore

alias char-major-14 soundcore

alias sound-slot-0 snd-card-0

alias sound-slot-0 snd-card-0

−

+

−

# card #1

+

# card #1

−

alias sound-service-0-0 snd-mixer-oss

+

alias sound-service-0-0 snd-mixer-oss

−

alias sound-service-0-1 snd-seq-oss

+

alias sound-service-0-1 snd-seq-oss

−

alias sound-service-0-3 snd-pcm-oss

+

alias sound-service-0-3 snd-pcm-oss

−

alias sound-service-0-8 snd-seq-oss

+

alias sound-service-0-8 snd-seq-oss

−

alias sound-service-0-12 snd-pcm-oss

+

alias sound-service-0-12 snd-pcm-oss

−

+

−

NB. For drivers older than 0.9.0beta11 use:

+

To copy and paste the above to your <tt>/etc/&#x200B;modules.conf</tt> file follow these [http://www.alsa-project.org/alsa-doc/doc-php/file-edit.php instructions].

−

snd-card-{{{module|unknown}}}

+

==modules.conf==

−

To copy and paste the above to your /etc/modules.conf file follow these instructions.

+

This is a short explanation of what happens in the <tt>/etc/&#x200B;modules.conf</tt> file.

−

A short explanation of what happens in the /etc/modules.conf file

+

===Native devices===

−

===Native Devices===

+

After the main multiplexer is loaded, its code automatically requests the top level sound card module. String <tt>snd-card-''%i''</tt> is requested for native devices where ''%i'' is the sound card number, counted from zero (the first sound card) to seven (the eighth sound card). String <tt>sound-slot-''%i''</tt> is requested for native devices where ''%i'' is slot number for the corresponding ALSA owner (which is basically the sound card number). The options line allows you to set various configuration options before the module is loaded. String <tt>id</tt> (or <tt>snd_id</tt>) lets you set the name of the card which is then returned in the <tt>/proc/&#x200B;asound/&#x200B;cards</tt> file, i.e. to user space applications. Other options may be available depending on the specific card. Options for these cards are found in the <tt>INSTALL</tt> file or above.

−

+

−

After the main multiplexer is loaded, its code requests top level sound card module. String snd-card-%i is requested for native devices where %i is sound card number from zero to seven. String sound-slot-%i is requested for native devices where %i is slot number for ALSA owner this means sound card number. The options line allows you to set various config options before the module is loaded. String snd_id lets you set the name of the card which is returned in the /proc/asound/cards file. Other options may be available which are card specific. The options for these are found in the INSTALL file or above.

+

−

+

−

xyz@localhost#pico /etc/modules.conf

+

+

username@hostname# pico /etc/modules.conf

+

# ALSA portion

# ALSA portion

alias snd-card-0 snd-hda-intel

alias snd-card-0 snd-hda-intel

alias snd-card-1 snd-cmipci

alias snd-card-1 snd-cmipci

−

options snd-cmipci id="first" mpu_port=0x330

+

options snd-cmipci id="first" mpu_port=0x330

−

+

# OSS/Free portion

# OSS/Free portion

alias sound-slot-0 snd-card-0

alias sound-slot-0 snd-card-0

alias sound-slot-1 snd-card-1

alias sound-slot-1 snd-card-1

−

−

NB. For drivers older than 0.9.0rc5 use:

+

{{Note|

+

''For drivers older than 0.9.0rc5 use:''

−

options snd-cmipci snd_id="first" snd_mpu_port=0x330

+

<nowiki>options snd-cmipci snd_id="first" snd_mpu_port=0x330</nowiki>

+

|NB}}

−

The "snd_" prefix has been removed from the "module options" to fit with the kernel standard.

+

{{Note|The "<tt>snd_</tt>" prefix has been removed from the module options to fit with the kernel standard.|NB}}

===Autoloading OSS/free emulation===

===Autoloading OSS/free emulation===

−

We are finished at this point with the configuration for ALSA native devices, but you may also need autoloading for ALSA add-on OSS/Free emulation modules. At this time only one module does not depend on any others, thus must be loaded separately, snd-pcm1-oss.o. String sound-service-%i-%i is requested for OSS/Free service where first %i means slot number e.g. card number and second %i means service number.

+

At this point we are finished with the configuration for ALSA native devices, but you may also need autoloading for the OSS/Free emulation modules, an ALSA add-on. At this time only one module does not depend on any others, thus must be loaded separately: <tt>snd-pcm1-oss</tt>. String <tt>sound-service-''%i''-''%i''</tt> is required for OSS/Free service where the first ''%i'' is the slot number/&#x200B;sound card number and the second ''%i'' is the service number.

−

+

−

xyz@localhost#pico

+

−

/etc/modules.conf

+

+

username@hostname# pico /etc/modules.conf

+

# OSS/Free portion - card #1

# OSS/Free portion - card #1

−

alias sound-slot-0 snd-card-0

+

alias sound-slot-0 snd-card-0

−

alias sound-service-0-0 snd-mixer-oss

+

alias sound-service-0-0 snd-mixer-oss

−

alias sound-service-0-1 snd-seq-oss

+

alias sound-service-0-1 snd-seq-oss

−

alias sound-service-0-3 snd-pcm-oss

+

alias sound-service-0-3 snd-pcm-oss

−

alias sound-service-0-8 snd-seq-oss

+

alias sound-service-0-8 snd-seq-oss

−

alias sound-service-0-12 snd-pcm-oss

+

alias sound-service-0-12 snd-pcm-oss

−

+

# OSS/Free portion - card #2 (cmipci)

# OSS/Free portion - card #2 (cmipci)

−

alias sound-slot-1 snd-card-1

+

alias sound-slot-1 snd-card-1

−

alias sound-service-1-0 snd-mixer-oss

+

alias sound-service-1-0 snd-mixer-oss

−

alias sound-service-1-3 snd-pcm-oss

+

alias sound-service-1-3 snd-pcm-oss

−

alias sound-service-1-12 snd-pcm-oss

+

alias sound-service-1-12 snd-pcm-oss

−

The alias for snd-seq-oss is not necessary on the second device, because there is only one /dev/sequencer, regardless how many devices you have.

+

The alias for <tt>snd-seq-oss</tt> is not necessary on the second device, because there is only one <tt>/dev/&#x200B;sequencer</tt> regardless how many devices you have.

−

The .asoundrc file

+

===The .asoundrc file===

−

Find out more about this file here.

+

[[Asoundrc|This file]] allows you to have more advanced control over your card/&#x200B;device. For most setups the default, system-wide configuration is sufficient. You may change this file only for special setup. The <tt>.asoundrc</tt> file consists of definitions for the various sound devices available in your system. It also provides access to the pcm plugins in <tt>alsa-lib</tt>. These allow you to do tricky things like combine your cards into one or access multiple I/O streams on your multi-channel card.

−

This file allows the you to have more advanced control over your card/device. Some very useful applications will not work without it. The .asoundrc file consists of definitions of the various cards available in your system. It also gives you access to the pcm plugins in alsa-lib. These allow you to do tricky things like combine your cards into one or access multiple i/o's on your mulitchannel card.

+

Below is the most basic definition (only example - not required to define at all).

−

Below is the most basic definition.

+

Make a file called <tt>.asoundrc</tt> in your home and/&#x200B;or root directory:

−

Make a file called .asoundrc in your home and/or root directory.

+

vi ~/.asoundrc

−

vi /home/xxx/.asoundrc

+

Copy and paste the following into the file, then save it:

−

+

−

copy and paste the following into the file then save it.

+

pcm.{{{module|unkown}}} {

pcm.{{{module|unkown}}} {

Line 181:

Line 167:

card 0

card 0

}

}

−

+

ctl.{{{module|uknown}}} {

ctl.{{{module|uknown}}} {

type hw

type hw

card 0

card 0

}

}

+

+

==Links==

==Links==

+

[[Category:Module]]

+

'''Generic'''

+

<!-- LINKS THAT ARE BROKEN: --

+

<!-- NOTE: find some new ones and add them here --

+

* Become an active member of the Linux Audio Community at [http://www.linuxdj.com/audio/lad/index.php Linux Audio Developers] or [http://www.linuxdj.com/audio/lad/subscribelau.php Linux Audio Users]

+

* Learn about how to use applications that support ALSA. [http://lau.linuxaudio.org/guide/index.php The Linux Audio Users Guide] -->

+

* Keep up to date with the news at [http://www.mstation.org/ M-Station]<!-- or [http://audio.opensrc.org/ Open Audio Projects]-->

+

* The most current book about Linux audio is [http://www.nostarch.com/lms.htm Linux Music and Sound] (September 2000)

If you have additional ''specific'' links, add them directly after this template to the specific Matrix:Module-* page. You can also add specific hardware notes to paragraphs below. Please read the [[Matrix:Description|Universal Soundcard Description]] for more details.

Template Matrix:Soundcard

This is the generic ALSA module template which is intended to give an overview for all sound modules.

If you want to add specific hardware information or information for a specific module, please DO NOT modify this template. Add extra information above and/or bellow to the specific Matrix:Module-* page instead. Please read the Universal Soundcard Description for more details.

Introduction for unknown soundcard

There are two ways of getting Linux drivers to work, you can either compile them into the kernel or build them separately as modules. Read the Kernel-HOWTO for details of how to compile a kernel.

You must turn on the sound support soundcore module. This is in the kernel. Look in the sound drivers directory and it should be the first option. Most people enable the module setting. That way you can load and unload the module manually if you have multiple soundcards/​devices or if you intend to debug or use cutting edge software which may cause your drivers to halt sometimes. Of course it also means you have more control of your system.

Most modern distros come with soundcore compiled as a module. You can check this in numerous ways. The easiest way is to type:

modinfo soundcore

If this command returns that you have this module, then you don't need to recompile your kernel.

Quick installation

This explains how to build from source tarballs. See GIT_Server for instructions on getting and using the latest source from git repositories.

Now adjust your soundcard's volume levels. All mixer channels are muted by default. You must use a native mixer program to unmute appropriate channels, for example alsamixer from the alsa-utils package. Note that some usb-audio devices do not have internal mixer controls. Run:

alsamixer

You can also look at the utils/​alsasound file. This script is designed for the RedHat Linux distribution, but it can also be used with other distributions which use System V style rc init scripts. This will allow you to load your modules at boot time. If you don't want to do this you can of course compile them into the kernel instead and save yourself the hassle of coming to terms with the rc init scripts.

Setting up modprobe and kmod support

Before you send a mail complaining that "I don't have /etc/​modules.conf, where do I find it ……" ‒ the /etc/​conf.modules has been deprecated with a few distro's, but in your case it may still be /etc/​conf.modules. Basically they are both the same, but recent version of modutils use /etc/​modules.conf instead. Nothing to worry about as such, optionally please update to the latest version of modutils. This should solve your problem.

Here's the example for this card. Copy and paste this to the bottom of your /etc/​modules.conf file.

Note:

Debian GNU/Linux users need to save this information into a file in the /etc/​modutils/ directory (eg. /etc/​modutils/​alsa) and run update-modules.

Note also that the kernel module soundcore has been renamed in Debian kernels >2.6.23 into snd. A workaround is to put a symlink at /lib/modules/x.x.xx/kernel/sound/soundcore.ko pointing to snd.ko

To copy and paste the above to your /etc/​modules.conf file follow these instructions.

modules.conf

This is a short explanation of what happens in the /etc/​modules.conf file.

Native devices

After the main multiplexer is loaded, its code automatically requests the top level sound card module. String snd-card-%i is requested for native devices where %i is the sound card number, counted from zero (the first sound card) to seven (the eighth sound card). String sound-slot-%i is requested for native devices where %i is slot number for the corresponding ALSA owner (which is basically the sound card number). The options line allows you to set various configuration options before the module is loaded. String id (or snd_id) lets you set the name of the card which is then returned in the /proc/​asound/​cards file, i.e. to user space applications. Other options may be available depending on the specific card. Options for these cards are found in the INSTALL file or above.

The "snd_" prefix has been removed from the module options to fit with the kernel standard.

Autoloading OSS/free emulation

At this point we are finished with the configuration for ALSA native devices, but you may also need autoloading for the OSS/Free emulation modules, an ALSA add-on. At this time only one module does not depend on any others, thus must be loaded separately: snd-pcm1-oss. String sound-service-%i-%i is required for OSS/Free service where the first %i is the slot number/​sound card number and the second %i is the service number.

The alias for snd-seq-oss is not necessary on the second device, because there is only one /dev/​sequencer regardless how many devices you have.

The .asoundrc file

This file allows you to have more advanced control over your card/​device. For most setups the default, system-wide configuration is sufficient. You may change this file only for special setup. The .asoundrc file consists of definitions for the various sound devices available in your system. It also provides access to the pcm plugins in alsa-lib. These allow you to do tricky things like combine your cards into one or access multiple I/O streams on your multi-channel card.

Below is the most basic definition (only example - not required to define at all).

Template Matrix:Soundcard – bottom notes

If you have additional specific links, add them directly after this template to the specific Matrix:Module-* page. You can also add specific hardware notes to paragraphs below. Please read the Universal Soundcard Description for more details.