|
|
|
|
![]() Druckversion |
Kernel kompilieren ist für alte Linux-Hasen ganz normal. Um auch die letzten Ressourcen
aus seinem System zu hohlen, wird ständig der neueste Kernel installiert.Für Anfänger ist es zumeist ein Schock, daß man das eigenen Betriebssystem aus dem Quellcode heraus erzeugen soll. Denn wer mußte jemals schon mal sein Windows kompilieren?
make menuconfig eingeben.
Alles weitere ist selbsterklärend.
Anmerkung: Falls irgendwo X11 läuft, ist auch
Stattdessen kann man auch einfach die `.Xauthority'
des Users, der X gestartet hat (d.h. dem die X Sitzung "gehört") in das
Verzeichnis des Users kopieren, der darauf zugreifen kann -- hier
Das erste Mal könnte es etwas länger dauern, bis man etwas auf dem Bildschirm sieht -- das Konfigurationsprogramm für den Kernel wird nämlich auch als Quellcode geliefert und muß zuerst kompiliert werden.
Grundregel für den Kernel: Alles, was nicht unbedingt zum Booten benötigt wird, gehört nicht in den Kernel, sondern wird als Modul kompiliert. Eine Ausnahme sollte nur dann gemacht werden, wenn man irgendwas "dediziertes" (wie einen stand-alone Firewall, einen Router, o.ä.) bauen will, auf dem keine Anwendersoftware und kaum Hardware läuft. Aber es gibt für alles Ausnahmen. Wenn etwas als Modul nicht funktioniert, kann es durchaus sein, daß der Programmierer geschlampt hat und es fest einkompiliert problemlos geht oder umgekehrt.
Bitte lesen Sie auf jeden Fall die Hilfe zu jedem Punkt,
den man an- oder abwählt!
Als Modul sollten kompiliert werden (falls benötigt):
Der Grund dafür ist einfach. Diese Technik spart Speicherplatz (die Module werden erst geladen, wenn sie auch wirklich gebraucht werden, und das automatisch. Nach einer einstellbaren Zeit werden die Module dann wieder rausgeworfen) und ist flexibler (man kann ihnen auch zu laufzeiten z.B. I/O Adressen und IRQs zuweisen, als wenn sie fest im Kernel sitzen. Dann müßte man bei IRQ-Änderungen den ganzen Kernel neu booten).
Man sollte grundsätzlich
`Network support' auf "YES"
stellen und mindestens ein `dummy' network device mit
einbinden, denn viele Programme benutzen auch das Netzwerk, wenn keine
Netzwerkkarte eigebaut ist (Linux ist halt ein Netzwerk-Betriebssystem),
oder wenigstens die Protokolle, zur Prozeßkommunikation!
Ist man fertig mit Einstellen, geht man raus (`Exit'), speichert ab
(`Yes') und tippt einmal
Ist der Kompilierungsvorgang abgeschlossen, findet man unter /usr/src/linux/arch/i386/boot/ eine Datei namens zImage, die den neuen Kernel darstellt. Man kopiere diese ins `root' Directory (oder nach /boot, hauptsache irgendwo auf die root-Partition) und füge in die `/etc/lilo.conf' (vorausgesetzt, man benutzt LILO zum booten) folgendes ein:
image = /boot/zImage # zum Beispiel
label = NeuerKernel # max. 15 Buchstaben
Das setzt voraus, daß eine lauffähige `lilo.conf' schon existiert und alle anderen Settings die gleichen bleiben (`root, boot, prompt', etc). Danach ein kurzes
/sbin/lilo
aufrufen, und lilo sollte den neuen Kernel als weitere Bootoption aufnehmen. Booten via `LOADLIN' ist auch nicht schwer. Irgendwo dürfte der Kernel liegen, den man früher gebootet hat. (Meistens auf einer DOS-Partition.) Dann einfach den neuen Kernel z.B. als `neuer.img' ins gleiche Verzeichnis kopieren und beim nächsten Booten die neue Kerneldatei dem `LOADLIN' als Parameter übergeben (oder nach Belieben in die Batchdatei schreiben).
Dieser Text ist ein Auszug aus der Linux USER FAQ, und wurde uns freundlicherweise zur Verfügung gestellt von Jens Benecke, der Mitautor dieser FAQ ist.
Links
Platz für Kommentare & Fragen:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|