WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Linux, UNIX, Open Source

Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 24.11.2002, 00:13   #1
santi
Master
 
Registriert seit: 01.11.2001
Beiträge: 531


Beitrag Kernel kompilieren - Versuch einer Beschreibung

Hallo Leute,
früher dachte ich immer Kernel kompilieren sei nur von Leuten mit Informatikstudium durchführbar und sowas braucht eh kein normaler Anwender. Als ich dann aber unbedingt ACPI-Unterstützung am Laptop haben wollte mußte ich mich zwangsweise mit dem Kompilieren beschäftigen und kam drauf das es viel leichter ist als man glaubt.

Eine kleine Warnung zu Beginn - diese Beschreibung wurde von einem KDE-User erstellt
Ich erledigte dabei fast alle Dateioperationen als Root mit dem Konqueror und habe daher nicht alle Konsolenbefehle zum Abtippen reingeschrieben sondern versucht meine Vorgangsweise verständlich und nachvollziehbar zu machen. Die verwendeten Pfade und Dateinamen beziehen sich auf Mdk 9.0 und sind nur als Beispiel gedacht.

Ich möchte an dieser Stelle auch an die Wichtigkeit einer funktionierenden! Bootdiskette erinnern. Also entweder die alte Diskette suchen oder eine Neue erstellen und unbedingt testen ob sie auch wirklich funktioniert.

Mein Ziel war es von Kernel 2.4.18 auf Kernel 2.4.19 mit dem ACPI-Patch upzudaten. Ich holte mir zuerst bei http://www.kernel.org/ den passenden Kernel linux-2.4.19.tar.gz und von http://sourceforge.net/project/showf...group_id=36832 den dazugehörigen ACPI-Patch acpi-20020918-2.4.19.diff.gz .


1. Alten Kernel-Code sichern

Ins Verzeichnis /usr/src gehen und schauen ob dort das Verzeichnis linux ein reales Verzeichnis oder nur eine Verknüpfung ist.
Ein reales Verzeichnis durch umbenennen sichern:
mv linux linux-2.4.18
Oder wenn das Verzeichnis linux nur eine Verknüpfung ist die Verknüpfung löschen:
rm linux

2. Kernel entpacken

Den Kernel nach /usr/src/ kopieren und dort entpacken:
tar -xzvf linux-2.4.19.tar.gz
Dabei wird automatisch das Verzeichnis linux-2.4.19 erstellt.

Da ich später immer drauf vergesse erzeuge ich jetzt immer gleich eine neue Verknüpfung zum neu erzeugten Verzeichnis:
ln -s linux-2.4.19 linux


3. Patch entpacken und ausführen

Falls der Kernel auch gepatcht wird kopiert man jetzt den Patch
in das neu erzeugte Verzeichnis linux-2.4.19. Dort entpackt man den Patch mit:
gunzip acpi-20020918-2.4.19.diff.gz
und patcht anschliessend den Kernel mit:
patch -p1 < acpi-20020918-2.4.19.diff
(oder mit patch -p0 < file.txt wenn der Patch als txt-File vorliegt).


4. Konfiguration und Kompilierung des Kernels

Jetzt die Datei .config vom alten linux-2.4.18-Verzeichnis in das neue Verzeichnis linux-2.4.19 kopieren und starten der Kernelkonfiguration mit:
make xconfig
Dann die Optionen nach Bedarf ändern, die Datei sichern und xconfig verlassen.

Jetzt kommt die übliche Befehlsreihe:
make dep
make clean
make bzImage
make modules
make modules_install



5. Sichern des alten Kernels und Installation des neuen Kernels

Wenn es jetzt Schwierigkeiten beim kompilieren gab ist das fürs Hochfahren des Rechners kein Problem. Bisher machten wir keinerlei Veränderungen am System aber mit den nächsten Befehlen können wir Linux das Booten ziemlich erschweren, also nicht hudeln und in Ruhe weitermachen.

Wenn das Kompilieren geklappt hat den alten Kernel der im /boot Verzeichnis steckt durch umbenennen sichern:
mv /boot/vmlinuz /boot vmlinuz-2.4.18
und den neu erzeugten Kernel unter neuem Namen nach /boot verschieben:
mv /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz


6. LILO-Konfiguration

