Kernel erstellen

Vorbereitung

emerge module-rebuild
module-rebuild populate

Wenn genkernel verwendet wird:

emerge genkernel

Kernel neu erstellen

genkernel erstellt einen Kernel, der auf möglichst viele Hardware-Konfigurationen passt und dementsprechend groß ist. Bei einem per Hand erstellten Kernel muss man dafür genau wissen, welche Hardware man hat und entsprechend die Optionen einstellen.

Download

emerge gentoo-sources

Evtl. /usr/src/linux symlink auf die neue Sourcen setzen.

Mit genkernel

Auf Basis der Config des laufenden Kernels:

genkernel all

Mit völlig neuer generischer Config:

genkernel --kernel-config=/usr/share/genkernel/x86/kernel-config-2.6 all

Ohne genkernel

make menuconfig
make
make install

Kernel modifizieren

Mit genkernel

Die .config in /usr/src/linux mit eine der folgenden Möglichkeiten modifizieren:

  • per Hand/Editor oder "make menuconfig" und anschließend "genkernel --no-clean all"

oder

  • genkernel --no-clean --menuconfig all

Wenn ein Splashscreen verwendet wird, muss auch noch "--splash=<THEME>" und optional "--splash-res=1024x768" angegeben werden.

Ohne genkernel

make menuconfig
make
make modules_install

Optional:

make install

Externe Module

module-rebuild rebuild
update-modules force

Kernel upgraden

Download

emerge gentoo-sources

Evtl. /usr/src/linux symlink auf die neue Sourcen setzen.

Compilieren

Mit genkernel

genkernel --oldconfig all

Falls die .config selbst modifiziert wurde, muss genkernel mit --oldconfig aufgerufen werden, sonst wird eine Standardkonfiguration verwendet.

Wenn ein Splashscreen verwendet wird, muss auch noch "--splash=<THEME>" und optional "--splash-res=1024x768" angegeben werden.

Ohne genkernel

make oldconfig
make
make modules_install

Der Kernel befindet sich dann hier:

/usr/src/linux/arch/i386/boot/bzImage

Installieren:

make install

Externe Module

module-rebuild rebuild
update-modules force

Bootmenü

Dann /boot/grub/menu.lst erweitern und neu booten.

Wichtige Kernel-Optionen

Wenn man genkernel die Kernel-Config erzeugen lässt, dann sind die meisten Optionen schon aktiviert.

Prozessor

Auf jeden Fall sollte man den Prozessor-Typ einstellen.

Unter Processor type and features -> Processor family die richtige Prozessor-Familie wählen.

Allgemeine Optionen

Siehe http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=7.

Audio (ALSA)

Siehe http://www.gentoo.org/doc/en/alsa-guide.xml#doc_chap2_pre3.

Optimierung für Desktop

Quelle: http://netslaughters.de/index.php/?p=52

  • CONFIG_PREEMPT: Processor type and features -> Preemtion Model -> Preemptible Kernel (Low-Latency Desktop) = y
  • CONFIG_PREEMPT_BKL: Processor type and features -> Preempt The Big Kernel Lock = y

Dadurch kommen interaktive Prozesse öfter zum Zug, wenn im Hintergrund ein Prozess mit hoher Last läuft.

WLAN (ipw2200)

  • CONFIG_WLAN_80211: Device Drivers -> Network device support -> Wireless LAN -> Wireless LAN (IEEE 802.11) = y
  • CONFIG_IPW2200: Device Drivers -> Network device support -> Wireless LAN -> Intel PRO/Wireless 2200BG and 2915ABG Network Connection = m

lm_sensors

Quelle: http://de.gentoo-wiki.com/LM-Sensors

  • CONFIG_HWMON: Device-Drivers -> Hardware Monitoring support = y
  • Unter Device-Drivers -> Hardware Monitoring support die notwendigen Sensoren als Modul auswählen
  • CONFIG_I2C: Device-Drivers -> I2C support = m
  • CONFIG_I2C_CHARDEV: Device-Drivers -> I2C support -> I2C device interface = m
  • Unter Device-Drivers -> I2C support -> I2C Hardware Bus support die benötigten Chipsatz-Module als Modul auswählen

Verschlüsselung

CONFIG_DM_CRYPT: Device drivers -> Multiple devices driver support (RAID and LVM) -> Crypt target support aktivieren.

autofs

  • CONFIG_AUTOFS4_FS: File systems -> Kernel automounter version 4 support = y

Splashscreen

  • CONFIG_FB: Device Drivers -> Graphics support -> Support for frame buffer devices = y
  • CONFIG_FB_VESA: Device Drivers -> Graphics support -> VESA VGA graphics support = y
  • CONFIG_FRAMEBUFFER_CONSOLE: Device Drivers -> Graphics support -> Console display driver support -> Framebuffer Console support = y
  • CONFIG_FB_CON_DECOR: Device Drivers -> Graphics support -> Console display driver support -> Support for the Framebuffer Console Decorations = y

Joystick

Allgemein:

  • CONFIG_INPUT_JOYDEV: Device Drivers -> Input device support -> Joystick interface = m

An USB:

  • CONFIG_HID_SUPPORT: Device Drivers -> HID Devices = y
  • CONFIG_USB_HID: Device Drivers -> HID Devices -> USB Human Interface Device (full HID) support = y

Am Gameport (ungetestet):

  • CONFIG_INPUT_JOYSTICK: Device Drivers -> Input device support -> Joysticks/Gamepads = y
  • CONFIG_JOYSTICK_ANALOG: Device Drivers -> Input device support -> Joysticks/Gamepads -> Classic PC analog joysticks and gamepads = y
  • CONFIG_GAMEPORT: Device Drivers -> Input device support -> Hardware I/O ports -> Gameport support = y

Bluetooth

Siehe hier.

PXE

  • CONFIG_INET: Networking -> Networking options -> TCP/IP networking = y
  • CONFIG_IP_PNP: Networking -> Networking options -> IP: kernel level autoconfiguration = y
  • CONFIG_IP_PNP_DHCP: Networking -> Networking options -> IP: DHCP support = y
  • CONFIG_IP_PNP_BOOTP: Networking -> Networking options -> IP: BOOTP support = y
  • CONFIG_NFS_FS: File systems -> Network File Systems -> NFS file system support = y
  • CONFIG_NFS_V3: File systems -> Network File Systems -> Provide NFSv3 client support = y
  • CONFIG_ROOT_NFS: File systems -> Network File Systems -> Root file system on NFS = y

Und unter Device Drivers -> Network device support den Treiber für die verwendete Netzwerkkarte aktivieren (y).

AMD PowerNow!

  • CPU_FREQ_DEFAULT_GOV_USERSPACE: Power management options -> CPU Frequency scaling -> Default CPUFreq governor -> userspace = y
  • X86_POWERNOW_K8: Power management options -> CPU Frequency scaling -> AMD Opteron/Athlon64 PowerNow! = m

Cardreader mit mehreren Laufwerken

  • CONFIG_SCSI_MULTI_LUN: Device Drivers -> SCSI device support -> Probe all LUNs on each SCSI device = y