[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ weiter ]


Debian Reference (version 1)
Kapitel 7 - Der Linux-Kernel unter Debian


Debian hat eine eigene Methode einen Kernel und dazugehörige Module zu kompilieren. Weitere Infos sind in Debian und der Kernel, Abschnitt 2.7 zu finden.


7.1 (Neu)kompilieren des Kernels

Die Tools gcc, binutils und module-init-tools aus Debian unstable sind sehr hilfreich, wenn man einen aktuellen Linux-Kernel kompilieren möchte. Siehe file:///usr/share/doc/kernel-package/README.gz um offizielle Informationen zu erhalten, besonders der untere Teil ist interessant.

Einen eigenen Kernel zu kompilieren ist eine nicht ganz einfache Sache, womit selbst begnadete Entwickler Schwierigkeiten haben könnten, gerade auch weil diese Thematik eine sich ständig weiter entwickelnde ist.

Manoj Srivastava schrieb:

--initrd benötigt einen Debian-eigenen cramfs-Patch.

Herbert Xu schrieb:

Nein, das tut es nicht. Das einzige was nötig ist, um ein anderes Dateisystem als CRAMFS zu nutzen, ist, MKIMAGE in /etc/mkinitrd/mkinitrd.conf zu setzen.

Seien Sie vorsichtig und ziehen Sie file:///usr/share/doc/kernel-package/README.gz von Manoj und Kent sowie http://kernel-handbook.alioth.debian.org/ stets zu Hilfe. Des Weiteren stellen Sie sicher, dass Sie immer die aktuellste Version des unstable kernel-package-Paketes haben, wenn Sie einen instabilen Kernel kompilieren möchten.

Für einen Kernel, der nur für eine Maschine kompiliert ist, wird initrd nicht benötigt. Weil ich aber möchte, dass mein Kernel nahezu der gleiche ist, wie der, der von den kernel-image-Paketen bereitgestellt wird, nutze ich es trotzdem. Wenn Sie initrd nutzen möchten, lesen Sie bitte mkinitrd(8) und mkinitrd.conf(5).


7.1.1 Kernelheader

Die meisten Programme brauchen die Kernelheader-Dateien nicht, und einige Programme lassen sich sogar nicht erfolgreich kompilieren, wenn die Header-Dateien genutzt werden. Stattdessen sollten die Programme beim Kompilieren gegen die Header-Dateien gelinkt werden, gegen die auch glibc gelinkt wurde. Auf einem Debian-System sind diese Kernelheader-Dateien in /usr/include/linux und /usr/include/asm zu finden.

Entgegen einigen veralteten Dokumentationen, sollten keine symbolischen Links in /usr/src/linux von /usr/include/linux und /usr/include/asm erstellt werden.

Es sollte, wenn ein Programm bestimmte Kernelheader-Dateien für Kernel-spezifische Programme benötigt, stattdessen das Makefile so angepasst werden, dass der Pfad der einzubindenden Header-Dateien folgende Pfade enthält: Verzeichnis-bestimmter-Kernelheader/include/linux und Verzeichnis-bestimmter-Kernelheader/include/asm.


7.2 Tunen des Kernels mittels des proc-Dateisystems

Das Verhalten des Linux-Kernels kann dynamisch durch das proc-Dateisystem geändert werden.

Für grundlegende Informationen über das Ändern von Kernelparametern durch das /proc-Dateisystem, lesen Sie im Linux-Quellcodeverzeichnis Documentation/sysctl/*.

Einige Beispiele der Kernelparametermanipulation können in /etc/init.d/networking und Eigenartige Probleme beim Zugriff auf einige Webseiten, Abschnitt 3.8.5 gefunden werden.

Sehen Sie in sysctl.conf(5) wie man den Kernel zur Bootzeit mittels des /proc-Dateisystems konfigurieren kann. Dazu wird das Skript /etc/init.d/procps.sh genutzt, das in der Regel aus /etc/rcS.d/S30procps.sh gestartet wird.


7.2.1 Zu viele geöffnete Dateien

Der Linux-Kernel könnte unter Umständen die Meldung "Too many open files" ("Zu viele geöffnete Dateien") ausgeben. Der Grund hierfür ist, dass der Standardwert (8096) für file-max sehr klein gewählt wurde. Um dieses Problem zu lösen, führen Sie folgende Schritte als root aus:

     # echo "65536"  > /proc/sys/fs/file-max  # für 2.2er- und 2.4er-Kernel
     # echo "131072" > /proc/sys/fs/inode-max # nur für 2.2er-Kernel

Alternativ können Sie Folgendes in /etc/sysctl.conf eintragen, um diese Änderungen permanent zu aktivieren:

     file-max=65536   # für 2.2er- und 2.4er-Kernel
     inode-max=131072 # nur für 2.2er-Kernel

7.2.2 Disk-Flush-Intervalle

Sie können Disk-Flush-Intervalle durch das proc-Dateisystem ändern. Das Folgende kürzt das Intervall von standardmäßig fünf Sekunden auf eine Sekunde.

     # echo "40 0 0 0 100 30000 60 0 0"  > /proc/sys/vm/bdflush

Dies kann die Ein-/Ausgabe-Performance ein klein wenig negativ beeinflussen. Aber dies sichert den Dateiinhalt mit Ausnahme der letzten Sekunde, was kürzer ist als die standardmäßigen fünf Sekunden. Dies ist selbst für die Journaling-Dateisysteme wahr.


7.2.3 Trägheit alter Maschinen mit wenig Speicher

Für einige alte Systeme mit wenig Speicher kann es immer noch sinnvoll sein, over-commit von Speicher durch das proc-Dateisystem zu aktivieren:

     # echo 1 > /proc/sys/vm/overcommit_memory

7.3 Der 2.6er Kernel mit udev

udev ist ein dynamischer Ersatz für /dev/. Gerätenamen können sehr kurz gewählt werden. devfs, das in Kernel 2.4 verwendet wurde, ist nun überholt.

Installation des neuen Debian 2.6er Kernels, der von kernel-image-2.6.NN bereitgestellt wird, zusammen mit dem udev-Paket aktiviert es.


[ zurück ] [ Inhalt ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ weiter ]


Debian Reference (version 1)

This translation is based on old version of Debian Reference (English, version 1.x), well before Sat, 26 Jan 2008.

Osamu Aoki osamu#at#debian.org
Übersetzer: Jens Seidel tux-master#at#web.de
Autoren, Abschnitt A.1