Recompiling the Fedora Core kernel

The ALSA driver in Fedora Core 3 for my onboard VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller produces a large amount of hiss. I've been unsuccessful in eliminating the hiss, so I decided to revert to the (deprecated) Open Sound System (OSS) driver. OSS support is not compiled into the stock Fedora Core 3 kernel, so it will have to be recompiled.

Here are step-by-step instructions for recompiling the Fedora Core 3 kernel. Please see the Fedora Core 3 Release Notes for more information.

1. Install the rpm-build and redhat-rpm-config packages; the qt-devel package is needed for make xconfig below.

sudo yum -y install rpm-build redhat-rpm-config qt-devel


2. Install the kernel source RPM. This example assumes you are running the latest Fedora Core 3 kernel. If not, manually download the latest version from Fedora Core 3 updates.

sudo rpm -Uvh ftp://mirrors.kernel.org/fedora/core/updates/3/SRPMS/kernel-`uname -r`.src.rpm

3. "Explode" the source tree from the source RPM for your system's architecture.

cd /usr/src/redhat/SPECS
sudo rpmbuild -bp --target=`uname -m` kernel-2.6.spec

4. Change the EXTRAVERSION line in the kernel source Makefile to a value of your choice. I chose oss so the name of my new kernel would be 2.6.10-oss.

cd /usr/src/redhat/BUILD/kernel-2.6.10/linux-2.6.10
vi Makefile

Change:
EXTRAVERSION = -prep

To:
EXTRAVERSION = -oss

5. Copy the appropriate kernel configuration file for your architecture from the configs subdirectory.

sudo cp configs/kernel-2.6.10-i686.config .config

6. Configure the kernel.

make xconfig

Under Sound, I deselected Advanced Linux Sound Architecture and selected Open Sound System (DEPRECATED) and VIA 82X686 Audio Codec (NEW).

7. Build and install the kernel.

sudo make bzImage

sudo make modules
sudo make modules_install
sudo make install

8. Configure the via82cxxx_audio module to load upon system boot.

# echo modprobe via82cxxx_audio >> /etc/rc.modules
# chmod u+x /etc/rc.modules

9. Reboot the system to begin using the new kernel. You may wish to modify /etc/grub.conf to select the new kernel (in this example, Fedora Core (2.6.10-oss)) as the default.

Back to brandonhutchinson.com.
Last modified: 04/01/2005