Historisches Debian Sarge - Kernel kompilieren

    • Offizieller Beitrag

    Hallo!


    Anbei mal meine Step by Step Anleitung fürs neu kompilieren des Kernels von Debian Sarge. Das ist zum Beispiel nötig, wenn

    man einen Framebuffer will, um z.B. ohne X mit "fbi" Bilder anzeigen zu können, oder um andere Bildschirmmodi in der Konsole zu fahren.


    Erst mal wget und weitere nötige Tools installieren


    Code
    sudo apt-get install wget libncurses5-dev bzip2 build-essential kernel-package

    und ein passendes Kernel-Sourcefile herunterladen, entpacken und einen Softlink setzen Hier am Beispiel von 2.4.27 (von 2004), welcher standardmäßig bei Sarge dabei ist. Das "time" vor "tar" gib am Ende die Zeit für Ausführung aus, klappt bei jedem Befehl. Bei meinem K5/100Mhz hat es knapp 5 Minuten gedauert.

    Code
    cd /usr/src
    wget http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.27.tar.bz2
    time tar xjfv linux-2.4.27.tar.bz2
    ln -s linux-2.4.27 linux

    dann den Source tree saubermachen und prüfen

    Code
    make mrproper

    Anschließend den Kernel über konfigurieren

    Code
    make menuconfig

    Besonders wichtig ist, daß man die richtige Zielarchitektur auswählt. Ein für PII kompilierter Kernel läuft nicht auf dem 386er.

    Ich speichere die Konfiguration zusätzlich nochmal in meinem /home, weil die Einstellungen bei einem

    Code
    make mrproper

    verloren gehen.

    Btw, "make clean" geht auch an Stelle von "make mrproper", aber weniger gründlich:


    make clean will remove all the object and kernel object files (ending in .o and .ko) and a few other things.

    make mrproper will do everything make clean does, plus remove your config file, the dependency files, and everything else that make config creates.


    Dann die Abhängigkeiten prüfen / erstellen

    Code
    make dep


    *** wird fortgesetzt

    • Offizieller Beitrag

    ...dann kann, immernoch im /usr/src/linux directory, die module für den kernel bauen

    Code
    make modules
    make modules_install

    anschließend das .deb Paket mit dem neuen Kernel, welches automatisch den GRUB mit dem neuen Eintrag versieht und die Memory Map aktualisiert, sobald man es installiert:

    Code
    make-kpkg clean
    time make-kpkg "--append-to-version=.versuch1" --revision=custom01 kernel_image

    An Stelle von ".versuch1" und "custom01" kann man natürlich beliebige alphanumerische Zeichenketten angeben.

    Etwa 120 Minuten später (bei meinem 100Mhz 586er) ist der Kernel gebaut.

    Er kann mit

    Code
    cd /usr/src
    dpkg -i kernel_image_XXXXXXXXX

    installiert werden. Natürlich kann man die Grub Einträge noch modifizieren. Das Konfig-File für GRUB1 befindet sich unter /boot/grub

    und heißt "menu.lst". Wenn irgenein Mist beim Neustart passiert, hat man bestimmt beim konfigurieren was falsch gemacht. Deshalb vor dem Neustart immer sichergehen, daß man den letzten funktionierende Kernen aus /boot und den zugehörigen Bootmanager-Eintrag nicht gelöscht hat, bevor der neue Kernel kann, was er soll, damit man sich nicht aus dem System aussperrt.