Kernel kompilieren
Aus PixelDinchen-Wiki
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
- Bezugsquelle für den aktuellen Linux-Kernel
- Hilfreiche Informationen zum Kernel aus der Ubuntuusers-Wiki
--Arndt 01:16, 4. Feb. 2007 (CET)
