This may sound like drastic measures to you, but I would:
1) su - (switch user to root and root's environment)
2) cd /usr/src
3) rm linux
4) ln -s /usr/src/linux /usr/src/linux-2.4.29
5) print or at least save your 2.6.12.3 .config file to read, but not to use in your system
6) rm -rf linux-2.6.12.3
Then make a directory for building kernels, since it sounds like
you are ready to do that on your system. From /home/<username>
"mkdir /home/<username>/build/"
and then copy linux-2.6.12.3.tar.bz2 into that directory from
wherever it is now; then untar it by issuing as a normal user
"tar -xvjf linux-2.6.12.3.tar.bz2" then "cd linux-2.6.12.3" and
now we're ready to start fresh.
This is why I told you to copy your 2.6.12.3 .config file, or to
print it. You don't want to use it to "make oldconfig" because
you made it after using a 2.4 .config, so it will not have the
correct 2.6 configuration. So just look at the choices you made
in either the printed version, or in a terminal if you want to
read it from your drive, but do not run "make oldconfig" and use
it.
Issue as a normal user "make gconfig" or "make xconfig" if you
have a preference. Now you can choose the support you picked
in the 2.6.12.3 .config file you saved. Be sure to look carefully for
anything you might have missed last time. After you are finished,
then you can save the new .config file you just made in
/home/<username>/build/linux-2.6.12.3/
Issue as a normal user "make" and after it finishes you will need
to issue "su" to switch to root to finish. Stay in the same directory,
there is no reason to cd to anywhere else. Now as root issue
"cp System.map /boot/System.map-2.6.12.3 ; ln -sf /boot/System.map-2.6.12.3 /boot/System.map"
and note that those two commands are run at one time, and that
the semi-colon (;) separates them. You can copy and paste that.
Issue "make modules_install" to install your modules. Then issue
"cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.12.3" to copy your
new kernel image to the place where your bootable kernel is found.
Now add that new kernel image to your bootloader, which I am
assuming is LiLO. Still in the same directory as root issue
"pico /etc/lilo.conf" (or use your favorite editor) and add this
Code:
image = /boot/vmlinuz-2.6.12.3
root = /dev/sda1 <-- put your / (root) partition here
label = 2.6.12.3
read-only
after the line in LiLO that says
# Linux bootable partition config begins
Make sure you still have your 2.4.29 image in LiLO, so that you can
boot to it if your new kernel does not work. Now you can issue
"/sbin/lilo" and if there are no errors, close out all apps and reboot.
I did not tell you to remove the System.map files in /boot because I
don't know when you created them or which kernel they belong to.
You have System.map-ide-2.4.29 and now you will also have the new
System.map-2.6.12.3 and those will be found without a symlink.
I did not tell you to remove the vmlinuz files from /boot because you
have vmlinuz-ide-2.4.29 for your default kernel, and perhaps vmlinuz
for the 2.4.29 you compiled, and now you will have vmlinuz-2.6.12.3
which will be this new kernel image.
If you would like, before you do the above steps, post the /etc/lilo.conf
file you have now. We can help you edit it if you would like help.
Edit: Now that I have seen your /etc/lilo.conf you can omit the
steps in this post of editing /etc/lilo.conf and running /sbin/lilo because
your /etc/lilo.conf file is okay already.