![]() |
![]() |
|
|
|||||||
| Linux, UNIX, Open Source Rat & Tat bei Problemen und Fragen rund um GNU/Linux, BSD und sonstige UNIXe |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
#1 |
|
Master
![]() Registriert seit: 01.11.2001
Beiträge: 531
|
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. |
|
|
|
|
|
#2 |
|
Senior Member
![]() |
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 |
|
|
|
|
|
#3 |
|
Master
![]() Registriert seit: 01.11.2001
Beiträge: 531
|
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. |
|
|
|
|
|
#4 |
|
Inventar
![]() Registriert seit: 15.11.2000
Alter: 43
Beiträge: 7.684
|
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 |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|