Login
Newsletter
Fr, 10. Januar 2003, 09:17

Kernel für verschiedene Rechner compilieren

Wenn man mehrere Rechner hat und jedem einen individuellen Kernel maßschneidern will, wäre es doch praktisch, die Kernel-Quellen nur auf einem Rechner zu haben (möglichst auf dem schnellsten). Hier beschreibe ich, wie ich das bereits seit Jahren handhabe.

Am einfachsten geht es, wenn der Rechner, auf dem man compiliert, als NFS-Server dient. Dann compiliert man den Kernel auf dem schnellen Rechner, und zwar mit den Einstellungen für den Zielrechner. Selbst Cross-Compilierung ist möglich, dafür muß man aber passende Versionen der Binutils und von gcc installieren.

Wenn der Kernel fertig ist, mountet man das Kernel-Verzeichnis bzw. die entsprechende Partition auf dem Zielrechner, geht in das Verzeichnis, und ruft make modules_install auf. Danach kopiert man System.map und arch/i386/boot/bzImage an die richtige Stelle und konfiguriert LILO bzw. den verwendeten Bootmanager. Dann neu booten und fertig.

Die Konfigurationsdateien für die verschiedenen Rechner sollte man sich aufheben. Im Kernel-Verzeichnis gibt man z.B. cp .config config.B ein. Wenn man so eine Datei zurück nach .config kopiert, muß man natürlich make oldconfig oder eines der anderen Konfigurations-Targets ausführen. Andere Dateien muß man nicht kopieren, .config ist der einzige Unterschied zwischen den verschiedenen Kerneln. Meine Sammlung von Konfigurationsdateien reicht zurück bis ins Jahr 1997 zu Kernel 2.0.30.

Es macht übrigens nichts, wenn die Konfigurationsdatei, die man verwendet, nicht von der gleichen Kernel-Version stammt. Man muß also nicht für jede einzelne Version die Konfiguration speichern. make oldconfig usw. bekommen das schon geregelt. Unter Umständen muß man aber anschließend prüfen, ob alle Optionen richtig gesetzt wurden. Besonders, wenn sich in der Konfiguration größere Änderungen ergeben haben, wie das bei Entwicklerkerneln öfter mal der Fall ist.

  • Dieses Werk wurde von seinem Urheber zur uneingeschränkten Nutzung freigegeben und ist damit gemeinfrei (»public domain«).

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten