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