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:
- Know how to ask politely.
- Know how to compile.
- 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