Als letzter Schritt wird der Bootloader mit dem neuen Kernel bekannt gemacht. Ich verwende LILO und mache es immer händisch. Zuerst mit einem Editor die Datei /etc/lilo.conf öffnen, dann den Eintrag vom alten Kernel kopieren, wieder neu einfügen und beide Einträge an den neuen Kernel anpassen, dh aus
....
....
image=/boot/vmlinuz
label=linux-2.4.18

root=/dev/hda5
initrd=/boot/initrd.img
append="devfs=mount hdc=ide-scsi"
read-only
....
....
wird:
....
....
image=/boot/vmlinuz
label=linux-2.4.19

root=/dev/hda5
initrd=/boot/initrd.img
append="devfs=mount hdc=ide-scsi"
read-only
image=/boot/vmlinuz-2.4.18
label=linux-2.4.18

root=/dev/hda5
initrd=/boot/initrd.img
append="devfs=mount hdc=ide-scsi"
read-only
...
...

Ich ändere auch den Defaultwert der oberhalb dieser Einträge in der lilo.conf steht gleich auf den neuen Kernel um:
default=linux-2.4.19
dann Datei sichern und lilo in der Konsole eingeben.

Wenn jetzt alle Kernels erkannt werden ist die Konfiguration von LILO abgeschlossen. Bei Fehlermeldungen schreibt LILO sehr genau warum es nicht klappt, meistens ist es nur ein Tippfehler...

Jetzt kann der Rechner neu gestartet werden und Linux sollte mit dem neuen Kernel hochfahren. Wenn es dabei Probleme gibt einfach den alten Kernel anwählen und eine Bootdiskette für den schlimmsten Notfall haben wir ja auch noch als eiserne Reserve.


Falls ich was vergessen habe oder inhaltliche Fehler gemacht habe freue ich mich über jede konstruktive Kritik.

Gruß
santi
____________________________________
Signaturen sind wie Frauen. Man findet selten eine Vernünftige.
santi ist offline   Mit Zitat antworten
Alt 26.12.2002, 03:39   #2
detonation997
Senior Member
 
Registriert seit: 07.07.2001
Beiträge: 197


detonation997 eine Nachricht über ICQ schicken
Reden Cool!

Mit dieser angenehm knappen Beschreibung hast du mittlerweile sicher schon vielen Leuten geholfen!

Vielleicht kannst du sie ja auch auf http://www.linuxforen.de in den Bereich "Hier Suchen und Finden, Links, Tutorials" veröffentlichen?
Dort gibts sowas schon, aber nicht so "gestaucht"

mfg Rainer
detonation997 ist offline   Mit Zitat antworten
Alt 28.12.2002, 02:23   #3
santi
Master
 
Registriert seit: 01.11.2001
Beiträge: 531


Standard

Hi Rainer,
falls ich jemandem damit helfen konnte freut mich das sehr.

Ich bin bei linuxforen.de nicht registriert und schau nur selten rein. Falls Du möchtest kannst Du die Anleitung kopieren und sie dort posten.

Gruß
santi
____________________________________
Signaturen sind wie Frauen. Man findet selten eine Vernünftige.
santi ist offline   Mit Zitat antworten
Alt 28.12.2002, 06:07   #4
valo
Inventar
 
Registriert seit: 15.11.2000
Alter: 43
Beiträge: 7.684


Standard

für debian gibts eine anleitung zum kompilieren des kernels "nach debian art"

-> http://www.debian.org/releases/stabl...-kernel-baking

meiner erfahrung nach sollten folgende sachen installiert sein, um einen kernel "the debian way" zu kompilieren:

fakeroot
kernel-package
kernel-source-2.4.18 (sofern man kernel 2.4.18 kompilieren will)

ausserdem noch sollte installiert sein:

ncurses-dev

und aus "taskel"/development das "c/c++ package"

also folgende befehle ausführen:

tasksel [ENTER] -> bei "Development" "c/c++" auswählen und "f" drücken, dann wird alles für c/c++ development installiert.

anschliessend noch folgendes:

apt-get -u install fakeroot kernel-package kernel-source-2.4.18 ncurses-dev [ENTER]

dann sollte alles für eine kernel kompilierung nach "the debian way" fertig sein...
____________________________________
Yeah, yo mama dresses you funny and you need a mouse to delete files.
Jabber-ID: valo [at] cargal \'.\' org

Infected Mushroom and Barri Saharof - Live in Eilat Desert Israel 24-10-2002
A*S*Y*S - SSL-Pickup 21-10-2002
Dj Tiesto - Forbidden Paradise 8/Mystic Swamp
valo ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:33 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag