Gentoo Linux Kernel Guide Sven Vermeulen Brandon Low Daniel Drake Carl Anderson Jorge Paulo Benny Chuang Gregorio Guidi This document gives you an overview on all kernel sources that Gentoo provides through Portage. 0.7.4 November 02, 2004 Introduction

As with everything else in Gentoo Linux, the philosophy of the Gentoo Kernel team is to give you, the user, as much freedom of choice as possible. If you take a look at the output of emerge -s sources you see a large variety of kernels to choose from. In this document, I will attempt to give you a brief rundown of the goals of each of the patch sets, which we at Gentoo design, and also explain the other kernel sources we make available to you.

Supported kernel packages
genkernel

Genkernel is a kernel toolset that can be used to autodetect your hardware and configure your kernel automatically. This is usually recommended for users who do not feel comfortable about compiling a kernel manually.

For more information, please read the Gentoo Linux Genkernel Guide.

General purpose: gentoo-sources and gentoo-dev-sources

For most users, the recommended kernel sources are the gentoo-sources. The gentoo-sources package contains various kernel patches, designed to improve user experience with respect to different areas. Speaking of security: you can find support for grsecurity, together with other security enhancements and, naturally, all the recent fixes for known vulnerabilities. The included patches deal also with performance (including tweaks for desktop usage and support for recent hardware) and features (supermount, bootsplash, the latest NTFS drivers, and more).

For users looking to take advantage of the new features, stability, and performance of Linux 2.6, we provide gentoo-dev-sources. This package consists of a minimal patchset providing fixes and enhancement for stability and security. This kernel will become our recommended default at some point in the near future.

The gentoo-sources (together with gentoo-dev-sources) absorb most of the resources of the Gentoo kernel team. They are brought to you by a group of talented developers, which can count on the expertise of popular kernel hacker Greg Kroah-Hartman, maintainer of udev and responsible for the USB and PCI subsystems of the official linux kernel.

Plain kernels: vanilla-sources and development-sources

The next kernel sources that many of you will probably be familiar with as Linux users are the vanilla-sources. These are the official 2.4 kernel sources released on http://www.kernel.org/, maintained (contrary to popular belief) not by Linus Torvalds himself, but by Marcelo Tosatti. Linus is the leader of active kernel development, but as he is only one man, he passes off the maintenance of the stable 2.4 kernel branch to someone he can trust to handle it once it has stabilized. Thus, Alan Cox became the maintainer of the Linux-2.2 kernel series and Marcelo Tosatti became the maintainer of the Linux-2.4 kernel series. This is what all the other patch sets in the 2.4 series are based on. Marcelo has been doing an outstanding job with its maintenance and it can be counted on for stability and up-to-date (if not bleeding edge) hardware support.

The development-sources ebuild provides the stable 2.6 Linux kernel. As opposed to what the name might suggest, this kernel source is completely stable and production-ready. This is the official 2.6 kernel released on http://www.kernel.org/.

For servers: hardened-sources and hardened-dev-sources

hardened-sources is based on Linux 2.4 and is targetted at our users running Gentoo on server systems. It provides patches for the various subprojects of Gentoo Hardened (such as support for LSM/SELinux and GRSecurity), together with stability/security-enhancements. Check http://www.gentoo.org/proj/en/hardened/ for more information.

hardened-dev-sources serves the same purpose as hardened-sources but is based on the newer Linux 2.6 kernel base.

The following USE-flags can be set to select optional patches:

selinuxSubstitute grSecurity with SELinux support
FlagsDescription
Architecture dependent kernels

alpha-sources, hppa-sources, hppa-dev-sources, ia64-sources, mips-sources, pegasos-dev-sources, sparc-sources and xbox-sources are, as their names suggest, are patched to run best on specific architectures. They also contain some of the patches for hardware and features support from the other patch sets mentioned above and below. Kernel sources that contains a "-dev-" means that the sources use the 2.6 kernel instead of the 2.4 kernel.

