A Guide to Recompiling the Kernel


Recommended Posts

I got a kernel panic :oops: :D

Couldnt mount the hard drive or something, which i imagine is pretty serious :p Im sure it just needs a little bit more care and adaptation from me, and i'll try later, but if anyone has any tips that would be appreciated.

Oh, by the way, im using SuSE and have been told that i shouldnt of just compiled 2.6.0 randomly and needed a SuSE-adapted kernel. How correct is this? Sounds a load of rubbish to me

The distro-specific kernels often have patches applied to them that the distro maker thinks need to be there. However it is entirely possible to get a non-distro kernel to load correctly. However jumping from a 2.4 kernel to a 2.6 kernel in many distros involves more than just upgrading the kernel. So far the only distro that I have had near complete success with doing that is slackware.

A major cause of kernel panics is an improperly configured kernel and not the kernel itself. You should be able to get a 2.6 kernel to load on almost any 2.4 based distro and get it to load, however somethings might not work correctly. I don't know the specifics on suse on how to get a 2.6 kernel to work with it, however I am positive that somewhere there is documentation on how to do it.

Link to comment
Share on other sites

My totally uneducated and unfounded conclusion is that it is to do with my boot loader settings. I basically ripped the current one and changed it where i saw fit but I did it in an excited and hurried state, i'll try and boot up back into 2.4 and see if i can fix it

Good tutorial btw (Y) I had never made it this far before!

Link to comment
Share on other sites

make install will not update lilo or grub automatically.

lilo you need to run /sbin/lilo to recycle the config once you have added the proper values in the lilo.conf file, grub, i dunno just add the correct values in the grub.conf file and youll have to restart anyways for th ekernel upgrade it will show up in the grub menu then. lilo on the other hand is different.

Link to comment
Share on other sites

make install will install the kernel for fedora. And it adds an extra entry. It will also install for suse, however an extra entry isn't added to grub and it overwrites the last entry. In fact make install is the best way to install it in gentoo. However this won't work on every distro off the bat for grub, but it can be configured to (I don't know how). I haven't had any success with make install and lilo.

Link to comment
Share on other sites

I got a kernel panic :oops: :D

Couldnt mount the hard drive or something, which i imagine is pretty serious :p Im sure it just needs a little bit more care and adaptation from me, and i'll try later, but if anyone has any tips that would be appreciated.

Oh, by the way, im using SuSE and have been told that i shouldnt of just compiled 2.6.0 randomly and needed a SuSE-adapted kernel. How correct is this? Sounds a load of rubbish to me

You probably forgot to enable reiserfs support or whichever fs you are using ... they're not all enabled by default. Hope this helps.

Link to comment
Share on other sites

when i followed the gentoo instructions i just ran make modules_install then added the entries manually guess this is sort of the same thing but i think i would prefer this way over make install

Link to comment
Share on other sites

gentoo you can't do make install without a little bit of effort. It really isn't worth it for gentoo, however with fedora it makes an initrd and appends it to the grub automatically. I believe that in order for fedora to properly function it needs this, and it is far easier just to let the make install make and install it.

Link to comment
Share on other sites

I think I enabled support for all file systems! Is this bad? Is there a way that I can find out what FS I am using? And also how do i find the hard drive that it should load from? I believe that its hda6 on my computer but thats a bit weird as i have one hard drive :s

Link to comment
Share on other sites

Adding support for all filesystems should not mess anything up, however it will affect the kernel size and might affect performance. If your linux is working you can check your fs in /etc/fstab. hda6 is the 6th partition on the 1st drive.

Link to comment
Share on other sites

  • 3 months later...

after doing;

make bzImage && make install modules modules_install

i didn't get the results I needed - probably because I needed to move some files from the usr/src directory (maybe an addition for the how-to?)

so I did the following -> make rpm

and it did (after taking a hour) and places it in /usr/src/redhat/RPMS/i386/ (and a src.rpm in /usr/src/redhat/SRPMS/)

so I was able to rpm the kernel (rpm -ihv kernel-..)

and I found a vmlinux matching the kernel version in /boot

and after that I needed to make a custom initrd using /sbin/initrd -something- (on a winbox now.. :rolleyes: ) because I have a RAID controller card installed..

manually edited the /boot/grub/grub.conf file

(copied previous linux startup line's and adjusted accordingly)

et voila :happy: new kernel up and running

it takes a bit longer but it worked twice for me..

Link to comment
Share on other sites

  • 2 months later...

it would be good if someone went over make menuconfig since lots of people are having problems with kernel panics and such. also, is there any way you can find .config files that are ready to go without make menuconfig? i'm sure that would make life a little bit easier for some.

Link to comment
Share on other sites

  • 2 weeks later...

after the kernel is put in /usr/src/ i make a symlink from the new kernel dir to linux.

then i copy my old .config to the new directory.

I then run a make menuconfig to check over the options

I then mount my /boot partition.

I then run this command: make; make modules modules_install install

I also run gentoo and grub as my bootloader as i find it is more robust than lilo.

btw, i have an old .config here: http://3nd3r.info/.config

Link to comment
Share on other sites

  • 4 weeks later...

Is it possible to save the current configuration of my precompiled kernel that came with Mepis and works beautifully with my hardware, and be able to use it with a newer self-compiled kernel? That way I can take out what I know for sure I don't need and yet still maintain a fully functional kernel that supports my needs.I have compiled from scratch with Gentoo before, but I really would rather not get into that again since it can be frustrating

Link to comment
Share on other sites

  • 5 months later...

You can better use the kernel of your distro, every version of the kernel has other compiling option RTFM, you cannot compile a 2.6 kernel with 2.4 kernel options without screwing things up.

Link to comment
Share on other sites

  • 5 months later...
tar -xzvf linux-2.6.0.tar.gz

cd linux-2.6.0

make menuconfig

After your machine takes a bit of time to compose the menus, you should see the Linux kernel menu system. The menu gives you the ability to choose which options are included in your kernel. After choosing these options, you'll be able to compile your kernel.

Compiling the kernel

First, type in the following.

make bzImage

If you use LILO as your boot manager, then type the following.

make install

If you configured your kernel to use modules, which many people want to do, you'll need to type in the following command.

make modules

make modules_install

This wont work, the proper way is to check your current .conf file of your distro, most distros uses specific options, like the initrd ramdisk size, SuSE uses automount for example.

The proper way is to always use

make clean && make mrproper

Never asume that the kernel is clean after a download!

Check if you use make menuconfig that it doesn't load your current .conf file, move it if necessary, otherwise you get all kinds of depraced warnings.

A distro kernel is a modified kernel with other options the vanilla kernel hasn't.

if you are ready and modified the kernel do

make bzImage

make modules

make modules_install

Then do make install.

Check the grub.conf

Remove the symlinks in the /boot dir and create new ones and point them to the old kernel.

reboot

Link to comment
Share on other sites

  • 3 months later...
  • Mindovermaster unpinned this topic
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.