DistroEinrichten

English version of this entry

Damit aus einer standard festplatten-installierten (Linux-)Distribution eine OpenSLX-Umgebung für stateless Clients erzeugt werden kann, sind einige Anpassungsschritte erforderlich:
  1. Einrichten des initialen Setups
  2. Einstellen der Exporte
  3. Erstellen der Stage3-Konfiguration
  4. Anpassungen für den Demuxer-Prozess
  5. Anpassungen in den Plugins

Generell gilt für die Benennung von Distributionen deren Namen oder Kurznamen mit großem Anfangsbuchstaben, wenn es sich um ein Perl-Modul handelt, z.B. Ubuntu.pm. Für die Unterverzeichnisse der Stage3-Skripten gilt Kleinschreibung. Versionsnummern werden bei Perl-Modulen durch "_" an den Distro-Namen angehängt, bei den Stage3-Skripten erfolgt die Unterscheidung innerhalb des Unterverzeichnisses.

Einrichten des initialen Setups

Das Kommando slxos-setup dient der Einrichtung des Vendor-OS, welches hierzu bekannt sein muss. Die Bekanntmachung erfolgt in der Datei installer/OpenSLX/OSSetup/Engine.pm. Hier wird ebenfalls festgelegt in welchem Modus eine Distribution als Vendor-OS eingerichtet werden kann (direkte Installation - "install" oder aus einer laufenden Maschine "clone", "shell" legt fest, dass ein chroot ins Vendor-OS möglich ist, um beispielsweise weitere Pakete direkt nachzuinstallieren). Für die Installation aus den Paketquellen ist zudem die Einrichtung der gleichnamigen Verzeichnisse in lib/distro-info von Bedeutung.

Aktualisierung Ubuntu

Hier macht man am besten nach einer Kopie von einem älteren System einfach ein sed -e "s,<alteversion>,<neueversion>,"

Aktualisierung SuSE

In ~/core/tools/ das Skript updateDistroInfo.suse anpassen und hier die "supported versions" in Configuration anpassen und dann ausführen, welches ein TAR erzeugt, welches nach lib/distro-info entpackt werden sollte.

Einstellen der Exporte

In erster Linie geht es hier um die Festlegung der Filter, welche Dateien im Export nicht auftauchen sollten. Dabei handelt es sich in erster Linie um Konfigurationsdateien oder ausführbare Programme (oder deren Autostartdateien), die im stateless Betrieb keinen Sinn machen. Das findet sich im Unterverzeichnis ~/installer/OpenSLX/OSExport/Distro.

Erstellen der Stage3-Konfiguration

Hierbei geht es um die notwendigen Modifikationen für Stage4, die im Stage3 erfolgen. Die Skripten liegen unterhalb ~/initramfs/distro-specs. Hier gilt es die entsprechenden Funktionen passend zur Distribution anzulegen, so beispielsweise ubuntu/functions-11.04 für die Ubuntu 11.04. Diese Datei kann auch leer sein, muss aber funktionieren, damit der Demuxer korrekt durchläuft.

Anpassungen für den Demuxer-Prozess

Hier sollte festgelegt werden, welche Version von hwinfo zur automatischen Erkennung und Einrichtung der Hardware ins InitialRamFS kopiert wird. Die Erkennung von Modulen hängt im gewissen Umfang von der Kernelversion ab. Ebenso kann eine Liste von Kernel-Module definiert werden, die gegenüber dem Standard ("af_packet, hid(bright), usbhid, unix") nicht versucht werden sollen zu laden, da entweder in den Kernel kompiliert oder nicht gewünscht ("addFilteredKernelModules()"). Das alles passiert in ~/boot-env/OpenSLX/MakeInitRamFS/Distro. Dabei kann anhand der Version einer Distribution unterschieden werden.

Derzeit stehen die Hardware-Datenbank-Revisionen: 13.11, 14.19, 15.3, 15.21 und 16 zur Verfügung.

Anpassungen in den Plugins

Die einzelnen Basis-Plugins liegen unterhalb von os-plugin/plugin/<plugin-name>. Distributionsspezifische Einstellungen erfolgen im Unterverzeichnis OpenSLX/Distro/. Mindestens vorhanden sein sollte Base.pm. Dabei gilt für das Laden bestimmter Methoden die Reihenfolge (Beispiel Ubuntu-9.04):
  1. Ubuntu_10_04.pm
  2. Ubuntu_10.pm
  3. Ubuntu.pm
  4. Base.pm