Features/KernelOptimizedAutoBuild

= Kernel Optimized AutoBuild =

Summary
A feature that would let us get the current kernel source and re-compile it according to a pre-selected profile.

Owner

 * Name:
 * Email:

Current status
-* Last updated: 2010-07-12
 * Targeted release:  Fedora 14
 * Percentage of completion: 0%

Detailed Description
This feature (probably, a yum plugin or a python script) would let me compile my own kernel and modules in a nice and automated way; according to a pre-configured profile that fits the user's processor and current hardware (lscpi and lsusb output) and it would eliminate all the unneeded drivers and modules from it.

The kernel source would be pulled from kernel.org and it's mirrors (maybe fedora can provide it to) or a git repo so unneeded sources can be omitted. Fedora's patches would be applied according to the profile used. Also, the user, would have a chance to put his/her own patches.

A kernel and it's modules would be built and installed next to the general/default use kernel.

Benefit to Fedora
It would create a custom kernel and modules for each machine; letting the users compile their own and according to their needs. Fedora would save space on repos and compile time on mock/koji and, at the same time, provide custom kernels for each case.

Scope
It requires writing a python script or a yum plugin that can do all this; providing tools to add patches defined by fedora and the user's custom patches as well.

Also, we would have to define system profiles (netbook/desktop/server/virtual or phenom/coreduo/atom/virtual)

Test Plan

 * 1) Run it on various systems to see if the kernel compiles correctly and doesn't leave hardware behind.
 * 2) Test several profiles and it's results

User Experience
The user should get a smaller and optimized kernel; with the modules it needs. It should work a lot better and prevent the problems brought by kernel "generalizaton".

Dependencies

 * Python
 * Kernel.org's supported source
 * Container for Fedora's kernel patches

Contingency Plan

 * Go back to using general/default kernel at startup.

Documentation

 * Gentoo does this as general procedure:

Release Notes
Fedora 14 compiles it's own kernel and modules according to your specific needs. KOAb checks your hardware and compiles only the needed modules and kernel in a way that is best for your system.

Future
It could be integrated with anaconda in Fedora 15 ;)