Zusätzliche (Kernel)Komponenten

Komponenten

Es gibt eine Reihe von Komponenten, die man nur in einem laufenden System akzeptabel integrieren kann, das kann ein gebootetes Stage1-System sein (NFS, RW) oder das Referenzsystem, von dem Stage2 geklont wird. Folgende Komponenten sind dann auf diesem Wege zu installieren:

  • VMware/Player - hier ist das Skript vmware-config.pl aufzurufen, welches die Kernelmodule vmmon.ko und vmnet.ko generiert und installiert.
  • ATI - Proprietäre Beschleunigung für ATI-basierte Grafikkarten. Das Paket lässt sich auch auf Systemen installieren, die keine solche Karte enthalten. Dazu muss man zuerst ati-driver-installer-8.X.YY.run aufrufen und anschliessend noch aticonfig --initial starten (vorher die xorg.conf sichern, da diese angepasst wird).
  • NVidia - Proprietäre Beschleunigung für NVidia-basierte Grafikkarten. Das Paket lässt sich leider nicht auf Systemen installieren, die keine solche Karte enthalten. Damit wird das deutlich schwieriger ... Es gibt zumindest für SuSE ein [ftp://download.nvidia.com/opensuse/10.2 Repository für die NVidia-Sachen].
  • UnionFS - dieses spezielle Filesystem ist wohl erst ab 2.6.21 Bestandteil des Kernels. Es ist bei einigen Distributionen schon dabei, aber beispielsweise bei OpenSuSE10.2 nicht nutzbar. Siehe auch UnionfsBenutzen.
  • AUFS - Alternative zu UnionFS, die beispielsweise auf einem OpenSuSE10.2 funktioniert. Siehe auch AufsBenutzen.

Es ist zu beachten, dass ein Kernel-Update automatisch das Update der externen Kernelmodule zwingend nach sich zieht!!

Kernelmodule

Zusätzliche Module kann man wie folgt in einfügen: (am Beispiel UnionFS)

Auf dem Referenzsystem (bzw. Stage1 RW-exportiert):
  • Den gewünschten Kernel booten
  • Modul runterladen
  • Kompilieren
  • das Modul (z.B. unionfs.ko) in /lib/modules/.../kernel/fs/unionfs o.ä. einfügen
  • depmod -a ausführen
Rüberkopieren:
  • Das Modul (z.B. unionfs.ko) separat auf den Server an die entsprechende Stelle kopieren (/nfsroot/10.1/lib/....)
  • Vom Referenzsystem /lib/modules/.../modules.* auf den Server an die entsprechende Stelle kopieren (/nfsroot/10.1/lib/modules/...)
  • Je nach Stage2-Export beispielsweise das SquashFS neu generieren lassen
Auf dem Server:
  • Das Initialramfs mit dem neuen Modul(en) neu erzeugen - siehe MkinitrdHowto
  • Nach einem Kernel-Update in /tftpboot/pxelinux.cfg/... ein neues Ramfilesystem erzeugen und beide entsprechend eintragen

Kernelupdate

Solange sich das ABI (Application Binary Interface) des Kernels nicht ändert, müssen bei einem Kernel-Update nicht zwangsläufig alle (eigenen, externen) Module neu gebaut werden. Hierfür gibt es das Konzept der "weak updates".