Unsupported kernel packages

Now I'm going to try to briefly describe some of the other sys-kernel/*-sources which you saw scroll by when you ran emerge -s sources. Lets take them in alphabetical order. These kernels are provided as a courtesy only and the various patch sets are not supported by ourselves.

aa-sources

First we have aa-sources. This is Andrea Arcangeli's patch set. Andrea is known as an amazing coder by many other kernel hackers. His kernel patch set has some of the most aggressively tuned VM (Virtual Memory) patches known to mankind.

It also provides User Mode Linux support (check out our UML Guide for more information) and the latest TUX Webserver (an in-kernel webserver).

If you have Memory Management troubles with other kernels, aa-sources can be your solution. If you want to optimize Linux's Memory Management for your system, aa-sources is definitely what you need.

Visit http://www.kernel.org/pub/linux/kernel/people/andrea/kernels/v2.6 for more information about all the patches in these kernel sources.

Andrea has not been maintaining his patchsets recently, and as a result of this, this kernel is a bit out of date and may be removed from portage soon.

ck-sources

ck-sources is Con Kolivas's kernel patch set. This kernel is HIGHLY tuned for desktop performance at the expense of throughput and some of the scheduler's ability to prioritize applications. Con Kolivas benchmarks kernels to find the best combination of features for desktop use. See http://kernel.kolivas.org for more information on Con and his patches.

grsec-sources

The grsec-sources kernel source is patched with the latest GRSecurity updates (GRSecurity version 2.0 and up) which includes, amongst other security-related patches, support for PaX.

mm-sources

The mm-sources are based on the development-sources and contain Andrew Morton's patch set. They include the experimental and bleeding-edge features that are going to be included in the official kernel (or that are going to be rejected because they set your box on fire). They are known to be always moving at a fast pace and can change radically from one week to the other; kernel hackers use them as a testing ground for new stuff.

If you really want to live on the edge and you think development-sources are for wussies, then try out mm-sources. Be warned that this kernel is highly experimental and doesn't always work as expected.

openmosix-sources

The openmosix-sources are patched to support the openMosix system (like MOSIX but Open Source). For more information see http://www.openmosix.org.

pac-sources

The pac-sources kernel tree is patched with Bernhard Rosenkraenzer's (bero) patches. Be warned that this kernel is quite out of date and may be removed from portage soon.

selinux-sources

selinux-sources from http://www.nsa.gov/selinux are patches for the security conscious to support the LSM (Linux Security Modules) and the Flask Security Architecture.

usermode-sources

usermode-sources are the User Mode Linux kernel patches. This kernel is designed to allow Linux to run within Linux to run within Linux to ... User Mode Linux is intended for testing and virtual server support. For more information about this amazing tribute to the stability and scalability of Linux, see http://user-mode-linux.sourceforge.net.

For more information on UML and Gentoo, read the Gentoo UML Guide.

win4lin-sources

win4lin-sources are patched to support the userland win4lin tools that allow Linux users to run many Microsoft Windows (TM) applications at almost native speeds. See http://www.netraverse.com/ for more information.

wolk-sources

wolk-sources contains the Working Overloaded Linux Kernel from http://sourceforge.net/projects/wolk. This kernel contains many patches of a wide variety, all combined into the kernel with extreme care. This allows you to configure nearly every one into and out of the kernel at compile time -- so the kernel will work with nearly any combination of the patches.

If you need a certain combination of patches that you cannot find in other kernel sources, WOLK is definitely worth a shot.

Previously provided kernel packages
gaming-sources

gaming-sources was a 2.4 kernel with a broken scheduler patch applied which enhanced performance in games. It was removed from portage because some problems accumulated, and the scheduler work being done in Linux 2.6 at the same time offered the same or even better performance.

gs-sources

gs-sources, once advertised as our server-style patch set, became a testing ground for prerelease 2.4 kernels. Unfortunately, the maintainer became inactive and this kernel detoriated with new system updates and became out of date.