compiling 3.3.1 kernel in slackware 13

i am using slackware 13.37 and was using the default 2.6.37 kernel and decided to take the plunge and check out the 3.3.1 stable kernel.

here is a fast and dirty how to for recompiling your kernel in slackware –

download the kernel source
http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.3.1.tar.bz2

cd over to the directory we are building the kernel in
cd /usr/src

move the tarball over to the directory we are building the kernel in
mv /home/michael/linux-3.3.1.tar.bz2 .

unpack the tarball
tar -xvjf linux-3.3.1.tar.bz2

remove the sym link to the old kernel
rm linux

create a new sym link to the new kernel
ln -s linux-3.3.1/ linux

move into the new folder
cd linux

copy the old config over to use for the recompile
cp /boot/config .config

there are a few different options to use here – make menuconfig which is a ncurses based tool to configure the kernel. for this how to i used make xconfig which is a X based tool. there is also make config which is just awful and i would not recommend using it unless you have a lot of time.
make xconfig

compile the kernel – i used the -j3 because i have a dual core. use -jN where N is the number of cores you have +1
make bzImage

compile the modules
make -j3 modules

install the modules
make -j3 modules_install

remove the sym link for the old System.map, config and kernel
rm /boot/System.map
rm /boot/config
rm /boot/vmlinuz

now copy the new System.map, config and kernel over to /boot
cp arch/i386/boot/bzImage /boot/vmlinuz-3.3.1
cp System.map /boot/System.map-3.3.1
cp .config /boot/config-3.3.1

create the sym links for the new kernel
ln -s /boot/vmlinuz-3.3.1 vmlinuz
ln -s /boot/System.map System.map
ln -s /boot/config-3.3.1 config

now to modify your lilo.conf to show the new kernel on boot
vi /etc/lilo.conf

here is what my section of lilo looks like – make sure you change the /dev/ points to your partitions
# Windows bootable partition config begins
other = /dev/sda1
label = windows
table = /dev/sda
# Windows bootable partition config ends
# 2.6.37.6 start
image = /boot/vmlinuz-huge-smp-2.6.37.6-smp
root = /dev/sda6
label = 2.6.37.6
read-only
# 2.6.37.6 end
# 3.3.31 start
image = /boot/vmlinuz-3.3.1
root = /dev/sda6
label = 3.3.31
read-only
# 3.3.31 end

then run lilo to update the config
lilo

after the kernel has been added reboot
reboot

and when you load into the new kernel, assuming you dont get a kernel panic error, run uname -a and you will see the new kernel. for example, mine looks like this –
Linux quotidian 3.3.1-map-3-4-12 #1 SMP Tue Apr 3 13:15:09 EDT 2012 i686 AMD Athlon(tm) 64 X2 Dual Core Processor 4000+ AuthenticAMD GNU/Linux