Well, they said that 90% of the population would not notice the difference. But, since I have the right equipment, a good headset and a handful of ripped songs from original CD that I own, I think this could make the difference. To make it that nobody asking foolish question, I have set the requirement so that you could do this on your own:

  1. Know how to ask politely.
  2. Know how to compile.
  3. Can open a terminal.

If you can do that, then proceed.

Prerequisites

The new kernel configuration take OSS names as ALSA’s. This makes people can’t load OSS4 on vanilla kernel. If you compile your kernel, please make sure that OSS preclaimed is disabled. In menuconfig the option is in:

Device Drivers -> Sound card support -> Preclaim OSS device numbers

Make sure to uncheck there and you can have ‘alternative’ OSS implementation, i.e. OSS4.

Fortunately, the stock kernel from Debian and Ubuntu don’t implement that, cmiiw.

Compile the kernel, install it and you’re set. Oh, btw, don’t forget to install Mercurial, the DVCS. Opensound uses it instead of GIT (no flamewars intended).

Get the OSS4

The opensound source have moved to Sourceforge for some times now. So, the command:

$ hg --verbose clone http://opensound.hg.sourceforge.net/hgweb/opensound/opensound/

Wait and you are done.

Configure OSS4

Go to the source directory and creates an empty directory to build the source. It is a new, and a good, convention to seperate build directory and source directory.

$ cd opensound && mkdir bangun-gentoo64 && cd bangun-gentoo64

Let’s configure it:

$ ../configure --config-vmix=FLOAT --config-midi=YES --enable-timings

There is a bug in installing OSS4 to my work machine (Gentoo 64bit). It failed to install because it failed to copy libraries into “/usr/lib”. Apperantly, the path is a symlink to “/usr/lib64”. So, if you are in the 64bit and having trouble, you could edit Makefile in your build directory (mine is “opensound/bangun-gentoo64”). Change

OSSLIBDIR="/usr/lib/oss"

into

OSSLIBDIR="/usr/lib64/oss"

There is also a bug in the configure script that define the wrong value of maximum GRC  quality. Open “kernel/framework/include/local_config.h” and change

#define CONFIG_OSS_GRC_MAX_QUALITY 3

into

#define CONFIG_OSS_GRC_MAX_QUALITY 7

As I found out, there is a bug that makes me can’t install OSS4 because it failed to find “ubuntu_version_hack.inc”. The problem is because it doesn’t get copied. According to cesium, edit the  “setup/Linux/make.local” file and change

cp -R prototype/* /

into

(cd prototype; find -L . -type f | cpio -pud /)

That’s on line 6, in my case.

Compile and Install

Now, compile it and install it:

$ make -j4 && sudo make install

I edited the “/etc/oss.conf” and change the “/usr/lib/oss” into “/usr/lib64/oss”.

Reboot and enjoy. To enable OSS4, just do:

$ sudo soundon

Fin.

Reference:

Cesium. OSS4 Forum. http://www.4front-tech.com/forum/viewtopic.php?f=3&t=3543#p14102