Hi Lutz,
On Wed, Sep 20, 2006 at 21:43:17 +0200, Lutz Memmler wrote:
ich bin totaler newbie in dieser Sache, kannst du das mal erklaeren wie die initrd angepasst werden muesste.
Da ich Zenslack nicht kenne, weiss ich nicht, wie dort die initiale Ramdisk aufgebaut ist. Das macht jede Distribution anders. Deswegen kann ich wenig Konkretes dazu sagen.
Traditionell ist eine initrd ein gzip-komprimiertes Dateisystem-Image -- oft ext2 -- das als vorlaeufiges Rootfilesystem gemountet wird. Darin befindet sich wenigstens die Datei linuxrc, die vor dem eigentlichen Init-Prozess ausgefuehrt wird. Oft ist diese Datei ein statisch gelinktes Binary, so kann man sich die C-Runtimelibrary (glibc) in der initrd sparen. Typische Aufgabe von linuxrc ist das Laden von Modulen, damit der Kernel spaeter auf das eigentliche Rootfilesystem zugreifen kann. Die betreffenden Module und ein insmod-Binary muessen dazu natuerlich auch in der Ramdisk sein.
Es gibt viele Varianten: Statt einem gzippten ext2-Image kann es cramfs sein, statt eines linuxrc-Binary kann linuxrc ein Shellskript sein, zu dem die passende Shell mit im Filesystem liegt. Weiterhin kann linuxrc auch ein fruehes Mounten des spaeteres Rootfilesystems vornehmen, auf das dann mittels pivot_root() gewechselt wird.
Man muesste die bestehende Zenslack-Ramdisk mal auseinandernehmen und pruefen, was sie ueberhaupt macht und ob die noetigen USB- und SCSI-Module vorhanden oder fest im Kernel sind. Wenn linuxrc ein Shellskript ist, liesse sich mit relativ kleinem Aufwand ein sleep-aehnliches Konstrukt einbauen ohne dass ein sleep-Binary vorhanden ist.
Gruss, Chris