Results 1 to 6 of 6

Thread: Configuring Linux to support sound

  1. #1
    Join Date
    May 2008
    Posts
    432

    Configuring Linux to support sound

    Installation

    Configuring Linux to support sound involves the following steps:
    1. Installing the sound card
    2. Configuring Plug and Play (if applicable)
    3. Configuring and building the kernel for sound support
    4. Creating the device files
    5. Booting the Linux kernel and testing the installation

    If you are running Red Hat Linux there is a utility called sndconfig that in most cases will detect your sound card and set up all of the necessary configuration files to load the appropriate sound drivers for your card. If you are running Red Hat I suggest you try using it. If it works for you then you can skip the rest of the instructions in this section.

    If sndconfig fails, you are using another Linux distribution, or you want to follow the manual method in order to better understand what you are doing, then the next sections will cover each of these steps in detail.

  2. #2
    Join Date
    May 2008
    Posts
    432

    Installing the Sound Card

    Installing the Sound Card

    Follow the manufacturer's instructions for installing the hardware or have your dealer perform the installation.

    Older sound cards usually have switch or jumper settings for IRQ, DMA channel, etc; note down the values used. If you are unsure, use the factory defaults. Try to avoid conflicts with other devices (e.g. ethernet cards, SCSI host adaptors, serial and parallel ports) if possible.

    Usually you should use the same I/O port, IRQ, and DMA settings that work under DOS. In some cases though (particularly with PnP cards) you may need to use different settings to get things to work under Linux. Some experimentation may be needed.

  3. #3
    Join Date
    May 2008
    Posts
    432

    Configuring Plug and Play

    Configuring Plug and Play

    Most sound cards now use the Plug and Play protocol to configure settings for i/o addresses, interrupts, and DMA channels. If you have one of the older sound cards that uses fixed settings or jumpers, then you can skip this section.

    As of version 2.2 Linux does not yet have full Plug and Play support in the kernel. The preferred solution is to use the isapnp tools which ship with most Linux distributions (or you can download them from Red Hat's web site http://www.redhat.com.

    First check the documentation for your Linux distribution. It may already have Plug and Play support set up for you or it may work slightly differently than described here. If you need to configure it yourself,the details can be found in the man pages for the isapnp tools. Briefly the process you would normally follow is:
    • Use pnpdump to capture the possible settings for all your Plug and Play devices, saving the result to the file /etc/isapnp.conf.

    • Choose settings for the sound card that do not conflict with any other devices in your system and uncomment the appropriate lines in /etc/isapnp.conf. Don't forget to uncomment the (ACT Y) command near the end.

    • Make sure that isapnp is run when your system boots up, normally done by one of the startup scripts. Reboot your system or run isapnp manually.

    If for some reason you cannot or do not wish to use the isapnp tools, there are a couple of other options. If you use the card under Microsoft Windows 95 or 98, you can use the device manager to set up the card, then soft boot into Linux using the LOADLIN program. Make sure Windows and Linux use the same card setup parameters.

    If you use the card under DOS, you can use the icu utility that comes with SoundBlaster16 PnP cards to configure it under DOS, then soft boot into Linux using the LOADLIN program. Again, make sure DOS and Linux use the same card setup parameters.

    A few of the sound card drivers include the necessary software to initialize Plug and Play for the card. Check the documentation for that card's driver for details.

  4. #4
    Join Date
    May 2008
    Posts
    432

    Configuring the Kernel

    Configuring the Kernel

    When initially installing Linux you likely used a precompiled kernel. These kernels often do not provide sound support. It is best to recompile the kernel yourself with the drivers you need. You may also want to recompile the kernel in order to upgrade to a newer version or to free up memory resources by minimizing the size of the kernel. Later, when your sound card is working, you may wish to rebuild the kernel sound drivers as modules.

    The Linux Kernel HOWTO should be consulted for the details of building a kernel. I will just mention here some issues that are specific to sound cards.

    If you have never configured the kernel for sound support before it is a good idea to read the relevant documentation included with the kernel sound drivers, particularly information specific to your card type. The files can be found in the kernel documentation directory, usually installed in /usr/src/linux/Documentation/sound. If this directory is missing you likely either have a very old kernel version or you have not installed the kernel source code.

    Follow the usual procedure for building the kernel. There are currently three interfaces to the configuration process. A graphical user interface that runs under X11 can be invoked using make xconfig. A menu-based system that only requires text displays is available as make menuconfig. The original method, using make config, offers a simple text-based interface.

    When configuring the kernel there will be many choices for selecting the type of sound card you have and the driver options to use. The on-line help within the configuration tool should provide an explanation of what each option is for. Select the appropriate options to the best of your knowledge.

    After configuring the options you should compile and install the new kernel as per the Kernel HOWTO.

  5. #5
    Join Date
    May 2008
    Posts
    432

    Creating the Device Files

    Creating the Device Files

    For proper operation, device file entries must be created for the sound devices. These are normally created for you during installation of your Linux system. A quick check can be made using the command listed below. If the output is as shown (the date stamp will vary) then the device files are almost certainly okay.

    % ls -l /dev/sndstat
    crw-rw-rw- 1 root root 14, 6 Apr 25 1995 /dev/sndstat
    Note that having the right device files there doesn't guarantee anything on its own. The kernel driver must also be loaded or compiled in before the devices will work (more on that later).

    In rare cases, if you believe the device files are wrong, you can recreate them. Most Linux distributions have a /dev/MAKEDEV script which can be used for this purpose.

  6. #6
    Join Date
    May 2008
    Posts
    432

    Booting Linux and Testing the Installation

    Booting Linux and Testing the Installation

    You should now be ready to boot the new kernel and test the sound drivers. Follow your usual procedure for installing and rebooting the new kernel (keep the old kernel around in case of problems, of course).

    During booting, check for a message such as the following on powerup (if they scroll by too quickly to read, you may be able to retrieve them with the dmesg command):

    Sound initialization started
    <Sound Blaster 16 (4.13)> at 0x220 irq 5 dma 1,5
    <Sound Blaster 16> at 0x330 irq 5 dma 0
    <Yamaha OPL3 FM> at 0x388
    Sound initialization complete
    This should match your sound card type and jumper settings (if any).

    Note that the above messages are not displayed when using loadable sound driver module (unless you enable it, e.g. using insmod sound trace_init=1).

    When the sound driver is linked into the kernel, the Sound initialization started and Sound initialization complete messages should be displayed. If they are not printed, it means that there is no sound driver present in the kernel. In this case you should check that you actually installed the kernel you compiled when enabling the sound driver.

    If nothing is printed between the Sound initialization started and the Sound initialization complete lines, it means that no sound devices were detected. Most probably it means that you don't have the correct driver enabled, the card is not supported, the I/O port is bad or that you have a PnP card that has not been configured.

    The driver may also display some error messages and warnings during boot. Watch for these when booting the first time after configuring the sound driver.

    Next you should check the device file /dev/sndstat. Reading the sound driver status device file should provide additional information on whether the sound card driver initialized properly. Sample output should look something like this:

    % cat /dev/sndstat
    Sound Driver:3.5.4-960630 (Sat Jan 4 23:56:57 EST 1997 root,
    Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586)
    Kernel: Linux fizzbin 2.0.27 #48 Thu Dec 5 18:24:45 EST 1996 i586
    Config options: 0

    Installed drivers:
    Type 1: OPL-2/OPL-3 FM
    Type 2: Sound Blaster
    Type 7: SB MPU-401

    Card config:
    Sound Blaster at 0x220 irq 5 drq 1,5
    SB MPU-401 at 0x330 irq 5 drq 0
    OPL-2/OPL-3 FM at 0x388 drq 0

    Audio devices:
    0: Sound Blaster 16 (4.13)

    Synth devices:
    0: Yamaha OPL-3

    Midi devices:
    0: Sound Blaster 16

    Timers:
    0: System clock

    Mixers:
    0: Sound Blaster
    The command above can report some error messages. "No such file or directory" indicates that you need to create the device files (see section 4.3). "No such device" means that sound driver is not loaded or linked into kernel. Go back to section 4.2 to correct this.

    If lines in the "Card config:" section of /dev/sndstat are listed inside parentheses (such as "(SoundBlaster at 0x220 irq 5 drq 1,5)"), it means that this device was configured but not detected.

    Now you should be ready to play a simple sound file. Get hold of a sound sample file, and send it to the sound device as a basic check of sound output, e.g.
    % cat endoftheworld >/dev/dsp
    % cat crash.au >/dev/audio
    (Make sure you don't omit the ">" in the commands above).

    Note that, in general, using cat is not the proper way to play audio files, it's just a quick check. You'll want to get a proper sound player program (described later) that will do a better job.

    This command will work only if there is at least one device listed in the audio devices section of /dev/sndstat. If the audio devices section is empty you should check why the device was not detected.

    If the above commands return "I/O error", you should look at the end of the kernel messages listed using the "dmesg" command. It's likely that an error message is printed there. Very often the message is "Sound: DMA (output) timed out - IRQ/DRQ config error?". The above message means that the driver didn't get the expected interrupt from the sound card. In most cases it means that the IRQ or the DMA channel configured to the driver doesn't work. The best way to get it working is to try with all possible DMAs and IRQs supported by the device.

    Another possible reason is that the device is not compatible with the device the driver is configured for. This is almost certainly the case when a supposedly "SoundBlaster (Pro/16) compatible" sound card doesn't work with the SoundBlaster driver. In this case you should try to find out the device your sound card is compatible with (by posting to the comp.os.linux.hardware newsgroup, for example).

    Some sample sound files can be obtained from ftp://tsx-11.mit.edu/pub/linux/packa...data-0.1.tar.Z

    Now you can verify sound recording. If you have sound input capability, you can do a quick test of this using commands such as the following:

    # record 4 seconds of audio from microphone
    EDT% dd bs=8k count=4 </dev/audio >sample.au
    4+0 records in
    4+0 records out
    # play back sound
    % cat sample.au >/dev/audio
    Obviously for this to work you need a microphone connected to the sound card and you should speak into it. You may also need to obtain a mixer program to set the microphone as the input device and adjust the recording gain level.

    If these tests pass, you can be reasonably confident that the sound D/A and A/D hardware and software are working.

Similar Threads

  1. Installing and Configuring NIS in Linux
    By Xiomar in forum Tips & Tweaks
    Replies: 3
    Last Post: 13-11-2010, 05:44 AM
  2. Configuring ssl with fetchmail in linux
    By Chilton in forum Networking & Security
    Replies: 3
    Last Post: 07-04-2010, 07:25 PM
  3. Configuring ethernet in linux
    By BansiJI in forum Operating Systems
    Replies: 4
    Last Post: 18-03-2010, 10:25 PM
  4. Finding and configuring IP address in Linux
    By NetWorkInG in forum Operating Systems
    Replies: 5
    Last Post: 12-03-2010, 07:04 PM
  5. Linux doesn't support AIM sound ?
    By Asaph in forum Operating Systems
    Replies: 3
    Last Post: 18-03-2009, 01:46 PM

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Page generated in 1,713,905,217.29073 seconds with 17 queries