Troubleshooting
From Open Sound System
This page provide general troubleshooting tips. If these cannot help in solving a problem with OSS, you may wish to consult the 4front support forum.
Contents
General
- Always read your driver's manpage. You can get the name of driver from 'ossinfo'.
- Always test with osstest.
- When consulting the forum, attach the output of 'ossinfo -v3' and 'ossmix'.
How do I...
- Control volume, change mixer settings - ossmix (command line), ossxmix (GUI)
- Record and play sound - ossrecord, ossplay (though you should probably use more dedicated software like Audacity)
- Start and shut down OSS - soundon, soundoff (both require root). Restarting OSS is just a matter of "soundoff" followed by "soundon".
- Save and restore volume and other mixer settings - savemixer (saving requires write permissions for mixer.save file, or using '-f' switch to select another filename)
- Build OSS from source
- Other Tips And Tricks
I can't hear any sound!
- Did OSS load at all? Run the command to examine loaded modules specific to your OS (lsmod, kldstat, etc.) to find out.
- Does osstest work?
- Are the outputs muted in the mixer?
- Do the device nodes (/dev/dsp, /dev/oss directory, etc.) exist (osstest should complain if they don't)? If not, restarting OSS would probably create them. However, the following two commands should create them without need to restart:
- sudo ossdevlinks -r -v
- sudo ossdetect -d -v
- Is the default output (the one linked to /dev/dsp) the one connected / outputting sound in osstest? If not, see here how to change that.
- HDAudio: Are the jacks detected by OSS as output, actually the jacks connected to the speaker?
- HDAudio: Some of these devices needs to be set up in the mixer before they can play sound. Run "osstest -l" in the background and "ossxmix" in the foreground. Change settings in the mixer until you hear a sound or exhaust all settings. A similar technique can be used for testing recording (using "ossrecord - | ossplay -" instead of osstest).
- Ich: Some computers have an inverted external amplifier settings, so setting ac97_amplifier to 0 in $OSSLIBDIR/conf/osscore.conf would help. Gateway notebooks (Gateway 4542GP, 4028GZ, 7326GZ) in particular often have this problem.
- $OSSLIBDIR is almost always /usr/lib/oss, and can be determined exactly by the contents of /etc/oss.conf.
- Is this an hardware issue?
- Are the speakers muted?
- Is the soundcard connected correctly to the speakers?
- Do other drivers available for your OS (e.g. ALSA for Linux, FreeBSD native) work?
I hear noises!
- Many soundcards' hardware requires output mixers be set to less than maximum (even down to 60% with a few cards).
- Set vmix0-src to an higher setting using a mixer program like ossxmix.
- Is the cable from the soundcard to the speakers connected correctly? Could it be too long?
- Build and use OSS using the source from the public hg repository, perhaps a newer version will work better.
I can't get multiple sound clients to play on the same device!
- OSSv4.0 for the FreeBSD platform doesn't support multiple clients to same device node on /dev/dsp device node (OSSv4.0 does support this on other platforms like Linux). It instead splits the mixing to separate devices: /dev/dsp1, /dev/dsp2, etc. Either set programs to use separate devices, or use a sound server like aRts, esd, etc., or upgrade to v4.1 which supports multiple clients on FreeBSD 7.1 and up.
- Is vmix loaded and attached to the device? (Check if 'ossinfo -v3' shows more than one engine for the output device).
- In OSS 4.0, (Doesn't apply to build 1016:) If vmix is not attached, make sure vmix1_masterdev in $OSSLIBDIR/conf/vmix.conf is set to the output device's device index (this can be determined via 'ossinfo -a'). ($OSSLIBDIR is typically /usr/lib/oss).
- In OSS 4.1, 'vmixctl' command is used instead of vmix.conf (requires root permissions).
- Are the vmix controls in ossxmix unmuted?
I can't get multichannel/5.1 output to play!
- Some configurations require more than one cable connected to the speaker set. Make sure that as many cables as required are connected.
- Some devices have the multich output at a different device node than the regular one, use /dev/dsp_multich rather than /dev/dsp as /dev/dsp_multich is always linked to the correct device. In the case of Dolby digital/AC3, /dev/dsp_ac3 is the best device instead of /dev/dsp_multich. It is possible that the node /dev/dsp_multich is symlinked to doesn't have vmix attached, so multiple clients won't play. See the tip above for how to fix this.
- Some devices require changing settings in the mixer (e.g. by 'ossmix' or 'ossxmix') to work.
- sblive/audigy devices may require use of the sblive_digital_din (or audigy_digital_din) option in the device configuration file - see driver manpage.
- In recent OSS versions (4.1 and OSS 4.0 build 1016 and above), set vmix0-channels to "Multich" in the mixer.
- In versions of OSS before 4.0 build 1016, set vmix1_multich=1 in $OSSLIBDIR/conf/vmix.conf ($OSSLIBDIR is typically /usr/lib/oss).