Kernel

Aus Digiwiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Installation des Kernes

Eine gute Anleitung und Wissen zum Bauen eines Vanilla (also von Kernel.org o.ä. runtergeladenen) Kernes finden sich unter http://www.thomashertweck.de/kernel26.html

Herunterladen

Den gewünschten Kernel (z.B. 2.6.22.9) von kernel.org oder entsprechenden Mirrors (http://www.kernel.org/mirrors) herunterladen, und nach /usr/src/ entpacken

Patchen

hdaps Disk Park Patch

damit die Festplatte bei erschütterungen eingefroren werden kann hdaps muss der kernel gepatched werden (siehe HDAPS#hdaps_park) Dazu holt man sich den entsprechenden patch von http://www.thinkwiki.org/wiki/HDAPS

patchen geschieht mit

patch -p1 < patchname

im Kernelverzeichnis

falls man einen Patch wieder entfernen will geht das mit

patch -R -p1 < patchname

CPU Spannungen

Für bessere Akkulaufzeiten lässt sich die Betriebsspannung des Prozessors individuell anpassen. Auf die Art spart man bei gleicher Geschwindigkeit Strom, und der Prozessor erhitzt sich weniger.

http://thinkwiki.org/wiki/Pentium_M_undervolting_and_underclocking

Derzeit wohl am gängigsten: https://www.dedigentoo.org/trac/linux-phc/

Config

Bestehende Kerneleinstellungen (die des Kanotixkernels) lassen sich mit make oldconfig übernehmen

Meine aktuelle Kernelconfig findet sich hier, allerdings dürftet ihr auf Schwierigkeiten stoßen diese so zu übernehmen wenn ihr ein anderes Notebook (T41p) als ich verwendet.

Hinweis:
make menuconfig benötig das Packet libncurses5-dev

mit

make menuconfig

können veränderungen an de Konfiguration vorgenommen werden.

Optionen wählen

Zwar kann man den Kernel bei vergessenen Optionen schnell noch mal bauen, trotzdem spart man sich Zeit wenn man das ganze vor dem Bauen durchdenkt.

FS und Storage Device Treiber / Initial Ramdisk sparen

Um auf eine initial Ramdisk verzichten zu können, nehmen wir das Speichermedium und Filesystem auf dem sich /boot und / befinden fest in den Kernel ( [*] ).

Für das FS ist das einfach geschehen:

  • Filesystems
    • [*] Name des Filesystems


Für die Festplatte sind da schon mehr Optionen nötig.

Am Beispiel der Sata-Platte in meinem Notebook:

Generell benötigen wir für Sata Platten die folgenden Optionen:

  • Device Drivers
    • [*] Block Devices
    • [*] SCSI device support
      • <*> SCSI disk support

lspci sagt mir:

00:1f.2 SATA controller: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA AHCI Controller (rev 03)

Also ein Intel ICH8 AHCI Controller

  • Device Drivers
    • [*] Serial ATA (prod) and Parallel ATA (experimental) drivers
      • <*> AHCI SATA support
      • <*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support


Hinweis:
Falls die Konfiguration unvollständig ist, kommt es beim versuchten Boot des Kernels zu einer Fehlermeldung a la
kernel panic - not syncing: VFS: unable to mount ...

Vesafb ( bestimmte Auflösungen in der System Konsole)

Bestimmte Auflösungen für die Systemkonsolen (wie z.B. 1400x1050) sind nur möglich wenn Vesa Framebuffer im Kernel aktiviert ist.

in make menuconfig finden sich die entsprechenden Punkte unter

Device Drivers>Graphics support>Support for frame buffer devices

Installation

Kernel Compilieren und module nach /lib/modules/[Kernelname] installieren

make && make modules_install
Alternativ:
Wer ein mehrprozessorsystem besitzt kann den make Prozess auf mehrere Threads verteilen,

Für ein Dualcore System sollte man also wenigsten

make -j2

(2 Threads, besser sogar gleich -j3) verwenden.

make modules_install

muss man natürlich trotzdem noch machen

Hinweis:
kein "make install" da mir das immer die Grub Bootliste versaut.

Stattdessen kopieren wir die entscheidenden Files per hand.

cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.6.16
cp ./System.map /boot/System.map-2.6.16

und Eintrag im Grub erstellen ( /boot/grub/menu.lst )

Initial Ramdisk bauen (falls benötig)

Generell kann man den Bau einer initrd umgehen, indem man Support für das Filesystem und den Typ des Speichermediums der als root zu bootenden Partition angibt.

Der bevorzugte Weg eine initial Ramdisk in Debian zu bauen sieht folgendermaßen aus:

.config aus Kernelsourcedir nach boot kopieren

cp /usr/src/linux-kernelbezeichnung/.config /boot/config-kernelbezeichnung

(kernelbezeichnung kann z.B. 2.6.23.1-roland sein)

mit yaird eine initrd bauen:

yaird -o initrd.img-kernelbezeichnung kernelbezeichnung
cp initrd.img-kernelbezeichnung /boot/


Damit die Initial Ramdisk überhaupt verwendet wird, müssen wir natürlich einen entsprechenden Eintrag in unserem Bootloader ( Grub ) hinzufügen.

Alternativ:
Alternativ geht das ganze auch mit mkinitrd (Paket initrd-tools)

mit

mkinitrd -o initrd.img-kernelnr kernelnr

(also z.B. mkinitrd -o initrd.img-2.6.20.3 2.6.20.3) bauen wir die passende Initial Ramdisk, und kopieren sie mit

cp initrd.img-kernelnr /boot/

nach /boot

Persönliche Werkzeuge