Assignment Chef icon Assignment Chef
All German tutorials

Programming lesson

Linux Kernel-Modul: Eigenen Boot-Log-Eintrag in Reptilian hinzufügen (COP4600 P0 Tutorial)

Lerne, wie du einen personalisierten Boot-Log-Eintrag in den Reptilian-Kernel einfügst – inklusive Screenshot, Patch-Erstellung und GRUB-Modifikation. Schritt-für-Schritt-Anleitung für das COP4600 P0-Projekt.

Kernel-Modul Boot-Log Reptilian Kernel COP4600 Linux Kernel patchen Unified Patch pr_info GRUB Menü anpassen Kernel kompilieren Boot-Nachricht personalisieren rcu_end_inkernel_boot Screencast Kernel-Mod Extra Credit GRUB Kernel-Entwicklung Tutorial UFID Boot-Log Reptilian 20.08

Einführung: Dein erster Kernel-Mod – COP4600 P0

Das Projekt COP4600 P0: my first kernel mod ist der Einstieg in die Kernel-Programmierung. Du modifizierst den Reptilian-Kernel, sodass beim Booten eine persönliche Nachricht mit deinem Namen, UFID und einem individuellen Text erscheint. Klingt nach einer einfachen Änderung, aber dahinter steckt das Verständnis für Boot-Prozess, Log-Level und Patch-Erstellung – Fähigkeiten, die auch in der aktuellen KI- und Cloud-Infrastruktur-Entwicklung gefragt sind. Stell dir vor, du würdest einen Custom Boot-Log für einen AI-Server-Cluster entwickeln – genau diese Grundlagen lernst du hier.

Was wird verlangt?

  • Kernel-Quelltext ändern, um eine formatierte Zeile mit Name, UFID und persönlicher Nachricht auszugeben.
  • Die Nachricht erscheint im Standard-Boot-Modus (nicht verbose/debug) direkt vor der Meldung „Detecting Reptilian system partition“.
  • Einen Screenshot des Boot-Logs mit sichtbarer Nachricht erstellen.
  • Einen Unified Patch erstellen, der alle Änderungen enthält.
  • Optional: GRUB-Menü-Eintrag um eigenen Namen ergänzen (Extra Credit).
  • Report (max. 500 Wörter) und Screencast (~2 Minuten) einreichen.

Schritt 1: Kernel-Quelltext vorbereiten

Arbeite im Verzeichnis /usr/rep/src/reptilian-kernel. Du musst die Datei finden, die den Boot-Prozess nach dem Aufruf von rcu_end_inkernel_boot() steuert. Typischerweise ist das init/main.c. Suche nach der Zeile mit „Detecting Reptilian system partition“ und füge davor deinen Code ein.

/* Mein erster Kernel-Mod: Persönliche Boot-Nachricht */
pr_info("\n##### Max Mustermann (UFID: 1234-5678) Meine persönliche Nachricht #####\n");

Beachte: pr_info verwendet den Log-Level KERN_INFO, der im Standard-Boot-Modus auf dem Bildschirm erscheint. Teste verschiedene Level wie pr_notice oder pr_warn, falls die Meldung nicht sichtbar ist.

Schritt 2: Kernel neu bauen und testen

Nach der Code-Änderung musst du den Kernel kompilieren und installieren:

make && sudo make install && sudo make modules_install

Starte die VM neu. Deine Meldung sollte während des Bootens erscheinen. Falls nicht, überprüfe die Log-Level-Einstellungen oder suche nach quiet in der Kernel-Boot-Konfiguration.

Schritt 3: Screenshot erstellen

Mache einen Screenshot des Terminals, in dem die Boot-Meldung mit deinem Namen und UFID deutlich lesbar ist. Tools wie gnome-screenshot oder scrot eignen sich gut. Achte darauf, dass der Screenshot die gesamte relevante Zeile zeigt.

Schritt 4: Unified Patch erzeugen

Ein Patch dokumentiert alle Änderungen. Gehe ins Kernel-Verzeichnis und führe aus:

cd /usr/rep/src/reptilian-kernel
git add -u
git add '*.c' '*.h' '*Makefile*' '*.tbl'
git diff remotes/origin/os-latest > p0.diff

Teste den Patch in einer sauberen VM: git apply p0.diff und dann make && sudo make install && sudo make modules_install. Der Patch muss fehlerfrei anwendbar sein.

Extra Credit: GRUB-Menü anpassen

Füge deinen Namen neben dem Standard-Eintrag „Reptilian 20.08-A9.0-r2“ hinzu. Bearbeite dazu /boot/grub/grub.cfg (oder die entsprechende Konfigurationsdatei) mit einem Texteditor. Ändere die menuentry-Zeile:

menuentry 'Reptilian 20.08-A9.0-r2 (Max Mustermann)' { ... }

Wichtig: Keine GRUB-Utilities verwenden! Nach dem Neustart sollte der geänderte Eintrag erscheinen. Mache einen Screenshot für den Report.

Häufige Fehler und Tipps

  • Log-Level zu niedrig: Verwende pr_info oder pr_notice, nicht pr_debug.
  • Falsche Position: Die Meldung muss vor „Detecting Reptilian system partition“ erscheinen, nicht danach.
  • Patch-Test vergessen: Immer in einer frischen Umgebung testen.
  • Report zu lang: Halte dich an die 500-Wörter-Grenze – konzentriere dich auf die wesentlichen Änderungen.

Zusammenfassung

Mit diesem Tutorial hast du gelernt, wie man einen Linux-Kernel-Modifikation durchführt, einen Boot-Log-Eintrag personalisiert und einen Unified Patch erstellt. Diese Fähigkeiten sind nicht nur für das COP4600-Projekt relevant, sondern auch für die Entwicklung von Embedded Systems oder maßgeschneiderten KI-Beschleunigern. Viel Erfolg beim Einreichen!