Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
linux:kernel [2007/10/05 23:46] – st | linux:kernel [2012/04/04 20:23] (aktuell) – [Links] st | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Kernel ====== | ||
+ | Der [[wpde> | ||
+ | |||
+ | Der Linuxkernel kann statisch (monolitisch) aufgebaut sein, d.h. alle benötigten Module sind fest einkompiliert, | ||
+ | |||
+ | Bei den **Kernelversionen** hat die mittlere Nummer eine besondere Aussagekraft: | ||
+ | |||
+ | In der aktuellen 2.6.x-Version gibt es vier **Hauptbäume**: | ||
+ | - main 2.6.x (Linus Torvalds Vanilla-Kernel) | ||
+ | - 2.6.x.y-stable (sehr stabil, Fokus auf Bugfixes) | ||
+ | - 2.6.x-git (experimenteller, | ||
+ | - 2.6.x-mm (neue und ungeteste Änderungen, | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | |||
+ | ===== Kernelkompililation ===== | ||
+ | |||
+ | Einen eigenen Kernel kompilieren macht Sinn, wenn man sich sein System exakt an seine Bedürfnisse anpassen möchte. Also spezielle Optionen braucht oder einige Teile rauswerfen will (die im Standardkernel der jeweiligen [[linux: | ||
+ | |||
+ | Bei Sicherheitslücken oder veränderter Hardware ist allerdings schnell eine Anpassung (Neukompilieren) erforderlich. Da muss jeder selber entscheiden, | ||
+ | |||
+ | Die **Kernelkonfiguration** geht grundsätzlich auf drei verschiedene Arten: | ||
+ | -'' | ||
+ | - '' | ||
+ | - '' | ||
+ | |||
+ | Die **Schritte zum Kernelübersetzen**: | ||
+ | |||
+ | - Kernelsourcen auspacken | ||
+ | - '' | ||
+ | - make dep | ||
+ | - make bzimage (übersetzt den Kernel) | ||
+ | - make modules (übersetzt die Module) | ||
+ | Nun splitet sich die weitere Vorgehensweise nach dem **[[bootmanager und bootprozess|Bootmanager]]** auf: | ||
+ | - Grub: den Kernel per Hand nach /boot kopieren + Eintrag in ''/ | ||
+ | - lilo: | ||
+ | - make bzlilo (installiert den Kernel für lilo in /boot zusammen mit wichtigen Systemdateien) | ||
+ | - make modules_install (installiert die Module) | ||
+ | |||
+ | |||
+ | |||
+ | ===== Links ===== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | ==== Debian ==== | ||
+ | |||
+ | * [[https:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | |||
+ | ==== Ubuntu ==== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | |||
+ | ===== Kernelmodule verwalten ===== | ||
+ | |||
+ | * **lsmod** listet aktuell geladene Module auf | ||
+ | * **insmod** / **rmmod:** Module laden und entfernen | ||
+ | * **modprobe** lädt Module indem es auf zusätzliche Abhängigkeiten zu anderen Module prüft und diese ggf. ebenfalls lädt | ||
+ | * **rmmod** MODULNAME entlädt Module | ||
+ | * **depmod** baut die Liste der Abhängigkeiten auf. Diese stehen in einer Datei unter ''/ | ||
+ | * **modinfo** MODULNAME sollte Informationen über ein Modul ausgeben | ||
+ | |||
+ | :!: Das **Laden einzelner Module** kann man **verhindern** indem man einen Eintrag in der Datei ''/ | ||
+ | blacklist MODULNAME | ||
+ | |||
+ | ==== Kernelmodule laden ==== | ||
+ | **Beim Systemstart** zu ladene Module werden bis Kernel 2.4 ist die Konfigurationsdatei für die Module | ||
+ | ''/ | ||
+ | |||
+ | Seit Kernel 2.6 ist es grundsätzlich die Datei ''/ | ||
+ | |||
+ | Wenn es ''/ | ||
+ | Regel am Ende von ''/ | ||
+ | |||
+ | **Fallweise**: | ||
+ | |||
+ | modprobe MODULNAME | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Kernelmodule entladen | ||
+ | |||
+ | Bereits geladene Kernelmodule lassen sich mit | ||
+ | |||
+ | rmmod MODULNAME | ||
+ | |||
+ | entladen. | ||
+ | |||
+ | ===== Clocksource ===== | ||
+ | |||
+ | Viele Dienst erlassen sich auf eine korrekt laufende (syncronisierte) Zeit. Das ist z. B. in vollvirtualisierten Gästen ein großes Problem. | ||
+ | |||
+ | |||
+ | Auch in virtualisierten [[kvm: | ||
+ | < | ||
+ | Clocksource tsc unstable (delta = -4398046495868 ns) | ||
+ | </ | ||
+ | |||
+ | Für die Beurteilung ob das ein Problem darstellt oder nicht ist es wichtig die aktuell verwendete " | ||
+ | |||
+ | cat / | ||
+ | |||
+ | Die Antwort ist in diesem Fall kvm-clock (in den physikalischen Rechner oft " | ||
+ | |||
+ | Die Liste der unterstützten Quellen bekomme ich wie folgt. | ||
+ | |||
+ | cat / | ||
+ | |||
+ | < | ||
+ | |||
+ | Die verwendete Quelle kann mittles Boot-Parameter geändert werden, Beispiel: '' | ||
+ | |||
+ | |||
+ | |||
+ | |||