OSS

This modest contribution will guide you get the new Open Sound System v4 sound support. Users of v3 are encouraged to use the not so maintained v4 version which has a BSD and GPL-2 licences. You can build everything by hand, see end of the article, the following will use Portage package manager.

Installation
First off, you will have to have layman with mercurial support or add an overlay which have OSS ebuilds.

Or else you may write your ebuild or get if from another overlay, here for example.

There's not much update in the official oss-overlay so you can take an ebuild from another overlay. There are now USE flags in media-sound/oss::bar so that one can build only a few drivers instead of all and OSS_CARDS environment variable can be used to build a few drivers easily.

That previous ebuild try to keep up with upstream with a nice additions like the latest patches. Now, media-sound/oss uses unusual way to enforce FLAGS (CFLAGS, CPPFLAGS, CXXFLAGS). So anybody who has the time to edit the build is welcomed.

Configuration
Unlike ALSA OSS has fewer complexity to configure a la `~/.asoundrc' so you won't need any `soundon.user' if you don't have a complex set up or simply more than one sound card. In the latter case, you may want to keep a `soundon.user' file to be able to choose your first card ( first card equal default card) and then put a few line to correct devices nodes which can be a little problematic.

The previous script will check if there are devices nodes, so a sound card, with CMI878x driver and then relink almost everything to it or else use HDAudio.

Or else, put that file to something like `~/.scripts/soundon.user' and then edit `/etc/init.d/oss' to your liking.

Now you can enjoy Open Sound System. I found the sound with OSS4 to be better than what I can get with ALSA. There was a time when my CMI878x sound works only with OSS but a few things changed.

OSS4 has a sofware mixer so using some software killer like pulseaudio is unnecessary. I did not yet use ossmixd so I don't really now how that works but ossxmix is very handy to manage devices and mixers.

External Resources
configuring applications for OSSv4 building OSSv4 from source