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.
- 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).
I can't get sound/volume control from an application!
The Open Sound System on K486
In order to implement the open sound system on systems using the K486 kernel, it is necessary to ensure that the kernel build options are set as follows:
MTRR (Memory Type Range Register) support (MTRR) [Y/n/?] n x86 PAT support (X86_PAT) [N/y/?] n
Take a look at the segmentation fault troubleshooter.