Can someone teach me to compile a kernel :)

Alright if not teach at least point me to some up to date guides or something like that.

And I have a few questions like…

After compiling how will I setup audio?
Power management, how will I set that up?
Will performance improve by compiling my own?

I already know that I will need to compile drivers like vga card and website my self.

Thanks :slight_smile:

I have to say, I’m rather curious too. I’ve come very close to compiling my own kernel a few times, but I’ve never actually managed it.

Before the Ralink wireless internet card drivers were merged into the mainline kernel, I had to try to compile my own kernel with a module for the driver but had to give up because it just seemed ludicrously impractical and time-consuming.

I spent hours answering hundreds of questions about what should be enabled in my kernel and what should not. After about 3 hours I was half way into the process and decided to take a short break. I forget why, but I was unable to continue answering this seemingly endless supply of questions when I came back (I think the battery on my laptop ran out or something like that).

After that, I just gave up. It just seemed far too impractical and I never even got as far as worrying about how to make my self compiled kernel actually work. There must surely be a more sensible way to get it done because I know there’s plenty of people that routinely configure and compile the kernel.

How To Compile A Kernel - The SuSE Way | HowtoForge - Linux Howtos and Tutorials

How to build Linux kernel suse
[leave off the ‘suse’ for generic instructions.]*

I have a very good openoffice document that i saved from a site but don’t remember the address i just have the file and not sure where to store to be able to post a link to it:confused:

Edit: found a spot to host it heres a link if you want it

it’s easy…

  1. configure your kernel with make xconfig
  2. after the above step, type make - this will compile the kernel and its modules
  3. when make is done, type make modules_install
  4. when the above is done, type make install

make sure when configuring the kernel to change its default name under General options so it won’t overwrite the current one. change the -default to something else

Honestly? Probably not.

There are many people who pride themselves in rolling their own kernels, I’m one myself. I used to insist on having the -ck patches, or dance the bleeding edge line by running the -mm kernels, or simply using the tweaks to optimize the kernel for my specific system, etc.

But I’d be lying if said that I ever saw a drastic improvement, though I do miss the -ck patches because they did seem to make the desktop snappier. I won’t disagree that the kernel can improve performance, but I think that there are enough bottlenecks in the average system to render incremental kernel optimizations moot for the average user, unless you really have a specific goal in mind.

Rolling your own kernel is a great way to understand how it operates from working through the config options, or to try new patches for performance of functionality (and applying patches is a different topic), or to take advantage of newer drivers that may not be present in the existing kernel. I certainly wouldn’t discourage anyone from learning about the kernel and how to compile, it’s one of the most fundamental benefits of using linux.

BUT — if you’re simply looking to make your system “faster”, it’s not a quick fix. You may find the inconvenience outweighs any perceived benefit.

Just my 2c…

Hope this helps…


thanks everyone I am going to start reading those links I got

take a look at broch’s one too
i find it the most useful from what i’ve read on topic :slight_smile:

thanks I will read it right now

Alright so I remember last time I tried to compile a kernel, I had 2 main problems after compiling, audio was gone and power management was well finished, no suspend to ram or disk, if anyone has advice on that then it will be appreciated.

you probably didn’t enable some audio modules and the power management features of the kernel. If you don’t wanna start configuring the kernel from zero, then copy your /boot/config-$(uname -r) file to /usr/src/linux/.config … eg as root do this…

cp /boot/config-$(uname -r) /usr/src/linux/.config

that way, when you do make xconfig you will load the config of your current running kernel which will save you time. Then you can start tweaking things. Like enable high resolution timers (1000 Hz), enable full preemptiveness, enable control groups, choose the right CPU architecture, etc

oh ok thanks, u think I should wait till kernel 2.6.26’s stable release or try compiling it right now? :smiley:

you choose, i’d personally wait till 2.6.26 comes out, but if your hands are really itchy then get 2.6.26-rc8 and compile it. rc8 will be the last rc (i hope) before 2.6.26 goes mainstream

also have a look here for a SUSE HEAD kernel - RepoView: SUSE Development Kernel Of The Day (openSUSE_Factory) you can grab the kernel-source package from there, make sure it’s the right archtiecture

thanks a lot :slight_smile: