Kernel kompilieren

Aus PixelDinchen-Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

[bearbeiten] How-To: Einen eigenen, aktuellen Kernel kompilieren

Diese Anleitung wurde getestet unter Kubuntu 6.10 Edgy Erft mit installiertem Kernel 2.6.17-10

Bei aktueller Hardware kann es manchmal erforderlich sein, einen aktuelleren Kernel zu verwenden, als er derzeit in den Paketquellen angeboten wird.

Ein Beispiel: Der derzeit (Dezember 2006) in Kubuntu verwendete Kernel 2.6.17-10 bietet keine Unterstützung für das Mainboard ASRock AM2NF6G-VSTA – Onboard Soundkarte, LAN sowie Grafikchip verweigern ihren Dienst. Hier kann ein Upgrade auf eine neue Kernelversion helfen, welche direkt von http://www.kernel.org bezogen werden kann.

Viele schrecken lange Zeit davor zurück, sich einen eigenen Kernel zu kompilieren, genau wie ich auch. Viele denken „Das ist nur was für Gurus oder Hacker“, was natürlich völliger Blödsinn ist. Es ist einfacher, als man glauben mag, wie sich auf den nächsten Seiten zeigen wird.

[bearbeiten] Installation benötigter Pakete

Es müssen folgende Pakete installiert sein:

  • build-essential
  • kernel-package
  • xmlto
  • libncurses5-dev

Falls nicht vorhanden, einfach via

sudo apt-get install paketname

installieren.

[bearbeiten] Kernel herunterladen

Man sollte hier darauf achten, die „latest stable“ herunterzuladen, wie beispielsweise:

„The latest stable version of the Linux kernel is: 2.6.19.1“

Der passende Kernel kann nun nach Eingabe der Adresse http://www.kernel.org/pub/linux/kernel/v2.6/ ausgewählt werden, wie z.B.

linux-2.6.19.1.tar.gz     11-Dec-2006 19:40     51M

Nun wird man in der Konsole zu root:

sudo -s

Und kopiert diese Datei in das Verzeichnis /usr/src

cp /home/user/downloads/linux-2.6.19.1.tar.gz /usr/src

und entpackt diese:

tar xvfz linux-2.6.19.1.tar.gz

Wenn das Archiv entpackt wurde, muss nur noch ein symbolischer Link erzeugt werden, der von linux auf das neue Kernelverzeichnis zeigt:

ln -s linux-2.6.19.1 linux

[bearbeiten] Sicherung der bestehenden Verzeichnisse

Nun sichern wir die Verzeichnisse /boot /usr/src /lib/modules:

mkdir /home/user/backup
cd /home/user/backup
tar -cvf boot_vor_kernel_update_auf_2.6.19.1.tar /boot /boot /usr/src /lib/modules

[bearbeiten] Konfiguration des neuen Kernels

Nun muss die Konfiguration des derzeit aktuellen Kernels in das neue Kernelverzeichnis kopiert werden:

cd /usr/src/linux
cp /boot/config-2.6.17-10-generic .config

Dieses erspart uns eine Menge Konfigurationsarbeit, da wir die derzeit aktuelle Konfiguration für den neuen Kernel übernehmen und anpassen können.

Nun geht es ans eingemachte:

make oldconfig

Hierbei auftretende Abfragen einfach mit [Enter] bestätigen, danach

make menuconfig

Nun erfolgt die eigentliche Konfiguration des neuen Kernels, hierzu steht uns nun ein Menü für die Bearbeitung zur Verfügung. Da wir die alte config bereits eingespielt haben, brauchen wir jetzt nur noch die neuen Parameter bearbeiten, einfach alles was auf nVIDIA hinweist, als MODUL mit “M”, bzw. direkt mit “*” mit dem Kernel laden.

Stichpunkte für die manuelle Suche sind: NFORCE; NVIDIA; VIDEO; SATA_NV; IDE; REALTEC

Sehr wichtige Punkte:

  • Menue Device Drivers -> Serial ATA (prod) and Parallel ATA (experimental) drivers -> NVIDIA SATA support # auswählen, sonst wird keine SATA-Platte erkannt und der Rechner bootet nicht
  • Menue Device Drivers -> ATA/ATAPI/MFM/RLL support —> <*> AMD and nVidia IDE support # auswählen
  • Die Auswahl nötiger Module hängt von der verwendeten Hardware ab - hier ist Sachkenntnis erforderlich, im Zweifelsfalle bei der Community, z.B. bei http://www.ubuntuusers.de nachfragen!

Wenn alles kontrolliert ist, mit „Exit“ die Menüs verlassen und das Abspeichern nicht vergessen!

[bearbeiten] Kompilieren des neuen Kernels

Nun „backen“ wir uns unseren neuen Kernel:

make menuconfig
make-kpkg --initrd --revision 2.6.19.1username binary

Der Kernel wird nun vollständig kompiliert, installierbare .deb Pakete, Kernelheader, Kerneldoc und Kernel Source werden erstellt.

Nun können wir uns entspannt zurücklehnen (mehr oder weniger) – der Kernel wird nun kompiliert. Dies kann, je nach verwendeter Hardware mehr oder weniger lange dauern, bei mir dauerte dieser Vorgang eine knappe ¾ Stunde.

Nach erfolgreichem Abschluß dieses Vorganges finden sich die neuen Pakete im Verzeichnis /usr/src wieder:

linux-doc-2.6.19.1_2.6.19.1username_all.deb
linux-headers-2.6.19.1_2.6.19.1username_i386.deb
linux-image-2.6.19.1_2.6.19.1username_i386.deb
linux-manual-2.6.19.1_2.6.19.1username_all.deb
linux-source-2.6.19.1_2.6.19.1username_all.deb

Herzlichen Glückwunsch! Das Kompilieren des Kernels war erfolgreich!

[bearbeiten] Installation des neuen Kernels

Nun können wir den neuen Kernel installieren:

cd /usr/src
dpkg -i linux-image-2.6.19.1_2.6.19.1username_i386.deb

Hierbei wird auch automatisch ein Eintrag im Bootmanager Grub erzeugt, was wir wie folgt nachprüfen:

vi /boot/grub/menu.lst

Nun den Rechner neu starten. Sollte der Neustart fehlschlagen, lässt sich im Bootmanager immer noch der alte Kernel auswählen. Sollte das System erfolgreich starten, hat alles geklappt – evtl. muss nur noch der Grafiktreiber (z.B. NVIDIA) neu eingerichtet werden.


[bearbeiten] Weblinks


--Arndt 01:16, 4. Feb. 2007 (CET)

Persönliche Werkzeuge