Fedora Core 4 Kernel Compilation mini-HOWTO

Last update: September 19 2005

Compile and installation procedure for  the Fedora Core 4 SMP kernel and the Marvell SATA driver module.
Brian Zoller (bkzoller at yahoo dot com)

1) Install the kernel and kernel source.

rpm -ivh i386/kernel-2.6.12-1.1447_FC4.i686.rpm            (uniprocessor)
rpm -ivh i386/kernel-devel-2.6.12-1.1447_FC4.i686.rpm      (uniprocessor)
rpm -ivh i386/kernel-smp-2.6.12-1.1447_FC4.i686.rpm        (SMP)
rpm -ivh i386/kernel-smp-devel-2.6.12-1.1447_FC4.i686.rpm  (SMP)
rpm -ivh i386/kernel-doc-2.6.12-1.1447_FC4.noarch.rpm
rpm -ivh SRPMS/kernel-2.6.12-1.1447_FC4.src.rpm

2) OPTIONAL -- Display the contents of the kernel source RPM.

rpm -qpl SRPMS/kernel-2.6.12-1.1447_FC4.src.rpm

(shows a list of kernel source files and patches)

3) Configure the bootloader for the new kernel.

vi /boot/grub/grub.conf   (_OR_) vi /etc/lilo.conf

(kernel files should already be listed, otherwise add the new kernel)

4) Reoot the machine and select the new kernel at the boot prompt.

init 6 (or telinit 6  or reboot )

5) Verify SMP options and kernel version numbers.

For uniprocessor, change "buildsmp" to 0 and change "_FC4smp" to "_FC4":

cd /usr/src/redhat/SPECS
vi kernel-2.6.spec
[...]
%define buildup 1
%define buildsmp 1
[...]
%define sublevel 12
%define kversion 2.6.%{sublevel}
[...]
%if %{FC4}
%define release %(R="$Revision: 1.1447 $"; RR="${R##: }"; echo ${RR%%?})_FC4smp
%endif
[...]
perl -p -i -e "s/^SUBLEVEL.*/SUBLEVEL = %{sublevel}/" Makefile
perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}/" Makefile

6) Prepare the source code for compilation.

rpmbuild -bp --target i686 kernel-2.6.spec
cd /usr/src
ln -s redhat/BUILD/kernel-2.6.12/linux-2.6.12 linux
ln -s redhat/BUILD/kernel-2.6.12/linux-2.6.12 linux-2.6
ln -s redhat/BUILD/kernel-2.6.12/linux-2.6.12 linux-2.6.12

7) Check the kernel version in the Makefile.

cd /usr/src/linux
vi Makefile
EXTRAVERSION = -1.1447_FC4smp

If the value of EXTRAVERSION is "-prep", go back to step 5.

8) Clean up old files in the source code directory.

cd /usr/src/linux
cp -p .config config.org
make mrproper

9) OPTIONAL -- Configure the desired kernel options.

cd /usr/src/linux
cp -p /boot/config-2.6.12-1.1447_FC4smp .config
make xconfig   (_OR_) make gconfig   (_OR_) make menuconfig

(Processor type and features --> Processor family --> Pentium-III/Celeron/Xeon)

(configure additional modules and options, if desired)

(Save & Exit)

10) Compile the kernel.

cd /usr/src/linux
make bzImage
make modules

11) OPTIONAL -- Install the recompiled kernel and modules if any options were changed during step 9.

cp -p arch/i386/boot/bzImage /boot/vmlinuz-2.6.12-1.1447_FC4smp
cp -p .config /boot/config-2.6.12-1.1447_FC4smp
make modules_install

12) OPTIONAL -- After choosing to install the kernel in step 11, reboot the machine and select the new kernel at the boot prompt.

init 6 (or "telinit 6" or "reboot")

13) Download the patched Marvell SATA driver.

http://www.keffective.com/mvsata/FC3/mvsata-3.4.2-1.0_fc4.tgz

14) Compile and install the driver.

cd /tmp
gtar zxvf mvsata-3.4.2-1.0_fc4.tgz
cd mvsata-3.4.2-1.0_fc4/LinuxIAL
make clean
make
insmod mv_sata.ko
cp -p mv_sata.ko /lib/modules/2.6.12-1.1447_FC4smp/kernel/drivers/scsi/
depmod -ae -F /boot/System.map-2.6.12-1.1447_FC4smp 2.6.12-1.1447_FC4smp
mkinitrd -v -f /boot/initrd-2.6.12-1.1447_FC4smp.img 2.6.12-1.1447_FC4smp

15) OPTIONAL -- Load the driver automatically when booting the machine.

echo "alias scsi_hostadapter mv_sata" >> /etc/modprobe.conf



Document made with Nvu