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