wiki:CdHistorie

Version 3 (modified by ps, 11 years ago) (diff)

--

Entwicklung der Installations-CD im Lauf des Projekts

Die ersten Varianten der c't-VDR-Distribution benutzten für die Installation ein abgespecktes Knoppix-Image (25 bis später zirka 80 MByte). Auf diesem System aufbauend übernahm ein Shell-Skript sowohl die Partitionierung und Installation des Basis-Systems (mittels debootstrap) als auch das Einrichten der VDR-Pakete. Doch diese Installations-Variante hatte diverse Nachteile: Das Abspecken des Knoppix-Systems war sehr aufwendig und für jede Neuauflage aufs Neue nötig, damit die Kernel, die während und nach der Installation liefen, identisch waren (anfangs waren sie das nicht); das aber sollten sie unbedingt sein, damit nicht während der Installation erkannte Geräte hinterher plötzlich nicht mehr zugänglich sind oder umgekehrt, Geräte vom installierten System zwar unterstützt, vom Kernel bei der Installation aber nicht erkannt würden.

Installation hieß bei den ersten Versionen immer Einrichten des Betriebssystems und Installieren der VDR-Pakete und sonstiger Helfer (wie Lirc). Dabei handelt es sich bis heute um Bash-Skripte. Die Installationsroutine war anfangs sehr primitiv. Sie erkannte zunächst nur IDE-Platten und bot gar keine Paketauswahl. Spätere Versionen brachten die mit, standen aber nur im ersten Installationsschritt zur Verfügung. Das hießt, das Installationsfrontend stand nach abgeschlossener Installation nicht mehr zur Verfügung, um einzelne VDR-Pakete hinzuzufügen. Bei noch überschaubarer Paketauswahl konnte das Skript soweit in die Installation der Pakete eingreifen, dass der VDR zumindest grundsätzlich lauffähig war; manches Paket im VDR-Umfeld benötigt auch nach der Installation einige Handgriffe, damit es funktioniert, leitet etwa nötige Netzwerkeinstellungen nicht aus der Systemkonfiguration ab.

Mit wachsender Paketauswahl war es in einem einzelnen Skript aber nicht mehr händelbar, Extrahandgriffe für jedes Paket zu implementieren, um die im Rahmen der Installation grundsätzlich lauffähig zu installieren. Ein neues Konzept musste her: ctvdrcfg. Es trennt die Implementierung von Eingriffen an der Konfiguration von der eigentlichen Installation der Pakete. So ist es möglich, die - nach Debian-Policy - mitunter etwas rauen Originalpakete lauffähig in eine Spezial-Distribution hinein zu installieren. Auch bot es sich an, die Debian-Grundinstallation und die VDR-Einrichtung zu trennen. Auch das geschah zeitgleich mit der Einführung von ctvdrcfg durch das Ersetzen des Knoppix-basierten Installations-Skripts durch den damals noch in der Entwicklung befindlichen Debian-Installer (eingeführt mit c't-VDR Version 4). Gleichzeitig erfolgte der Umstieg auf Sarge als Systembasis.

Seit Version 4 arbeiten der Debian-Installer und ctvdrcfg Hand in Hand: Ersterer besorgt die Grundinstallation. Großartig viele Fragen stellt er nicht, weil ein überwiegender Teil der Optionen über eine Technik namens Preseeding "weggedrückt" ist. Bei hinreichend freiem Platz auf der Festplatte kann sogar die Partitionierung automatisch laufen. Das erfreuliche am Installer ist, dass die Hardware-Erkennung gut funktioniert und man dafür nicht einen Handschlag tun muss - verglichen mit dem bisherigen Installer-Skript ein großer Fortschritt. Warum die Debian-Entwickler so zögerlich mit der Freigabe waren, verstehe ich bis heute nicht. Das Ubuntu-Projekt, das den Debian-Installer hernahmen, konnte unter anderem damit erheblich punkten ...

Die Berührungspunkte zwischen Debian-Installer und ctvdrcfg sind gering. Mittels Preseeding hängt sich ctvdrcfg in die Endphase des Installers (vorm Reboot) und verewigt sich so in dem installierten Basis-System, dass nach dem Reboot nicht die üblichen Debian-Mechanismen zur Konfigurationsvervollständigung zum Zuge kommen, sondern ctvdrcfg. Es führt ein wenig Detailarbeiten aus, schaltet etwa den Consolen-Screensaver ab, der manches System einfrieren lässt, und bietet die VDR-Grundkonfiguration mit Paketauswahl an. Zuvor richtet es noch, je nach Beschaffenheit der CD und Internet-Verfügbarkeit, die Installationsquellen so ein, dass eine maximale Paketauswahl zur Verfügung steht. Was hinter ctvdrcfg steckt, steht an anderer Stelle in diesem Wiki. Wie sich ctvdrcfg in die Installation "schleicht" variiert je nach verwendetem Debian-Installer.